40 lines
912 B
TypeScript

import type { ActionReturnType } from '../../types';
import { addActionHandler, setGlobal } from '../../index';
import {
addNotifyException,
updateNotifyDefaults,
updateTopic,
} from '../../reducers';
addActionHandler('apiUpdate', (global, actions, update): ActionReturnType => {
switch (update['@type']) {
case 'updateDefaultNotifySettings': {
return updateNotifyDefaults(global, update.peerType, update.settings);
}
case 'updateChatNotifySettings': {
const {
chatId, settings,
} = update;
global = addNotifyException(global, chatId, settings);
setGlobal(global);
break;
}
case 'updateTopicNotifySettings': {
const {
chatId, topicId, settings,
} = update;
global = updateTopic(global, chatId, topicId, { notifySettings: settings });
setGlobal(global);
break;
}
}
return undefined;
});