From 2ad65e394ee7381fec24e53f2edf13bdc5d5d3b1 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 3 Mar 2025 13:04:12 -0800 Subject: [PATCH] Remember user minute selection --- src/lib/components/DateTimeInput.svelte | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/components/DateTimeInput.svelte b/src/lib/components/DateTimeInput.svelte index a98c6307..88080b19 100644 --- a/src/lib/components/DateTimeInput.svelte +++ b/src/lib/components/DateTimeInput.svelte @@ -12,11 +12,7 @@ const pad = (n: number) => ("00" + String(n)).slice(-2) - const getTime = (d: Date, inheritMinutes: boolean) => { - const minutes = inheritMinutes ? pad(d.getMinutes()) : "00" - - return `${pad(d.getHours())}:${minutes}` - } + const getTime = (d: Date) => `${pad(d.getHours())}:${minutes}` const setTime = (d: Date, time: string) => { const [hours, minutes] = time.split(":").map(x => parseInt(x)) @@ -29,6 +25,7 @@ const onTimeChange = () => { if (time) { + minutes = time.slice(-2) date = setTime(date || new Date(), time) } } @@ -42,12 +39,13 @@ let date: Date | undefined = $state() let time: string | undefined = $state() + let minutes: string = $state("00") let element: HTMLElement // Sync date to time and value $effect(() => { if (date) { - time = getTime(date, false) + time = getTime(date) value = dateToSeconds(date) } else { value = undefined @@ -57,7 +55,7 @@ // Sync updates to value to date/time $effect(() => { const derivedDate = value ? secondsToDate(value) : undefined - const derivedTime = derivedDate ? getTime(derivedDate, true) : undefined + const derivedTime = derivedDate ? getTime(derivedDate) : undefined date = derivedDate time = derivedTime