Rocket.Chat.ReactNative/app/reducers/permissions.ts

26 lines
729 B
TypeScript

import { PERMISSIONS } from '../actions/actionsTypes';
import { TActionPermissions } from '../actions/permissions';
import { SUPPORTED_PERMISSIONS } from '../lib/rocketchat/methods/getPermissions';
export type TSupportedPermissions = typeof SUPPORTED_PERMISSIONS[number];
export type IPermissionsState = {
[K in TSupportedPermissions]?: string[];
};
export const initialState: IPermissionsState = {};
export default function permissions(state = initialState, action: TActionPermissions): IPermissionsState {
switch (action.type) {
case PERMISSIONS.SET:
return action.permissions;
case PERMISSIONS.UPDATE:
return {
...state,
[action.payload.id]: action.payload.roles
};
default:
return state;
}
}