2026-03-31 11:31:22 +02:00

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');