From 4bbf511954e1b255ef4c9726f2d31a53135ef5c8 Mon Sep 17 00:00:00 2001 From: InfiniteTF Date: Sun, 16 Jan 2022 00:24:25 +0100 Subject: [PATCH] Prevent creation of dupe filters (#2233) --- ui/v2.5/src/components/List/AddFilterDialog.tsx | 6 ++++++ ui/v2.5/src/hooks/ListHook.tsx | 1 + 2 files changed, 7 insertions(+) diff --git a/ui/v2.5/src/components/List/AddFilterDialog.tsx b/ui/v2.5/src/components/List/AddFilterDialog.tsx index d67e523b9..a370fab76 100644 --- a/ui/v2.5/src/components/List/AddFilterDialog.tsx +++ b/ui/v2.5/src/components/List/AddFilterDialog.tsx @@ -37,6 +37,7 @@ interface IAddFilterProps { onCancel: () => void; filterOptions: ListFilterOptions; editingCriterion?: Criterion; + existingCriterions: Criterion[]; } export const AddFilterDialog: React.FC = ({ @@ -44,6 +45,7 @@ export const AddFilterDialog: React.FC = ({ onCancel, filterOptions, editingCriterion, + existingCriterions, }) => { const defaultValue = useRef(); @@ -206,6 +208,10 @@ export const AddFilterDialog: React.FC = ({ const thisOptions = [NoneCriterionOption] .concat(filterOptions.criterionOptions) + .filter( + (c) => + !existingCriterions.find((ec) => ec.criterionOption.type === c.type) + ) .map((c) => { return { value: c.type, diff --git a/ui/v2.5/src/hooks/ListHook.tsx b/ui/v2.5/src/hooks/ListHook.tsx index 3df899d48..ed3ea32fa 100644 --- a/ui/v2.5/src/hooks/ListHook.tsx +++ b/ui/v2.5/src/hooks/ListHook.tsx @@ -526,6 +526,7 @@ const RenderList = < onAddCriterion={onAddCriterion} onCancel={onCancelAddCriterion} editingCriterion={editingCriterion} + existingCriterions={filter.criteria} /> )} {newCriterion &&