diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx index 1590ec762f..cc937170a3 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/SettingsModal.tsx @@ -81,9 +81,10 @@ const SettingsModal = ({ children, config }: SettingsModalProps) => { hasPendingItems, intermediatesCount, isLoading: isLoadingClearIntermediates, + refetchIntermediatesCount, } = useClearIntermediates(shouldShowClearIntermediates); - const { isOpen: isSettingsModalOpen, onOpen: onSettingsModalOpen, onClose: onSettingsModalClose } = useDisclosure(); + const { isOpen: isSettingsModalOpen, onOpen: _onSettingsModalOpen, onClose: onSettingsModalClose } = useDisclosure(); const { isOpen: isRefreshModalOpen, onOpen: onRefreshModalOpen, onClose: onRefreshModalClose } = useDisclosure(); @@ -99,6 +100,11 @@ const SettingsModal = ({ children, config }: SettingsModalProps) => { const clearStorage = useClearStorage(); + const handleOpenSettingsModel = useCallback(() => { + refetchIntermediatesCount(); + _onSettingsModalOpen(); + }, [_onSettingsModalOpen, refetchIntermediatesCount]); + const handleClickResetWebUI = useCallback(() => { clearStorage(); onSettingsModalClose(); @@ -171,7 +177,7 @@ const SettingsModal = ({ children, config }: SettingsModalProps) => { return ( <> {cloneElement(children, { - onClick: onSettingsModalOpen, + onClick: handleOpenSettingsModel, })} diff --git a/invokeai/frontend/web/src/features/system/components/SettingsModal/useClearIntermediates.ts b/invokeai/frontend/web/src/features/system/components/SettingsModal/useClearIntermediates.ts index 6d953c3c11..96d3b0f7ee 100644 --- a/invokeai/frontend/web/src/features/system/components/SettingsModal/useClearIntermediates.ts +++ b/invokeai/frontend/web/src/features/system/components/SettingsModal/useClearIntermediates.ts @@ -12,13 +12,14 @@ export type UseClearIntermediatesReturn = { clearIntermediates: () => void; isLoading: boolean; hasPendingItems: boolean; + refetchIntermediatesCount: () => void; }; export const useClearIntermediates = (shouldShowClearIntermediates: boolean): UseClearIntermediatesReturn => { const { t } = useTranslation(); const dispatch = useAppDispatch(); - const { data: intermediatesCount } = useGetIntermediatesCountQuery(undefined, { + const { data: intermediatesCount, refetch: refetchIntermediatesCount } = useGetIntermediatesCountQuery(undefined, { refetchOnMountOrArgChange: true, skip: !shouldShowClearIntermediates, }); @@ -58,5 +59,5 @@ export const useClearIntermediates = (shouldShowClearIntermediates: boolean): Us }); }, [t, _clearIntermediates, dispatch, hasPendingItems]); - return { intermediatesCount, clearIntermediates, isLoading, hasPendingItems }; + return { intermediatesCount, clearIntermediates, isLoading, hasPendingItems, refetchIntermediatesCount }; };