From 57339db2fb8c7707f8588126e9ef16b30b4a8ed2 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Wed, 8 May 2024 15:01:53 +0200 Subject: [PATCH 1/3] fix: only send cr flag config when the flag is turned on --- .../Project/CreateProject/CreateProject.tsx | 15 ++++++--------- .../project/Project/hooks/useProjectForm.ts | 9 +++++++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx index 757736c39aa..497a88c0bbf 100644 --- a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx +++ b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx @@ -61,6 +61,10 @@ const CreateProject = () => { setDocumentation(generalDocumentation); const useNewProjectForm = useUiFlag('newCreateProjectUI'); + const projectPayload = getCreateProjectPayload({ + omitId: useNewProjectForm, + includeChangeRequestConfig: useNewProjectForm, + }); const { createProject, loading } = useProjectApi(); @@ -71,11 +75,8 @@ const CreateProject = () => { const validId = useNewProjectForm || (await validateProjectId()); if (validName && validId) { - const payload = getCreateProjectPayload({ - omitId: useNewProjectForm, - }); try { - const createdProject = await createProject(payload); + const createdProject = await createProject(projectPayload); refetchUser(); navigate(`/projects/${createdProject.id}`, { replace: true }); setToastData({ @@ -101,11 +102,7 @@ const CreateProject = () => { return `curl --location --request POST '${uiConfig.unleashUrl}/api/admin/projects' \\ --header 'Authorization: INSERT_API_KEY' \\ --header 'Content-Type: application/json' \\ ---data-raw '${JSON.stringify( - getCreateProjectPayload({ omitId: useNewProjectForm }), - undefined, - 2, - )}'`; +--data-raw '${JSON.stringify(projectPayload, undefined, 2)}'`; }; const handleCancel = () => { diff --git a/frontend/src/component/project/Project/hooks/useProjectForm.ts b/frontend/src/component/project/Project/hooks/useProjectForm.ts index 87a73464c49..a7fe1494316 100644 --- a/frontend/src/component/project/Project/hooks/useProjectForm.ts +++ b/frontend/src/component/project/Project/hooks/useProjectForm.ts @@ -94,7 +94,10 @@ const useProjectForm = ( setProjectMode(initialProjectMode); }, [initialProjectMode]); - const getCreateProjectPayload = (options?: { omitId?: boolean }) => { + const getCreateProjectPayload = (options?: { + omitId?: boolean; + includeChangeRequestConfig?: boolean; + }) => { const environmentsPayload = projectEnvironments.size > 0 ? { environments: [...projectEnvironments] } @@ -119,7 +122,9 @@ const useProjectForm = ( ? { ...ossPayload, mode: projectMode, - changeRequestEnvironments, + ...(options?.includeChangeRequestConfig + ? { changeRequestEnvironments } + : {}), } : ossPayload; }; From 78f9068c59921b19cdace773d9ca7473a143fcdf Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Mon, 13 May 2024 07:45:54 +0200 Subject: [PATCH 2/3] fix: use the correct project payload in the new form --- .../component/project/Project/CreateProject/CreateProject.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx index cf965dc304a..ed2b5d1c079 100644 --- a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx +++ b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx @@ -68,6 +68,7 @@ const CreateProject = () => { omitId: false, includeChangeRequestConfig: false, }); + const { createProject, loading } = useProjectApi(); const handleSubmit = async (e: Event) => { From 87f24bf18dde7eeefca882f12268d9b0b9e62b32 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Mon, 13 May 2024 07:46:54 +0200 Subject: [PATCH 3/3] fix: use the correct payload for the new form --- .../CreateProjectDialog/CreateProjectDialog.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/component/project/Project/CreateProject/CreateProjectDialog/CreateProjectDialog.tsx b/frontend/src/component/project/Project/CreateProject/CreateProjectDialog/CreateProjectDialog.tsx index f4816eb343a..77091f39b33 100644 --- a/frontend/src/component/project/Project/CreateProject/CreateProjectDialog/CreateProjectDialog.tsx +++ b/frontend/src/component/project/Project/CreateProject/CreateProjectDialog/CreateProjectDialog.tsx @@ -76,11 +76,16 @@ export const CreateProjectDialogue = ({ const clearDocumentationOverride = () => setDocumentation(generalDocumentation); + const projectPayload = getCreateProjectPayload({ + omitId: true, + includeChangeRequestConfig: true, + }); + const formatApiCode = () => { return `curl --location --request POST '${uiConfig.unleashUrl}/api/admin/projects' \\ --header 'Authorization: INSERT_API_KEY' \\ --header 'Content-Type: application/json' \\ ---data-raw '${JSON.stringify(getCreateProjectPayload(), undefined, 2)}'`; +--data-raw '${JSON.stringify(projectPayload, undefined, 2)}'`; }; const handleSubmit = async (e: Event) => { @@ -90,7 +95,7 @@ export const CreateProjectDialogue = ({ const validId = await validateProjectId(); if (validName && validId) { - const payload = getCreateProjectPayload(); + const payload = projectPayload; try { await createProject(payload); refetchUser();