Added dummy flow to add appointments using the calendar

This commit is contained in:
Karl Ludwig Weise
2026-02-12 22:04:03 +01:00
parent 68bfcfb609
commit fe9ea0703c
23 changed files with 615 additions and 24 deletions
+18 -5
View File
@@ -1,15 +1,28 @@
import { getLocale } from "$i18n/runtime";
import type { TCalendarSlot } from "$lib/types/calendar";
import { parseAbsoluteToLocal, toCalendarDateTime } from "@internationalized/date";
export const toDisplayDateTime = (date: Date) => {
export const toDisplayDateTime = (date: Date, opts?: Intl.DateTimeFormatOptions) => {
const hours = date.getHours();
const minutes = date.getMinutes();
const formatter = new Intl.DateTimeFormat(navigator.language, {
dateStyle: "short",
...(hours !== 0 || minutes !== 0 ? { timeStyle: "short" } : {}),
});
const formatter = new Intl.DateTimeFormat(
getLocale(),
opts ?? {
dateStyle: "short",
...(hours !== 0 || minutes !== 0 ? { timeStyle: "short" } : {}),
},
);
return formatter.format(date);
};
export const calendarItemToDate = (item: TCalendarSlot) => {
const [year, month, day] = item.date.split("-").map(Number);
const [hours, minutes] = item.start.split(":").map((it) => parseInt(it));
const date = new Date(year, month - 1, day);
date.setHours(hours, minutes, 0, 0);
return date;
};
export const toInputDateTime = (dateStr: string) => {
return toCalendarDateTime(parseAbsoluteToLocal(dateStr));
};