diff --git a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx index 62a2bbfc6bf..ed2b5d1c079 100644 --- a/frontend/src/component/project/Project/CreateProject/CreateProject.tsx +++ b/frontend/src/component/project/Project/CreateProject/CreateProject.tsx @@ -64,20 +64,22 @@ const CreateProject = () => { const clearDocumentationOverride = () => setDocumentation(generalDocumentation); + const projectPayload = getCreateProjectPayload({ + omitId: false, + includeChangeRequestConfig: false, + }); + const { createProject, loading } = useProjectApi(); const handleSubmit = async (e: Event) => { e.preventDefault(); clearErrors(); const validName = validateName(); - const validId = useNewProjectForm || (await validateProjectId()); + const validId = 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({ @@ -103,11 +105,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/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(); 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; };