30 lines
841 B
TypeScript
30 lines
841 B
TypeScript
|
import type { Action } from 'easy-peasy';
|
||
|
import { action } from 'easy-peasy';
|
||
|
|
||
|
interface AdminMountStore {
|
||
|
selectedMounts: number[];
|
||
|
|
||
|
setSelectedMounts: Action<AdminMountStore, number[]>;
|
||
|
appendSelectedMount: Action<AdminMountStore, number>;
|
||
|
removeSelectedMount: Action<AdminMountStore, number>;
|
||
|
}
|
||
|
|
||
|
const mounts: AdminMountStore = {
|
||
|
selectedMounts: [],
|
||
|
|
||
|
setSelectedMounts: action((state, payload) => {
|
||
|
state.selectedMounts = payload;
|
||
|
}),
|
||
|
|
||
|
appendSelectedMount: action((state, payload) => {
|
||
|
state.selectedMounts = state.selectedMounts.filter(id => id !== payload).concat(payload);
|
||
|
}),
|
||
|
|
||
|
removeSelectedMount: action((state, payload) => {
|
||
|
state.selectedMounts = state.selectedMounts.filter(id => id !== payload);
|
||
|
}),
|
||
|
};
|
||
|
|
||
|
export type { AdminMountStore };
|
||
|
export default mounts;
|