From 1734fcaa8fb596da4c19a35ffa0c17ec350f19fd Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 15 Feb 2025 13:22:04 +0200 Subject: [PATCH] Fixed: Close Metadata settings modal on saving --- .../Metadata/Metadata/EditMetadataModalContent.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/Settings/Metadata/Metadata/EditMetadataModalContent.tsx b/frontend/src/Settings/Metadata/Metadata/EditMetadataModalContent.tsx index 997a4c39c..78f2d4004 100644 --- a/frontend/src/Settings/Metadata/Metadata/EditMetadataModalContent.tsx +++ b/frontend/src/Settings/Metadata/Metadata/EditMetadataModalContent.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import AppState from 'App/State/AppState'; import Alert from 'Components/Alert'; @@ -13,6 +13,7 @@ import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; +import usePrevious from 'Helpers/Hooks/usePrevious'; import { inputTypes } from 'Helpers/Props'; import { saveMetadata, @@ -41,6 +42,8 @@ function EditMetadataModalContent({ (state: AppState) => state.settings.metadata ); + const wasSaving = usePrevious(isSaving); + const { settings, ...otherSettings } = useMemo(() => { const item = items.find((item) => item.id === id)!; @@ -69,6 +72,12 @@ function EditMetadataModalContent({ dispatch(saveMetadata({ id })); }, [id, dispatch]); + useEffect(() => { + if (wasSaving && !isSaving && !saveError) { + onModalClose(); + } + }, [isSaving, wasSaving, saveError, onModalClose]); + return (