add delete to admin panel
All checks were successful
deploy / build-and-deploy (push) Successful in 21s

This commit is contained in:
2025-05-21 20:53:53 +02:00
parent e47268111a
commit 45f984e4da
16 changed files with 207 additions and 50 deletions

View File

@@ -1,6 +1,7 @@
import { type ActionReturnType, actions } from 'astro:actions';
import { writable } from 'svelte/store';
import { actionErrorPopup } from '@util/action.ts';
import { addToWritableArray, deleteFromWritableArray, updateWritableArray } from '@util/state.ts';
// types
export type BlockedUsers = Exclude<ActionReturnType<typeof actions.user.blocked>['data'], undefined>['blocked'];
@@ -27,10 +28,7 @@ export async function addBlockedUser(blockedUser: BlockedUser) {
return;
}
blockedUsers.update((old) => {
old.push(Object.assign(blockedUser, { id: data.id }));
return old;
});
addToWritableArray(blockedUsers, Object.assign(blockedUser, { id: data.id }));
}
export async function editBlockedUser(blockedUser: BlockedUser) {
@@ -40,9 +38,15 @@ export async function editBlockedUser(blockedUser: BlockedUser) {
return;
}
blockedUsers.update((old) => {
const index = old.findIndex((a) => a.id == blockedUser.id);
old[index] = blockedUser;
return old;
});
updateWritableArray(blockedUsers, blockedUser, (t) => t.id == blockedUser.id);
}
export async function deleteBlockedUser(blockedUser: BlockedUser) {
const { error } = await actions.user.deleteBlocked(blockedUser);
if (error) {
actionErrorPopup(error);
return;
}
deleteFromWritableArray(blockedUsers, (t) => t.id == blockedUser.id);
}