Render overnight blocks across midnight in the day view

This commit is contained in:
NeilClack
2026-09-11 18:24:54 -05:00
parent 177b7bb13a
commit 46d7cf66b8
3 changed files with 66 additions and 24 deletions
+13 -2
View File
@@ -2,7 +2,13 @@
import { enhance } from '$app/forms';
import type { SubmitFunction } from '@sveltejs/kit';
import ProclamationBrowser from './ProclamationBrowser.svelte';
import { MINUTE_STEP, formatTime, validateBlock, type BlockSibling } from '$lib/schedule-utils';
import {
MINUTE_STEP,
formatTime,
isOvernight,
validateBlock,
type BlockSibling
} from '$lib/schedule-utils';
type BrowserCategory = { id: number; name: string };
type BrowserGroup = { id: number; name: string };
@@ -77,6 +83,9 @@
const startMinutes = $derived((Number(startHour) * 60 + Number(startMinute)) | 0);
const endMinutes = $derived((Number(endHour) * 60 + Number(endMinute)) | 0);
const overnight = $derived(
startMinutes !== endMinutes && isOvernight({ startMinutes, endMinutes })
);
const siblings = $derived(existingBlocks.filter((block) => block.id !== blockId));
@@ -276,7 +285,9 @@
>
<h3 class="text-sm font-semibold text-slate-800 dark:text-slate-200">Review</h3>
<p class="mt-2 text-sm text-slate-600 dark:text-slate-400">
{formatTime(startMinutes)} – {formatTime(endMinutes)}
{formatTime(startMinutes)} – {formatTime(endMinutes)}{overnight
? ' (next day)'
: ''}
</p>
{#if selectedTitles.length === 0}
<p class="mt-2 text-sm text-slate-500 dark:text-slate-400">