diff --git a/src/qqq/components/query/BasicAndAdvancedQueryControls.tsx b/src/qqq/components/query/BasicAndAdvancedQueryControls.tsx index f5d82c8..06ef0d6 100644 --- a/src/qqq/components/query/BasicAndAdvancedQueryControls.tsx +++ b/src/qqq/components/query/BasicAndAdvancedQueryControls.tsx @@ -183,7 +183,7 @@ const BasicAndAdvancedQueryControls = forwardRef((props: BasicAndAdvancedQueryCo { // todo - sometimes i want contains instead of equals on strings (client.name, for example...) let defaultOperator = field?.possibleValueSourceName ? QCriteriaOperator.IN : QCriteriaOperator.EQUALS; - if (field?.type == QFieldType.DATE_TIME || field?.type == QFieldType.DATE) + if (field?.type == QFieldType.DATE_TIME) { defaultOperator = QCriteriaOperator.GREATER_THAN; } diff --git a/src/qqq/components/query/EvaluatedExpression.tsx b/src/qqq/components/query/EvaluatedExpression.tsx index 23c3065..17126e3 100644 --- a/src/qqq/components/query/EvaluatedExpression.tsx +++ b/src/qqq/components/query/EvaluatedExpression.tsx @@ -50,7 +50,7 @@ export function EvaluatedExpression({field, expression}: EvaluatedExpressionProp return () => clearInterval(interval); }, []); - return <>{`${evaluateExpression(timeForEvaluations, field, expression)}`}; + return {`${evaluateExpression(timeForEvaluations, field, expression)}`}; } const HOUR_MS = 60 * 60 * 1000; diff --git a/src/qqq/components/widgets/blocks/UpOrDownNumberBlock.tsx b/src/qqq/components/widgets/blocks/UpOrDownNumberBlock.tsx index 20e0106..68e6490 100644 --- a/src/qqq/components/widgets/blocks/UpOrDownNumberBlock.tsx +++ b/src/qqq/components/widgets/blocks/UpOrDownNumberBlock.tsx @@ -58,7 +58,7 @@ export default function UpOrDownNumberBlock({widgetMetaData, data}: StandardBloc return ( <> -
+
diff --git a/src/qqq/utils/qqq/ValueUtils.tsx b/src/qqq/utils/qqq/ValueUtils.tsx index e5a9c55..7d29f63 100644 --- a/src/qqq/utils/qqq/ValueUtils.tsx +++ b/src/qqq/utils/qqq/ValueUtils.tsx @@ -268,7 +268,15 @@ class ValueUtils { if (!(date instanceof Date)) { + //////////////////////////////////////////////////////////////////////////////////// + // so, a new Date here will interpret the string as being at midnight UTC, but // + // the data object will be in the user/browser timezone. // + // so "2024-08-22", for a user in US/Central, will be "2024-08-21T19:00:00-0500". // + // correct for that by adding the date's timezone offset (converted from minutes // + // to millis) back to it // + //////////////////////////////////////////////////////////////////////////////////// date = new Date(date); + date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000) } // @ts-ignore return (`${date.toString("yyyy-MM-dd")}`);