From ac389e0b97d1212d94ba531ee0666faf60e55c5a Mon Sep 17 00:00:00 2001 From: notsafeforgit Date: Fri, 27 Mar 2026 17:12:13 -0700 Subject: [PATCH] fix(ui): refresh image duplicate checker after deletes --- .../ImageDuplicateChecker/ImageDuplicateChecker.tsx | 13 +++++++++---- .../src/components/Images/DeleteImagesDialog.tsx | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx b/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx index d55a7a0cc..22f4deead 100644 --- a/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx +++ b/ui/v2.5/src/components/ImageDuplicateChecker/ImageDuplicateChecker.tsx @@ -34,6 +34,8 @@ import { Pagination } from "src/components/List/Pagination"; import { DeleteImagesDialog } from "../Images/DeleteImagesDialog"; import { EditImagesDialog } from "../Images/EditImagesDialog"; import { Icon } from "../Shared/Icon"; +import { LoadingIndicator } from "../Shared/LoadingIndicator"; +import { ErrorMessage } from "../Shared/ErrorMessage"; const CLASSNAME = "duplicate-checker"; @@ -136,20 +138,20 @@ const ImageDuplicateChecker: React.FC = () => { setCheckedImages({}); }; - const onDeleteDialogClosed = (confirmed: boolean) => { + const onDeleteDialogClosed = async (confirmed: boolean) => { setDeletingImages(false); setSelectedImages(undefined); if (confirmed) { setCheckedImages({}); - refetch(); + await refetch(); } }; - const onEditDialogClosed = (applied: boolean) => { + const onEditDialogClosed = async (applied: boolean) => { setEditingImages(false); setSelectedImages(undefined); if (applied) { - refetch(); + await refetch(); } }; @@ -173,6 +175,9 @@ const ImageDuplicateChecker: React.FC = () => { }); }, [allGroups.length]); + if (loading) return ; + if (!data) return ; + const setQuery = (q: Record) => { const newQuery = new URLSearchParams(query); for (const key of Object.keys(q)) { diff --git a/ui/v2.5/src/components/Images/DeleteImagesDialog.tsx b/ui/v2.5/src/components/Images/DeleteImagesDialog.tsx index d57c60ab4..45d683682 100644 --- a/ui/v2.5/src/components/Images/DeleteImagesDialog.tsx +++ b/ui/v2.5/src/components/Images/DeleteImagesDialog.tsx @@ -61,11 +61,12 @@ export const DeleteImagesDialog: React.FC = ( try { await deleteImage(); Toast.success(toastMessage); + props.onClose(true); } catch (e) { Toast.error(e); + props.onClose(false); } setIsDeleting(false); - props.onClose(true); } function maybeRenderDeleteFileAlert() {