80 lines
1.9 KiB
TypeScript
80 lines
1.9 KiB
TypeScript
import { addActionHandler, getGlobal, setGlobal } from '../../index';
|
|
|
|
import { PaymentStep } from '../../../types';
|
|
|
|
import {
|
|
addBlockedContact, removeBlockedContact, setConfirmPaymentUrl, setPaymentStep,
|
|
} from '../../reducers';
|
|
|
|
addActionHandler('apiUpdate', (global, actions, update) => {
|
|
switch (update['@type']) {
|
|
case 'updatePeerBlocked':
|
|
if (update.isBlocked) {
|
|
return addBlockedContact(getGlobal(), update.id);
|
|
} else {
|
|
return removeBlockedContact(getGlobal(), update.id);
|
|
}
|
|
|
|
case 'updateResetContactList':
|
|
setGlobal({
|
|
...getGlobal(),
|
|
contactList: {
|
|
userIds: [],
|
|
},
|
|
});
|
|
break;
|
|
|
|
case 'updateConfig':
|
|
actions.loadConfig();
|
|
break;
|
|
|
|
case 'updateFavoriteStickers':
|
|
actions.loadFavoriteStickers();
|
|
break;
|
|
|
|
case 'updateRecentStickers':
|
|
actions.loadRecentStickers();
|
|
break;
|
|
|
|
case 'updateStickerSets':
|
|
actions.loadStickerSets();
|
|
break;
|
|
|
|
case 'updateStickerSetsOrder':
|
|
actions.reorderStickerSets({ order: update.order, isCustomEmoji: update.isCustomEmoji });
|
|
break;
|
|
|
|
case 'updateSavedGifs':
|
|
actions.loadSavedGifs();
|
|
break;
|
|
|
|
case 'updatePrivacy':
|
|
setGlobal({
|
|
...global,
|
|
settings: {
|
|
...global.settings,
|
|
privacy: {
|
|
...global.settings.privacy,
|
|
[update.key]: update.rules,
|
|
},
|
|
},
|
|
});
|
|
break;
|
|
|
|
case 'updatePaymentVerificationNeeded':
|
|
global = setConfirmPaymentUrl(getGlobal(), update.url);
|
|
global = setPaymentStep(global, PaymentStep.ConfirmPayment);
|
|
setGlobal(global);
|
|
break;
|
|
|
|
case 'updateWebViewResultSent':
|
|
if (global.webApp?.queryId === update.queryId) {
|
|
actions.setReplyingToId({ messageId: undefined });
|
|
actions.closeWebApp();
|
|
}
|
|
break;
|
|
}
|
|
|
|
return undefined;
|
|
});
|