From fd69b6fb2b3c4efa510c7edad7643e9a699810af Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Wed, 19 Feb 2025 14:54:36 +0800 Subject: [PATCH] save draft without routing to project search page --- .../CreateProject/CreateProject.tsx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/components/CreateProject/CreateProject.tsx b/src/components/CreateProject/CreateProject.tsx index f4452a9..10eca78 100644 --- a/src/components/CreateProject/CreateProject.tsx +++ b/src/components/CreateProject/CreateProject.tsx @@ -118,7 +118,7 @@ const hasErrorsInTab = ( const CreateProject: React.FC = ({ isEditMode, isCopyMode, - draftId, + draftId: initDraftId, isSubProject, mainProjects, defaultInputs, @@ -139,6 +139,7 @@ const CreateProject: React.FC = ({ customerTypes, abilities, }) => { + const [draftId, setDraftId] = useState(initDraftId) const [serverError, setServerError] = useState(""); const [tabIndex, setTabIndex] = useState(0); const { t } = useTranslation(); @@ -562,9 +563,17 @@ const CreateProject: React.FC = ({ formProps.reset(draftInputs); }, [draftId, formProps]); - const saveDraft = useCallback(() => { - saveToLocalStorage(draftId || Date.now(), formProps.getValues()); - router.replace("/projects"); + const saveDraft = useCallback(async () => { + const currentTimestamp = Date.now() + + saveToLocalStorage(draftId || currentTimestamp, formProps.getValues()); + + const success = await successDialog("Save Success", t) + + if (success && !draftId) { + setDraftId(currentTimestamp) + } + // router.replace("/projects"); }, [draftId, formProps, router]); const handleDeleteDraft = useCallback(() => { @@ -757,7 +766,7 @@ const CreateProject: React.FC = ({ > {t("Save Draft")} - {draftId && + {draftId &&