From 176f736e6273765de7925608b1ee0f6b029b1b3a Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Sat, 14 Sep 2024 20:17:42 +0530 Subject: [PATCH 1/4] #35949: Fix duplicate page name error does not disappear --- .../Editor/AppSettingsPane/AppSettings/PageSettings.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx index 6052eb93bdb..6f8f00824fb 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx @@ -101,7 +101,7 @@ function PageSettings(props: { page: Page }) { (name: string) => !isNameValid(name, conflictingNames), [conflictingNames], ); - + useEffect(() => { setPageName(page.pageName); setCustomSlug(page.customSlug || ""); @@ -126,6 +126,10 @@ function PageSettings(props: { page: Page }) { } }, [isUpdatingEntity]); + useEffect(() => { + setIsPageNameValid(undefined); + }, [page]); + const savePageName = useCallback(() => { if (!canManagePages || !!isPageNameValid || page.pageName === pageName) return; From 13ad713f2369f7287db7dbad09d8a3fa7ca286a0 Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Tue, 17 Sep 2024 15:06:15 +0530 Subject: [PATCH 2/4] Address comment use appropriately typed state to avoid assignment to undefined --- .../AppSettings/PageSettings.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx index 6f8f00824fb..2243193b7ab 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx @@ -71,8 +71,8 @@ function PageSettings(props: { page: Page }) { const [pageName, setPageName] = useState(page.pageName); const [isPageNameSaving, setIsPageNameSaving] = useState(false); - const [isPageNameValid, setIsPageNameValid] = useState( - undefined, + const [pageNameError, setPageNameError] = useState( + null, ); const [customSlug, setCustomSlug] = useState(page.customSlug); @@ -127,11 +127,11 @@ function PageSettings(props: { page: Page }) { }, [isUpdatingEntity]); useEffect(() => { - setIsPageNameValid(undefined); + setPageNameError(null); }, [page]); const savePageName = useCallback(() => { - if (!canManagePages || !!isPageNameValid || page.pageName === pageName) + if (!canManagePages || pageNameError === null || page.pageName === pageName) return; const payload: UpdatePageActionPayload = { id: page.pageId, @@ -139,7 +139,7 @@ function PageSettings(props: { page: Page }) { }; setIsPageNameSaving(true); dispatch(updatePageAction(payload)); - }, [page.pageId, page.pageName, pageName, isPageNameValid]); + }, [page.pageId, page.pageName, pageName, pageNameError]); const saveCustomSlug = useCallback(() => { if (!canManagePages || page.customSlug === customSlug) return; @@ -165,14 +165,14 @@ function PageSettings(props: { page: Page }) { ); const onPageNameChange = (value: string) => { - let isValid = undefined; + let errorMessage = null; if (!value || value.trim().length === 0) { - isValid = PAGE_SETTINGS_NAME_EMPTY_MESSAGE(); + errorMessage = PAGE_SETTINGS_NAME_EMPTY_MESSAGE(); } else if (value !== page.pageName && hasActionNameConflict(value)) { - isValid = PAGE_SETTINGS_ACTION_NAME_CONFLICT_ERROR(value); + errorMessage = PAGE_SETTINGS_ACTION_NAME_CONFLICT_ERROR(value); } - setIsPageNameValid(isValid); + setPageNameError(errorMessage); setPageName(toValidPageName(value)); }; @@ -187,13 +187,13 @@ function PageSettings(props: { page: Page }) {
{isPageNameSaving && } Date: Tue, 17 Sep 2024 15:59:36 +0530 Subject: [PATCH 3/4] Update condition in savePageName --- .../pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx index 772f7cb1753..a37d7b899ef 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx @@ -131,7 +131,7 @@ function PageSettings(props: { page: Page }) { }, [page]); const savePageName = useCallback(() => { - if (!canManagePages || pageNameError === null || page.pageName === pageName) + if (!canManagePages || pageNameError !== null || page.pageName === pageName) return; const payload: UpdatePageActionPayload = { id: page.pageId, From 437bc853392a0afbb6586af2ff4d5d133146015c Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Tue, 17 Sep 2024 21:14:13 +0530 Subject: [PATCH 4/4] Address prettier's style issues --- .../Editor/AppSettingsPane/AppSettings/PageSettings.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx index a37d7b899ef..b8605f4609f 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx @@ -71,9 +71,7 @@ function PageSettings(props: { page: Page }) { const [pageName, setPageName] = useState(page.pageName); const [isPageNameSaving, setIsPageNameSaving] = useState(false); - const [pageNameError, setPageNameError] = useState( - null, - ); + const [pageNameError, setPageNameError] = useState(null); const [customSlug, setCustomSlug] = useState(page.customSlug); const [isCustomSlugSaving, setIsCustomSlugSaving] = useState(false); @@ -101,7 +99,7 @@ function PageSettings(props: { page: Page }) { (name: string) => !isNameValid(name, conflictingNames), [conflictingNames], ); - + useEffect(() => { setPageName(page.pageName); setCustomSlug(page.customSlug || ""); @@ -129,7 +127,7 @@ function PageSettings(props: { page: Page }) { useEffect(() => { setPageNameError(null); }, [page]); - + const savePageName = useCallback(() => { if (!canManagePages || pageNameError !== null || page.pageName === pageName) return;