100 lines
2.8 KiB
TypeScript
100 lines
2.8 KiB
TypeScript
import type { ActionReturnType } from '../../types';
|
|
|
|
import { getCurrentTabId } from '../../../util/establishMultitabRole';
|
|
import { addTabStateResetterAction } from '../../helpers/meta';
|
|
import { addActionHandler } from '../../index';
|
|
import { closeNewContactDialog, updateUserSearch } from '../../reducers';
|
|
import { updateTabState } from '../../reducers/tabs';
|
|
import { selectIsCurrentUserFrozen } from '../../selectors';
|
|
|
|
addActionHandler('setUserSearchQuery', (global, actions, payload): ActionReturnType => {
|
|
const {
|
|
query,
|
|
tabId = getCurrentTabId(),
|
|
} = payload;
|
|
|
|
return updateUserSearch(global, {
|
|
globalUserIds: undefined,
|
|
localUserIds: undefined,
|
|
fetchingStatus: Boolean(query),
|
|
query,
|
|
}, tabId);
|
|
});
|
|
|
|
addActionHandler('openAddContactDialog', (global, actions, payload): ActionReturnType => {
|
|
const { userId, tabId = getCurrentTabId() } = payload;
|
|
|
|
if (selectIsCurrentUserFrozen(global)) {
|
|
actions.openFrozenAccountModal({ tabId });
|
|
return global;
|
|
}
|
|
|
|
return updateTabState(global, {
|
|
newContact: { userId },
|
|
}, tabId);
|
|
});
|
|
|
|
addActionHandler('openNewContactDialog', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
|
|
if (selectIsCurrentUserFrozen(global)) {
|
|
actions.openFrozenAccountModal({ tabId });
|
|
return global;
|
|
}
|
|
|
|
return updateTabState(global, {
|
|
newContact: {
|
|
isByPhoneNumber: true,
|
|
},
|
|
}, tabId);
|
|
});
|
|
|
|
addActionHandler('closeNewContactDialog', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
|
|
return closeNewContactDialog(global, tabId);
|
|
});
|
|
|
|
addActionHandler('closeSuggestedStatusModal', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
|
|
return updateTabState(global, {
|
|
suggestedStatusModal: undefined,
|
|
}, tabId);
|
|
});
|
|
|
|
addTabStateResetterAction('closeChatRefundModal', 'chatRefundModal');
|
|
|
|
addActionHandler('openProfileRatingModal', (global, actions, payload): ActionReturnType => {
|
|
const { userId, level, tabId = getCurrentTabId() } = payload;
|
|
|
|
return updateTabState(global, {
|
|
profileRatingModal: {
|
|
userId,
|
|
level,
|
|
},
|
|
}, tabId);
|
|
});
|
|
|
|
addTabStateResetterAction('closeProfileRatingModal', 'profileRatingModal');
|
|
|
|
addActionHandler('openRankModal', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId(), ...rest } = payload;
|
|
|
|
return updateTabState(global, {
|
|
rankModal: rest,
|
|
}, tabId);
|
|
});
|
|
|
|
addTabStateResetterAction('closeRankModal', 'rankModal');
|
|
|
|
addActionHandler('openEditRankModal', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId(), ...rest } = payload;
|
|
|
|
return updateTabState(global, {
|
|
editRankModal: rest,
|
|
}, tabId);
|
|
});
|
|
|
|
addTabStateResetterAction('closeEditRankModal', 'editRankModal');
|