diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentHeader/FeatureOverviewEnvironmentToggle/FeatureOverviewEnvironmentToggle.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentHeader/FeatureOverviewEnvironmentToggle/FeatureOverviewEnvironmentToggle.tsx index b55994b957..e35a6a2225 100644 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentHeader/FeatureOverviewEnvironmentToggle/FeatureOverviewEnvironmentToggle.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewEnvironments/FeatureOverviewEnvironment/EnvironmentHeader/FeatureOverviewEnvironmentToggle/FeatureOverviewEnvironmentToggle.tsx @@ -23,13 +23,18 @@ export const FeatureOverviewEnvironmentToggle = ({ }: FeatureOverviewEnvironmentToggleProps) => { const projectId = useRequiredPathParam('projectId'); const featureId = useRequiredPathParam('featureId'); - const { refetchFeature } = useFeature(projectId, featureId); + const { feature, refetchFeature } = useFeature(projectId, featureId); const { isChangeRequestConfigured } = useChangeRequestsEnabled(projectId); const { onToggle: onFeatureToggle, modals: featureToggleModals } = useFeatureToggleSwitch(projectId); + const hasReleasePlans = Boolean( + feature.environments.find((env) => env.name === name)?.releasePlans + ?.length, + ); + const onToggle = (newState: boolean, onRollback: () => void) => onFeatureToggle(newState, { projectId, @@ -40,6 +45,7 @@ export const FeatureOverviewEnvironmentToggle = ({ hasEnabledStrategies: strategies.some( (strategy) => !strategy.disabled, ), + hasReleasePlans, isChangeRequestEnabled: isChangeRequestConfigured(name), onRollback, onSuccess: refetchFeature, diff --git a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/FeatureToggleCell/FeatureToggleCell.tsx b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/FeatureToggleCell/FeatureToggleCell.tsx index 260356de69..17f9bca4f0 100644 --- a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/FeatureToggleCell/FeatureToggleCell.tsx +++ b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/FeatureToggleCell/FeatureToggleCell.tsx @@ -65,6 +65,7 @@ const FeatureToggleCellComponent = ({ environmentName: environment?.name || '', environmentType: environment?.type, hasStrategies: environment?.hasStrategies, + hasReleasePlans: Boolean(environment?.releasePlans?.length), hasEnabledStrategies: environment?.hasEnabledStrategies, isChangeRequestEnabled, onRollback, diff --git a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.types.ts b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.types.ts index b863232002..fe4159cca3 100644 --- a/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.types.ts +++ b/frontend/src/component/project/Project/PaginatedProjectFeatureToggles/ProjectFeatureToggles.types.ts @@ -12,6 +12,7 @@ export type ListItemType = Pick< type: string; hasStrategies: boolean; hasEnabledStrategies: boolean; + hasReleasePlans: boolean; }; }; someEnabledEnvironmentHasVariants: boolean; diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.types.ts b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.types.ts index 673c5728fe..ec59a865df 100644 --- a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.types.ts +++ b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/FeatureToggleSwitch.types.ts @@ -6,6 +6,7 @@ export type OnFeatureToggleSwitchArgs = { environmentName: string; environmentType?: string; hasStrategies?: boolean; + hasReleasePlans?: boolean; hasEnabledStrategies?: boolean; isChangeRequestEnabled?: boolean; onRollback?: () => void; diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/createFeatureToggleCell.tsx b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/createFeatureToggleCell.tsx index e720064847..f23e3cbf92 100644 --- a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/createFeatureToggleCell.tsx +++ b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/createFeatureToggleCell.tsx @@ -59,6 +59,7 @@ const FeatureToggleCellComponent = ({ environmentType: environment?.type, hasStrategies: environment?.hasStrategies, hasEnabledStrategies: environment?.hasEnabledStrategies, + hasReleasePlans: environment?.hasReleasePlans, isChangeRequestEnabled, onRollback, onSuccess: refetch, diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/useFeatureToggleSwitch.tsx b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/useFeatureToggleSwitch.tsx index 7e9604a968..b114c616fb 100644 --- a/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/useFeatureToggleSwitch.tsx +++ b/frontend/src/component/project/Project/ProjectFeatureToggles/FeatureToggleSwitch/useFeatureToggleSwitch.tsx @@ -102,7 +102,8 @@ export const useFeatureToggleSwitch: UseFeatureToggleSwitchType = ( if ( newState === false || !config.hasStrategies || - config.hasEnabledStrategies + config.hasEnabledStrategies || + config.hasReleasePlans ) { return next(); }