Add calendar event editing

This commit is contained in:
Jon Staab
2025-03-18 15:36:52 -07:00
parent 1d56a2193d
commit 33af39ee93
11 changed files with 291 additions and 200 deletions
+10 -6
View File
@@ -12,7 +12,7 @@
const pad = (n: number) => ("00" + String(n)).slice(-2)
const getTime = (d: Date) => `${pad(d.getHours())}:${minutes}`
const getTime = (d: Date, m: string) => `${pad(d.getHours())}:${m}`
const setTime = (d: Date, time: string) => {
const [hours, minutes] = time.split(":").map(x => parseInt(x))
@@ -37,15 +37,19 @@
time = undefined
}
let date: Date | undefined = $state()
let time: string | undefined = $state()
let minutes: string = $state("00")
const initialDate = value ? secondsToDate(value) : undefined
const initialTime = initialDate ? getTime(initialDate, pad(initialDate.getMinutes())) : undefined
const initialMinutes = initialTime ? initialTime.slice(-2) : "00"
let date: Date | undefined = $state(initialDate)
let time: string | undefined = $state(initialTime)
let minutes: string = $state(initialMinutes)
let element: HTMLElement
// Sync date to time and value
$effect(() => {
if (date) {
time = getTime(date)
time = getTime(date, minutes)
value = dateToSeconds(date)
} else {
value = undefined
@@ -55,7 +59,7 @@
// Sync updates to value to date/time
$effect(() => {
const derivedDate = value ? secondsToDate(value) : undefined
const derivedTime = derivedDate ? getTime(derivedDate) : undefined
const derivedTime = derivedDate ? getTime(derivedDate, minutes) : undefined
date = derivedDate
time = derivedTime