1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-24 17:51:14 +02:00

chore: persist strategy filter when going back from release template preview

This commit is contained in:
Nuno Góis 2025-09-12 12:30:57 +01:00
parent af0b3529b7
commit c55361ca20
No known key found for this signature in database
GPG Key ID: 71ECC689F1091765
3 changed files with 19 additions and 5 deletions

View File

@ -20,7 +20,10 @@ import { useChangeRequestsEnabled } from 'hooks/useChangeRequestsEnabled';
import { formatUnknownError } from 'utils/formatUnknownError'; import { formatUnknownError } from 'utils/formatUnknownError';
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
import { ReleasePlanReviewDialog } from '../../FeatureView/FeatureOverview/ReleasePlan/ReleasePlanReviewDialog.tsx'; import { ReleasePlanReviewDialog } from '../../FeatureView/FeatureOverview/ReleasePlan/ReleasePlanReviewDialog.tsx';
import { FeatureStrategyMenuCards } from './FeatureStrategyMenuCards/FeatureStrategyMenuCards.tsx'; import {
FeatureStrategyMenuCards,
type StrategyFilterValue,
} from './FeatureStrategyMenuCards/FeatureStrategyMenuCards.tsx';
import { useUiFlag } from 'hooks/useUiFlag.ts'; import { useUiFlag } from 'hooks/useUiFlag.ts';
interface IFeatureStrategyMenuProps { interface IFeatureStrategyMenuProps {
@ -61,6 +64,7 @@ export const FeatureStrategyMenu = ({
const [isStrategyMenuDialogOpen, setIsStrategyMenuDialogOpen] = const [isStrategyMenuDialogOpen, setIsStrategyMenuDialogOpen] =
useState<boolean>(false); useState<boolean>(false);
const [onlyReleasePlans, setOnlyReleasePlans] = useState<boolean>(false); const [onlyReleasePlans, setOnlyReleasePlans] = useState<boolean>(false);
const [filter, setFilter] = useState<StrategyFilterValue>(null);
const navigate = useNavigate(); const navigate = useNavigate();
const { trackEvent } = usePlausibleTracker(); const { trackEvent } = usePlausibleTracker();
const [selectedTemplate, setSelectedTemplate] = const [selectedTemplate, setSelectedTemplate] =
@ -251,6 +255,8 @@ export const FeatureStrategyMenu = ({
projectId={projectId} projectId={projectId}
featureId={featureId} featureId={featureId}
environmentId={environmentId} environmentId={environmentId}
filter={filter}
setFilter={setFilter}
onAddReleasePlan={(template) => { onAddReleasePlan={(template) => {
setSelectedTemplate(template); setSelectedTemplate(template);
addReleasePlan(template); addReleasePlan(template);

View File

@ -6,7 +6,7 @@ import { Link as RouterLink, useNavigate } from 'react-router-dom';
import CloseIcon from '@mui/icons-material/Close'; import CloseIcon from '@mui/icons-material/Close';
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig.ts'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig.ts';
import { HelpIcon } from 'component/common/HelpIcon/HelpIcon.tsx'; import { HelpIcon } from 'component/common/HelpIcon/HelpIcon.tsx';
import { useContext, useMemo, useState } from 'react'; import { type Dispatch, type SetStateAction, useContext, useMemo } from 'react';
import { import {
FeatureStrategyMenuCardsSection, FeatureStrategyMenuCardsSection,
StyledStrategyModalSectionHeader, StyledStrategyModalSectionHeader,
@ -79,6 +79,8 @@ interface IFeatureStrategyMenuCardsProps {
projectId: string; projectId: string;
featureId: string; featureId: string;
environmentId: string; environmentId: string;
filter: StrategyFilterValue;
setFilter: Dispatch<SetStateAction<StrategyFilterValue>>;
onAddReleasePlan: (template: IReleasePlanTemplate) => void; onAddReleasePlan: (template: IReleasePlanTemplate) => void;
onReviewReleasePlan: (template: IReleasePlanTemplate) => void; onReviewReleasePlan: (template: IReleasePlanTemplate) => void;
onClose: () => void; onClose: () => void;
@ -88,6 +90,8 @@ export const FeatureStrategyMenuCards = ({
projectId, projectId,
featureId, featureId,
environmentId, environmentId,
filter,
setFilter,
onAddReleasePlan, onAddReleasePlan,
onReviewReleasePlan, onReviewReleasePlan,
onClose, onClose,
@ -99,8 +103,6 @@ export const FeatureStrategyMenuCards = ({
const { strategies } = useStrategies(); const { strategies } = useStrategies();
const [filter, setFilter] = useState<StrategyFilterValue>(null);
const activeStrategies = strategies.filter( const activeStrategies = strategies.filter(
(strategy) => !strategy.deprecated, (strategy) => !strategy.deprecated,
); );

View File

@ -16,6 +16,7 @@ import { useFeature } from 'hooks/api/getters/useFeature/useFeature';
import { useReleasePlans } from 'hooks/api/getters/useReleasePlans/useReleasePlans'; import { useReleasePlans } from 'hooks/api/getters/useReleasePlans/useReleasePlans';
import ArrowBackIcon from '@mui/icons-material/ArrowBack'; import ArrowBackIcon from '@mui/icons-material/ArrowBack';
import CloseIcon from '@mui/icons-material/Close'; import CloseIcon from '@mui/icons-material/Close';
import { useUiFlag } from 'hooks/useUiFlag.ts';
const StyledDialog = styled(Dialog)(({ theme }) => ({ const StyledDialog = styled(Dialog)(({ theme }) => ({
'& .MuiDialog-paper': { '& .MuiDialog-paper': {
@ -81,6 +82,7 @@ export const ReleasePlanReviewDialog = ({
featureName, featureName,
environment, environment,
); );
const newStrategyModalEnabled = useUiFlag('newStrategyModal');
const activeReleasePlan = releasePlans[0]; const activeReleasePlan = releasePlans[0];
@ -140,7 +142,11 @@ export const ReleasePlanReviewDialog = ({
</DialogContent> </DialogContent>
<StyledDialogActions> <StyledDialogActions>
<Button variant='contained' color='primary' onClick={onConfirm}> <Button variant='contained' color='primary' onClick={onConfirm}>
{crProtected ? 'Add suggestion to draft' : 'Use template'} {crProtected
? 'Add suggestion to draft'
: newStrategyModalEnabled
? 'Apply template'
: 'Use template'}
</Button> </Button>
</StyledDialogActions> </StyledDialogActions>
</StyledDialog> </StyledDialog>