Remember user minute selection

This commit is contained in:
Jon Staab
2025-03-03 13:04:12 -08:00
parent 345b20bf5d
commit 2ad65e394e
+5 -7
View File
@@ -12,11 +12,7 @@
const pad = (n: number) => ("00" + String(n)).slice(-2) const pad = (n: number) => ("00" + String(n)).slice(-2)
const getTime = (d: Date, inheritMinutes: boolean) => { const getTime = (d: Date) => `${pad(d.getHours())}:${minutes}`
const minutes = inheritMinutes ? pad(d.getMinutes()) : "00"
return `${pad(d.getHours())}:${minutes}`
}
const setTime = (d: Date, time: string) => { const setTime = (d: Date, time: string) => {
const [hours, minutes] = time.split(":").map(x => parseInt(x)) const [hours, minutes] = time.split(":").map(x => parseInt(x))
@@ -29,6 +25,7 @@
const onTimeChange = () => { const onTimeChange = () => {
if (time) { if (time) {
minutes = time.slice(-2)
date = setTime(date || new Date(), time) date = setTime(date || new Date(), time)
} }
} }
@@ -42,12 +39,13 @@
let date: Date | undefined = $state() let date: Date | undefined = $state()
let time: string | undefined = $state() let time: string | undefined = $state()
let minutes: string = $state("00")
let element: HTMLElement let element: HTMLElement
// Sync date to time and value // Sync date to time and value
$effect(() => { $effect(() => {
if (date) { if (date) {
time = getTime(date, false) time = getTime(date)
value = dateToSeconds(date) value = dateToSeconds(date)
} else { } else {
value = undefined value = undefined
@@ -57,7 +55,7 @@
// Sync updates to value to date/time // Sync updates to value to date/time
$effect(() => { $effect(() => {
const derivedDate = value ? secondsToDate(value) : undefined const derivedDate = value ? secondsToDate(value) : undefined
const derivedTime = derivedDate ? getTime(derivedDate, true) : undefined const derivedTime = derivedDate ? getTime(derivedDate) : undefined
date = derivedDate date = derivedDate
time = derivedTime time = derivedTime