fix: date validation, pre-fill on re-edit, MS_PER_DAY constant

- Extract MS_PER_DAY constant to lib/constants.ts
- ConfirmModal date: max=1 year, rejects past dates and malformed years
- ConfirmModal pre-fills existing date + group when re-editing (✎)
- Confirmed date display handles malformed dates gracefully
- Red border + error for invalid dates, submit disabled
This commit is contained in:
2026-03-24 18:26:28 +03:00
parent f6d0491ca5
commit 745d72f36d
3 changed files with 34 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import Database from "better-sqlite3";
import path from "path";
import type { SiteContent, TeamMember, RichListItem, VictoryItem } from "@/types/content";
import { MS_PER_DAY } from "@/lib/constants";
const DB_PATH =
process.env.DATABASE_PATH ||
@@ -728,7 +729,7 @@ export function setGroupBookingStatus(
if (status === "confirmed" && confirmation) {
// Auto-set reminder to 'coming' only if confirmed for today/tomorrow
const today = new Date().toISOString().split("T")[0];
const tomorrow = new Date(Date.now() + 86400000).toISOString().split("T")[0];
const tomorrow = new Date(Date.now() + MS_PER_DAY).toISOString().split("T")[0];
const reminderStatus = (confirmation.date === today || confirmation.date === tomorrow) ? "coming" : null;
db.prepare(
"UPDATE group_bookings SET status = ?, confirmed_date = ?, confirmed_group = ?, confirmed_comment = ?, notified_confirm = 1, reminder_status = ? WHERE id = ?"