64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
import type { AuthUser } from '#shared/types/auth';
|
|
import type { AdminResources, AuthUserWithWarrens } from '~/shared/types/admin';
|
|
import type { AdminWarrenData } from '~/shared/types/warrens';
|
|
|
|
export const useAdminStore = defineStore('admin', {
|
|
state: () => ({
|
|
resources: {
|
|
users: [],
|
|
warrens: {},
|
|
} as AdminResources,
|
|
createWarrenDialogOpen: false,
|
|
editWarrenDialog: null as { warren: AdminWarrenData } | null,
|
|
deleteWarrenDialog: null as { warren: AdminWarrenData } | null,
|
|
|
|
createUserDialogOpen: false,
|
|
editUserDialog: null as { user: AuthUserWithWarrens } | null,
|
|
deleteUserDialog: null as { user: AuthUser } | null,
|
|
}),
|
|
actions: {
|
|
openCreateWarrenDialog() {
|
|
this.createWarrenDialogOpen = true;
|
|
},
|
|
closeCreateWarrenDialog() {
|
|
this.createWarrenDialogOpen = false;
|
|
},
|
|
openEditWarrenDialog(warren: AdminWarrenData) {
|
|
this.editWarrenDialog = {
|
|
warren,
|
|
};
|
|
},
|
|
closeEditWarrenDialog() {
|
|
this.editWarrenDialog = null;
|
|
},
|
|
openDeleteWarrenDialog(warren: AdminWarrenData) {
|
|
this.deleteWarrenDialog = {
|
|
warren,
|
|
};
|
|
},
|
|
closeDeleteWarrenDialog() {
|
|
this.deleteWarrenDialog = null;
|
|
},
|
|
openCreateUserDialog() {
|
|
this.createUserDialogOpen = true;
|
|
},
|
|
closeCreateUserDialog() {
|
|
this.createUserDialogOpen = false;
|
|
},
|
|
setEditUserDialog(user: AuthUserWithWarrens) {
|
|
this.editUserDialog = { user };
|
|
},
|
|
closeEditUserDialog() {
|
|
this.editUserDialog = null;
|
|
},
|
|
openDeleteUserDialog(user: AuthUser) {
|
|
this.deleteUserDialog = {
|
|
user: user,
|
|
};
|
|
},
|
|
closeDeleteUserDialog() {
|
|
this.deleteUserDialog = null;
|
|
},
|
|
},
|
|
});
|