From 9567f60c5a768ea3ec6d815a79da926a25b52142 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Mon, 28 Apr 2025 13:26:27 +0200 Subject: [PATCH] random ramblings to get started --- .../EditableConstraint.tsx | 18 ++++++++---------- .../EditableConstraintWrapper.tsx | 10 ++++++++-- .../FeatureStrategyConstraints/ValueList.tsx | 1 - 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraint.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraint.tsx index 8979a29d18..13c99f86d5 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraint.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/EditableConstraint.tsx @@ -166,6 +166,7 @@ type Props = { setValues: (values: string[]) => void; setValuesWithRecord: (values: string[]) => void; setError: React.Dispatch>; + addValues: (...values: string[]) => void; removeValue: (index: number) => void; input: Input; error: string; @@ -187,6 +188,7 @@ export const EditableConstraint: FC = ({ constraintValue, setValue, setValues, + addValues, setValuesWithRecord, setError, removeValue, @@ -313,7 +315,6 @@ export const EditableConstraint: FC = ({ addValuesButtonRef.current ?? deleteButtonRef.current @@ -323,14 +324,11 @@ export const EditableConstraint: FC = ({ { - // todo (`addEditStrategy`): move deduplication logic higher up in the context handling - const combinedValues = new Set([ - ...(localConstraint.values || []), - ...newValues, - ]); - setValuesWithRecord( - Array.from(combinedValues), - ); + addValues(...newValues); + // setValuesWithRecord([ + // ...(localConstraint.values || []), + // ...newValues, + // ]); }} /> ) : null} @@ -351,7 +349,7 @@ export const EditableConstraint: FC = ({ {showInputField ? ( - { setLocalConstraint((prev) => { - const localConstraint = { ...prev, values }; + const localConstraint = { + ...prev, + values: Array.from(new Set(values)), + }; recordChange(localConstraint); @@ -135,7 +138,10 @@ export const EditableConstraintWrapper = ({ const setValues = useCallback((values: string[]) => { setLocalConstraint((prev) => { - const localConstraint = { ...prev, values }; + const localConstraint = { + ...prev, + values: Array.from(new Set(values)), + }; return localConstraint; }); diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/ValueList.tsx b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/ValueList.tsx index 10bb1c9d08..afca27df5c 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/ValueList.tsx +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/ValueList.tsx @@ -58,7 +58,6 @@ const ValueChip = styled(ValueChipBase)(({ theme }) => ({ type Props = { values: string[] | undefined; removeValue: (index: number) => void; - setValues: (values: string[]) => void; // the element that should receive focus when all value chips are deleted getExternalFocusTarget: () => HTMLElement | null; };