diff --git a/apps/frontend/src/modules/usersManagement/modals/UserDeleteModal.tsx b/apps/frontend/src/modules/usersManagement/modals/UserDeleteModal.tsx index ef4b57f..8e5f24f 100644 --- a/apps/frontend/src/modules/usersManagement/modals/UserDeleteModal.tsx +++ b/apps/frontend/src/modules/usersManagement/modals/UserDeleteModal.tsx @@ -38,15 +38,12 @@ export default function UserDeleteModal() { mutationFn: async ({ id }: { id: string }) => { return await deleteUser(id); }, - onError: (error) => { - try { - const message = JSON.parse(error.message); + onError: (error: unknown) => { + if (error instanceof Error) { notifications.show({ - message: message.message ?? "Failed to delete User.", + message: error.message, color: "red", }); - } catch (e) { - console.log(error); } }, onSuccess: () => { diff --git a/apps/frontend/src/modules/usersManagement/queries/userQueries.ts b/apps/frontend/src/modules/usersManagement/queries/userQueries.ts index 8bba9c2..02da504 100644 --- a/apps/frontend/src/modules/usersManagement/queries/userQueries.ts +++ b/apps/frontend/src/modules/usersManagement/queries/userQueries.ts @@ -59,8 +59,10 @@ export const updateUser = async ( }; export const deleteUser = async (id: string) => { - return await client.users[":id"].$delete({ - param: { id }, - form: {}, - }); + return await fetchRPC( + client.users[":id"].$delete({ + param: { id }, + form: {}, + }) + ); }; diff --git a/apps/frontend/src/utils/createInputComponents.tsx b/apps/frontend/src/utils/createInputComponents.tsx index e4a6e1e..eeef444 100644 --- a/apps/frontend/src/utils/createInputComponents.tsx +++ b/apps/frontend/src/utils/createInputComponents.tsx @@ -22,6 +22,7 @@ import { ReactNode } from "@tanstack/react-router"; type GeneralInputProps = { hidden?: boolean; + key?: string | number; }; type TextInputType = { @@ -83,12 +84,13 @@ interface Options { function createInputComponents(options: Options) { const components = [] as ReactNode[]; - const createComponent = (input: AcceptedInput) => { + const createComponent = ({ key, ...input }: AcceptedInput) => { switch (input.type) { case "text": return ( @@ -97,6 +99,7 @@ function createInputComponents(options: Options) { return ( @@ -105,6 +108,7 @@ function createInputComponents(options: Options) { return ( @@ -113,6 +117,7 @@ function createInputComponents(options: Options) { return ( @@ -130,19 +136,24 @@ function createInputComponents(options: Options) { case "group": { const localComponents: ReactNode[] = []; - for (const child of input.inputs) { + for (const [key, child] of input.inputs.entries()) { if (child.hidden) continue; - localComponents.push(createComponent(child)); + localComponents.push(createComponent({ ...child, key })); } - return
{localComponents}
; + return ( +
+ {localComponents} +
+ ); } case "chip": { return ( @@ -164,6 +176,7 @@ function createInputComponents(options: Options) { return (