From a70b17f189e1f8c87a228c52087b217e6ff59c78 Mon Sep 17 00:00:00 2001 From: salmonumbrella <182032677+salmonumbrella@users.noreply.github.com> Date: Sun, 15 Feb 2026 00:04:39 -0800 Subject: [PATCH] Fix add selection behavior when both arguments are dates --- src/utils/predefinedSelections.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/predefinedSelections.ts b/src/utils/predefinedSelections.ts index 719e9ff..b5abc00 100644 --- a/src/utils/predefinedSelections.ts +++ b/src/utils/predefinedSelections.ts @@ -9,6 +9,7 @@ import differenceInWeeks from "date-fns/differenceInWeeks"; import differenceInMonths from "date-fns/differenceInMonths"; import differenceInYears from "date-fns/differenceInYears"; import datefnsFormat from "date-fns/format"; +import startOfDay from "date-fns/startOfDay"; import type { QBClause, Result as QueryResult } from "./types"; import getTextByBlockUid from "roamjs-components/queries/getTextByBlockUid"; import updateBlock from "roamjs-components/writes/updateBlock"; @@ -435,7 +436,8 @@ const predefinedSelections: PredefinedSelection[] = [ const val0 = getArgValue(arg0, result); const val1 = getArgValue(arg1, result); if (val0 instanceof Date && val1 instanceof Date) { - return val1; + const dayOffset = differenceInDays(startOfDay(val1), startOfDay(new Date())); + return new Date(val0.valueOf() + dayOffset * MILLISECONDS_IN_DAY); } else if (val0 instanceof Date) { return new Date( val0.valueOf() + MILLISECONDS_IN_DAY * (Number(val1) || 0)