misc_pterodactyl-panel/resources/scripts/state/admin/allocations.ts
2022-12-15 19:06:14 -07:00

29 lines
946 B
TypeScript

import type { Action } from 'easy-peasy';
import { action } from 'easy-peasy';
interface AdminAllocationStore {
selectedAllocations: number[];
setSelectedAllocations: Action<AdminAllocationStore, number[]>;
appendSelectedAllocation: Action<AdminAllocationStore, number>;
removeSelectedAllocation: Action<AdminAllocationStore, number>;
}
const allocations: AdminAllocationStore = {
selectedAllocations: [],
setSelectedAllocations: action((state, payload) => {
state.selectedAllocations = payload;
}),
appendSelectedAllocation: action((state, payload) => {
state.selectedAllocations = state.selectedAllocations.filter(id => id !== payload).concat(payload);
}),
removeSelectedAllocation: action((state, payload) => {
state.selectedAllocations = state.selectedAllocations.filter(id => id !== payload);
}),
};
export type { AdminAllocationStore };
export default allocations;