From d41f5f83391387c4d4f6a1838ee920c3af6c51c9 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Fri, 20 Jun 2025 13:22:29 -0500 Subject: [PATCH 1/3] added clarifying comment --- src/qqq/components/query/FilterCriteriaPaster.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/qqq/components/query/FilterCriteriaPaster.tsx b/src/qqq/components/query/FilterCriteriaPaster.tsx index 0107953..664cb0a 100644 --- a/src/qqq/components/query/FilterCriteriaPaster.tsx +++ b/src/qqq/components/query/FilterCriteriaPaster.tsx @@ -298,6 +298,10 @@ function FilterCriteriaPaster({table, field, type, onSave}: Props): JSX.Element let regex = new RegExp(currentDelimiterCharacter); let parts = inputText.split(regex); let chipData = [] as string[]; + + ///////////////////////////////////////////////////////////////// + // use a map to keep track of the counts for each unique value // + ///////////////////////////////////////////////////////////////// const uniqueValuesMap: { [key: string]: number } = {}; /////////////////////////////////////////////////////// From 0d7e76df6c2a694c150ef5cc57edeb5e5edb8647 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Fri, 27 Jun 2025 12:17:52 -0500 Subject: [PATCH 2/3] hotfix on number chip validity, text fix --- src/qqq/components/forms/ChipTextField.tsx | 8 ++++++++ src/qqq/components/query/FilterCriteriaPaster.tsx | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/qqq/components/forms/ChipTextField.tsx b/src/qqq/components/forms/ChipTextField.tsx index 0b8a712..59b7a03 100644 --- a/src/qqq/components/forms/ChipTextField.tsx +++ b/src/qqq/components/forms/ChipTextField.tsx @@ -123,6 +123,14 @@ function ChipTextField({...props}) setChips(chipData); chipsRef.current = chipData; determineChipColors(); + + if (chipType !== "pvs") + { + const currentChipValidity = chips.map((chip, i) => + (chipType !== "number" || !Number.isNaN(Number(chips[i]))) + ); + setChipValidity(currentChipValidity); + } }, [JSON.stringify(chipData)]); useEffect(() => diff --git a/src/qqq/components/query/FilterCriteriaPaster.tsx b/src/qqq/components/query/FilterCriteriaPaster.tsx index 664cb0a..79655f9 100644 --- a/src/qqq/components/query/FilterCriteriaPaster.tsx +++ b/src/qqq/components/query/FilterCriteriaPaster.tsx @@ -342,7 +342,7 @@ function FilterCriteriaPaster({table, field, type, onSave}: Props): JSX.Element if (type === "number") { let suffix = invalidCount === 1 ? " value is not a number" : " values are not numbers"; - setErrorText(invalidCount + suffix + "numbers and will not be added to the filter"); + setErrorText(invalidCount + suffix + " and will not be added to the filter"); } else if (type === "pvs") { From ab4be1d5afb389e4a73dcc987357ead87d5e9550 Mon Sep 17 00:00:00 2001 From: Tim Chamberlain Date: Mon, 30 Jun 2025 23:55:42 -0500 Subject: [PATCH 3/3] fix to hotfix, observe chips as well to handle paste --- src/qqq/components/forms/ChipTextField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qqq/components/forms/ChipTextField.tsx b/src/qqq/components/forms/ChipTextField.tsx index 59b7a03..7ac76de 100644 --- a/src/qqq/components/forms/ChipTextField.tsx +++ b/src/qqq/components/forms/ChipTextField.tsx @@ -131,7 +131,7 @@ function ChipTextField({...props}) ); setChipValidity(currentChipValidity); } - }, [JSON.stringify(chipData)]); + }, [JSON.stringify(chipData), chips]); useEffect(() => {