Transition RolesContainer.tsx to use table component

This commit is contained in:
Matthew Penner 2021-01-01 17:03:10 -07:00
parent 03474ccfcf
commit b17bb7c24b
3 changed files with 77 additions and 64 deletions

View file

@ -3,14 +3,20 @@ import { Role } from '@/api/admin/roles/getRoles';
export interface AdminRoleStore {
data: Role[];
selectedRoles: number[];
setRoles: Action<AdminRoleStore, Role[]>;
appendRole: Action<AdminRoleStore, Role>;
removeRole: Action<AdminRoleStore, number>;
setSelectedRoles: Action<AdminRoleStore, number[]>;
appendSelectedRole: Action<AdminRoleStore, number>;
removeSelectedRole: Action<AdminRoleStore, number>;
}
const roles: AdminRoleStore = {
data: [],
selectedRoles: [],
setRoles: action((state, payload) => {
state.data = payload;
@ -27,6 +33,18 @@ const roles: AdminRoleStore = {
removeRole: action((state, payload) => {
state.data = [ ...state.data.filter(role => role.id !== payload) ];
}),
setSelectedRoles: action((state, payload) => {
state.selectedRoles = payload;
}),
appendSelectedRole: action((state, payload) => {
state.selectedRoles = state.selectedRoles.filter(id => id !== payload).concat(payload);
}),
removeSelectedRole: action((state, payload) => {
state.selectedRoles = state.selectedRoles.filter(id => id !== payload);
}),
};
export default roles;