From 6b793677b99f9450fdccdd4e7ce56edba5d07796 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Thu, 27 Mar 2025 12:17:21 +0100 Subject: [PATCH] feat: preselect change request settings in create project (#9625) --- .../CreateProjectDialog.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/component/project/Project/CreateProject/NewCreateProjectForm/CreateProjectDialog.tsx b/frontend/src/component/project/Project/CreateProject/NewCreateProjectForm/CreateProjectDialog.tsx index 392de50f21..a5fccf1cdb 100644 --- a/frontend/src/component/project/Project/CreateProject/NewCreateProjectForm/CreateProjectDialog.tsx +++ b/frontend/src/component/project/Project/CreateProject/NewCreateProjectForm/CreateProjectDialog.tsx @@ -11,7 +11,7 @@ import useProjectForm, { DEFAULT_PROJECT_STICKINESS, } from '../../hooks/useProjectForm'; import { usePlausibleTracker } from 'hooks/usePlausibleTracker'; -import { type ReactNode, useState, type FormEvent } from 'react'; +import { type ReactNode, useState, type FormEvent, useEffect } from 'react'; import { useAuthUser } from 'hooks/api/getters/useAuth/useAuthUser'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { useNavigate } from 'react-router-dom'; @@ -27,6 +27,7 @@ import { useStickinessOptions } from 'hooks/useStickinessOptions'; import { ChangeRequestTableConfigButton } from './ConfigButtons/ChangeRequestTableConfigButton'; import { StyledDefinitionList } from './CreateProjectDialog.styles'; import { ProjectIcon } from 'component/common/ProjectIcon/ProjectIcon'; +import { useUiFlag } from 'hooks/useUiFlag'; interface ICreateProjectDialogProps { open: boolean; @@ -209,6 +210,21 @@ export const CreateProjectDialog = ({ const activeEnvironments = allEnvironments.filter((env) => env.enabled); const stickinessOptions = useStickinessOptions(projectStickiness); + const globalChangeRequestConfigEnabled = useUiFlag( + 'globalChangeRequestConfig', + ); + useEffect(() => { + if (!globalChangeRequestConfigEnabled) return; + activeEnvironments.forEach((environment) => { + if (Number.isInteger(environment.requiredApprovals)) { + updateProjectChangeRequestConfig.enableChangeRequests( + environment.name, + Number(environment.requiredApprovals), + ); + } + }); + }, [JSON.stringify(activeEnvironments)]); + const numberOfConfiguredChangeRequestEnvironments = Object.keys( projectChangeRequestConfiguration, ).length;