Feature: allow freeform input for opening hours, fix #2522, refactor some uppercase method names; fixes to linked data loader

This commit is contained in:
Pieter Vander Vennet 2025-09-08 23:28:00 +02:00
parent e7de94576f
commit 96fb4c457d
7 changed files with 90 additions and 85 deletions

View file

@ -110,7 +110,7 @@
}
let startMinutes = Math.round((start * 60) % 60)
let endMinutes = Math.round((end * 60) % 60)
let newOhs = [...value.data]
let newOhs = [...(value.data ?? [])]
for (
let wd = Math.min(selectionStart[0], weekday);
wd <= Math.max(selectionStart[0], weekday);
@ -212,7 +212,7 @@
{#each range(7) as wd}
<td style="width: 13%; position: relative;">
<div class="pointer-events-none h-0" style="z-index: 10">
{#each $value
{#each ($value ?? [])
.filter((oh) => oh.weekday === wd)
.map((oh) => OpeningHours.rangeAs24Hr(oh)) as range}
<div
@ -228,8 +228,8 @@
<button
class="pointer-events-auto w-fit self-center rounded-full p-1"
on:click={() => {
const cleaned = value.data.filter((v) => !OpeningHours.isSame(v, range))
console.log("Cleaned", cleaned, OpeningHours.ToString(value.data))
const cleaned = (value.data??[]).filter((v) => !OpeningHours.isSame(v, range))
console.log("Cleaned", cleaned, OpeningHours.toString(value.data ?? []))
value.set(cleaned)
}}
>