mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
35 lines (32 loc) • 993 B
text/typescript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {combineReducers} from 'redux';
import {BotTypes, UserTypes} from 'action_types';
import {GenericAction} from 'types/actions';
import {Dictionary} from 'types/utilities';
import {Bot} from 'types/bots';
function accounts(state: Dictionary<Bot> = {}, action: GenericAction) {
switch (action.type) {
case BotTypes.RECEIVED_BOT_ACCOUNTS: {
const newBots = action.data;
const nextState = {...state};
for (const bot of newBots) {
nextState[bot.user_id] = bot;
}
return nextState;
}
case BotTypes.RECEIVED_BOT_ACCOUNT: {
const bot = action.data;
const nextState = {...state};
nextState[bot.user_id] = bot;
return nextState;
}
case UserTypes.LOGOUT_SUCCESS:
return {};
default:
return state;
}
}
export default combineReducers({
accounts,
});