From 3ec43fbbd3e09ceeb932ea19b35d97ae5ce717be Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 25 Jun 2024 07:58:12 -0500 Subject: [PATCH] CE-1402 Only do flushSync and setSelectionRange after a toUpper/Lower and add a try-catch, just in case (specifically, because failed on input type=number) --- .../query/FilterCriteriaRowValues.tsx | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/qqq/components/query/FilterCriteriaRowValues.tsx b/src/qqq/components/query/FilterCriteriaRowValues.tsx index 15d8994..5ace799 100644 --- a/src/qqq/components/query/FilterCriteriaRowValues.tsx +++ b/src/qqq/components/query/FilterCriteriaRowValues.tsx @@ -191,30 +191,33 @@ export const makeTextField = (field: QFieldMetaData, criteria: QFilterCriteriaWi const beforeStart = event.target.selectionStart; const beforeEnd = event.target.selectionEnd; - flushSync(() => + let isToUpperCase = DynamicFormUtils.isToUpperCase(field); + let isToLowerCase = DynamicFormUtils.isToLowerCase(field); + + if (isToUpperCase || isToLowerCase) { - let newValue = event.currentTarget.value; - - let isToUpperCase = DynamicFormUtils.isToUpperCase(field); - let isToLowerCase = DynamicFormUtils.isToLowerCase(field); - - if (isToUpperCase) + flushSync(() => { - newValue = newValue.toUpperCase(); - } - if (isToLowerCase) + let newValue = event.currentTarget.value; + + if (isToUpperCase) + { + newValue = newValue.toUpperCase(); + } + if (isToLowerCase) + { + newValue = newValue.toLowerCase(); + } + + event.currentTarget.value = newValue; + }); + + const input = document.getElementById(inputId); + if (input) { - newValue = newValue.toLowerCase(); + // @ts-ignore + input.setSelectionRange(beforeStart, beforeEnd); } - - event.currentTarget.value = newValue; - }); - - const input = document.getElementById(inputId); - if (input) - { - // @ts-ignore - input.setSelectionRange(beforeStart, beforeEnd); } valueChangeHandler(event, valueIndex);