diff --git a/surfsense_web/atoms/image-gen-config/image-gen-config-mutation.atoms.ts b/surfsense_web/atoms/image-gen-config/image-gen-config-mutation.atoms.ts index dd8bcd324..362c3a690 100644 --- a/surfsense_web/atoms/image-gen-config/image-gen-config-mutation.atoms.ts +++ b/surfsense_web/atoms/image-gen-config/image-gen-config-mutation.atoms.ts @@ -2,6 +2,8 @@ import { atomWithMutation } from "jotai-tanstack-query"; import { toast } from "sonner"; import type { CreateImageGenConfigRequest, + CreateImageGenConfigResponse, + DeleteImageGenConfigResponse, GetImageGenConfigsResponse, UpdateImageGenConfigRequest, UpdateImageGenConfigResponse, @@ -23,8 +25,8 @@ export const createImageGenConfigMutationAtom = atomWithMutation((get) => { mutationFn: async (request: CreateImageGenConfigRequest) => { return imageGenConfigApiService.createConfig(request); }, - onSuccess: () => { - toast.success("Image model created"); + onSuccess: (_: CreateImageGenConfigResponse, request: CreateImageGenConfigRequest) => { + toast.success(`${request.name} created`); queryClient.invalidateQueries({ queryKey: cacheKeys.imageGenConfigs.all(Number(searchSpaceId)), }); @@ -48,7 +50,7 @@ export const updateImageGenConfigMutationAtom = atomWithMutation((get) => { return imageGenConfigApiService.updateConfig(request); }, onSuccess: (_: UpdateImageGenConfigResponse, request: UpdateImageGenConfigRequest) => { - toast.success("Image model updated"); + toast.success(`${request.data.name ?? "Configuration"} updated`); queryClient.invalidateQueries({ queryKey: cacheKeys.imageGenConfigs.all(Number(searchSpaceId)), }); @@ -71,16 +73,16 @@ export const deleteImageGenConfigMutationAtom = atomWithMutation((get) => { return { mutationKey: ["image-gen-configs", "delete"], enabled: !!searchSpaceId, - mutationFn: async (id: number) => { - return imageGenConfigApiService.deleteConfig(id); + mutationFn: async (request: { id: number; name: string }) => { + return imageGenConfigApiService.deleteConfig(request.id); }, - onSuccess: (_, id: number) => { - toast.success("Image model deleted"); + onSuccess: (_: DeleteImageGenConfigResponse, request: { id: number; name: string }) => { + toast.success(`${request.name} deleted`); queryClient.setQueryData( cacheKeys.imageGenConfigs.all(Number(searchSpaceId)), (oldData: GetImageGenConfigsResponse | undefined) => { if (!oldData) return oldData; - return oldData.filter((config) => config.id !== id); + return oldData.filter((config) => config.id !== request.id); } ); }, diff --git a/surfsense_web/components/settings/image-model-manager.tsx b/surfsense_web/components/settings/image-model-manager.tsx index 1c8394c9c..b5a98dcbe 100644 --- a/surfsense_web/components/settings/image-model-manager.tsx +++ b/surfsense_web/components/settings/image-model-manager.tsx @@ -121,7 +121,7 @@ export function ImageModelManager({ searchSpaceId }: ImageModelManagerProps) { const handleDelete = async () => { if (!configToDelete) return; try { - await deleteConfig(configToDelete.id); + await deleteConfig({ id: configToDelete.id, name: configToDelete.name }); setConfigToDelete(null); } catch { // Error handled by mutation @@ -398,12 +398,11 @@ export function ImageModelManager({ searchSpaceId }: ImageModelManagerProps) { open={!!configToDelete} onOpenChange={(open) => !open && setConfigToDelete(null)} > - - - - - Delete Image Model - + + + + Delete Image Model + Are you sure you want to delete{" "} {configToDelete?.name}? @@ -411,23 +410,14 @@ export function ImageModelManager({ searchSpaceId }: ImageModelManagerProps) { Cancel - - {isDeleting ? ( - <> - - Deleting - - ) : ( - <> - - Delete - - )} - + + Delete + {isDeleting && } + diff --git a/surfsense_web/components/shared/image-config-dialog.tsx b/surfsense_web/components/shared/image-config-dialog.tsx index 4a9c3862a..a364b6a64 100644 --- a/surfsense_web/components/shared/image-config-dialog.tsx +++ b/surfsense_web/components/shared/image-config-dialog.tsx @@ -460,38 +460,34 @@ export function ImageConfigDialog({ Cancel {mode === "create" || (mode === "edit" && !isGlobal) ? ( - + ) : isAutoMode ? ( - + ) : isGlobal && config ? ( - + ) : null}