"use client";

import type { ReactNode } from "react";
import type { Locale } from "date-fns";

import { TimeGrid } from "../time-grid";
import { getWeekDays, type WeekStart } from "../lib/date-utils";
import type { CalendarEvent } from "../types";

interface WeekViewProps<TMeta> {
  date: Date;
  events: CalendarEvent<TMeta>[];
  locale: Locale;
  weekStartsOn: WeekStart;
  startHour: number;
  endHour: number;
  allDayLabel: string;
  onEventClick: (event: CalendarEvent<TMeta>) => void;
  onSelectSlot?: (date: Date) => void;
  renderEvent?: (event: CalendarEvent<TMeta>) => ReactNode;
}

export function WeekView<TMeta>({
  date,
  weekStartsOn,
  ...rest
}: WeekViewProps<TMeta>) {
  return <TimeGrid days={getWeekDays(date, weekStartsOn)} {...rest} />;
}
