From aa885b9afd05b9bff80520f4d9b697705d8e6734 Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Wed, 14 May 2025 09:53:50 +0300 Subject: [PATCH] feat: now recently used constraints are not shown if already in use (#9984) --- ...FeatureStrategyConstraintAccordionList.tsx | 1 + .../RecentlyUsedConstraints.tsx | 20 +++++++++++++++++-- .../RecentlyUsedSegments.tsx | 6 +++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/FeatureStrategyConstraintAccordionList/FeatureStrategyConstraintAccordionList.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/FeatureStrategyConstraintAccordionList/FeatureStrategyConstraintAccordionList.tsx index 7c1b0d0445..9a1f5e90a5 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/FeatureStrategyConstraintAccordionList/FeatureStrategyConstraintAccordionList.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/FeatureStrategyConstraintAccordionList/FeatureStrategyConstraintAccordionList.tsx @@ -139,6 +139,7 @@ export const FeatureStrategyConstraintAccordionList = forwardRef< show={ } /> diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/RecentlyUsedConstraints/RecentlyUsedConstraints.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/RecentlyUsedConstraints/RecentlyUsedConstraints.tsx index 9e3f9413ea..0932c039d0 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/RecentlyUsedConstraints/RecentlyUsedConstraints.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/RecentlyUsedConstraints/RecentlyUsedConstraints.tsx @@ -1,11 +1,15 @@ import { styled, Typography } from '@mui/material'; import { ConstraintAccordionView } from 'component/common/NewConstraintAccordion/ConstraintAccordionView/ConstraintAccordionView'; import { constraintId } from 'component/common/LegacyConstraintAccordion/ConstraintAccordionList/createEmptyConstraint'; -import { useRecentlyUsedConstraints } from './useRecentlyUsedConstraints'; +import { + useRecentlyUsedConstraints, + areConstraintsEqual, +} from './useRecentlyUsedConstraints'; import type { IConstraint } from 'interfaces/strategy'; type IRecentlyUsedConstraintsProps = { setConstraints?: React.Dispatch>; + constraints?: IConstraint[]; }; const StyledContainer = styled('div')(({ theme }) => ({ @@ -26,6 +30,7 @@ const StyledConstraintsContainer = styled('div')(({ theme }) => ({ export const RecentlyUsedConstraints = ({ setConstraints, + constraints = [], }: IRecentlyUsedConstraintsProps) => { const { items: recentlyUsedConstraints } = useRecentlyUsedConstraints(); @@ -33,11 +38,22 @@ export const RecentlyUsedConstraints = ({ return null; } + const nonSelectedRecentConstraints = recentlyUsedConstraints.filter( + (recentConstraint) => + !constraints.some((constraint) => + areConstraintsEqual(constraint, recentConstraint), + ), + ); + + if (nonSelectedRecentConstraints.length === 0) { + return null; + } + return ( Recently used constraints - {recentlyUsedConstraints.map((constraint) => ( + {nonSelectedRecentConstraints.map((constraint) => ( allSegments.find((segment) => segment.id === id)) .filter((segment) => segment !== undefined) as ISegment[]; - const filteredSegmentObjects = segmentObjects.filter( + const nonSelectedRecentSegments = segmentObjects.filter( (segment) => !segments.some((selected) => selected.id === segment.id), ); - if (filteredSegmentObjects.length === 0) { + if (nonSelectedRecentSegments.length === 0) { return null; } @@ -59,7 +59,7 @@ export const RecentlyUsedSegments = ({ Recently used segments - {filteredSegmentObjects.map((segment) => ( + {nonSelectedRecentSegments.map((segment) => (