import { GridData, ResolvedCell } from "../lib/queries/plan"; import PlanRangeChips from "./PlanRangeChips"; interface Props { data: GridData | undefined; canEdit: boolean; onCellClick: ( userId: number, date: string, cell: ResolvedCell | null, ) => void; } const CZECH_WEEKDAYS = ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]; function eachDay(from: string, to: string): string[] { const out: string[] = []; const a = new Date(from + "T00:00:00.000Z"); const b = new Date(to + "T00:00:00.000Z"); for (let d = new Date(a); d <= b; d.setUTCDate(d.getUTCDate() + 1)) { out.push(d.toISOString().slice(0, 10)); } return out; } function czechWeekday(dateStr: string): string { return CZECH_WEEKDAYS[new Date(dateStr + "T00:00:00.000Z").getUTCDay()]; } function isWeekend(dateStr: string): boolean { const day = new Date(dateStr + "T00:00:00.000Z").getUTCDay(); return day === 0 || day === 6; } export default function PlanGrid({ data, canEdit, onCellClick }: Props) { if (!data) return (
| Datum | {users.map((u) => ({u.full_name} | ))}
|---|---|
| {czechWeekday(date)} {date.slice(8)}.{date.slice(5, 7)}. | {users.map((u) => { const cell = data.cells[u.id]?.[date] ?? null; const cls = `plan-cell${canEdit ? "" : " plan-cell--readonly"}`; return (); })} |