"use client"; import { addWeeks, subWeeks, addDays, format } from "date-fns"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Button } from "@/components/ui/button"; import { ChevronLeft, ChevronRight, CalendarDays } from "lucide-react"; import { ScheduleArtist } from "@/app/(dashboard)/schedule/SchedulePageClient"; const STATUS_OPTIONS = [ { value: "TODO", label: "To Do" }, { value: "IN_PROGRESS", label: "In Progress" }, { value: "INTERNAL_REVIEW", label: "Internal Review" }, { value: "CLIENT_REVIEW", label: "Client Review" }, { value: "CHANGES", label: "Changes" }, ]; interface ScheduleFiltersProps { projects: { id: string; name: string; code: string }[]; artists: ScheduleArtist[]; filterProject: string; filterArtist: string; filterStatus: string; viewStart: Date; onProjectChange: (v: string) => void; onArtistChange: (v: string) => void; onStatusChange: (v: string) => void; onViewStartChange: (d: Date) => void; } export function ScheduleFilters({ projects, artists, filterProject, filterArtist, filterStatus, viewStart, onProjectChange, onArtistChange, onStatusChange, onViewStartChange, }: ScheduleFiltersProps) { const goPrev = () => onViewStartChange(subWeeks(viewStart, 1)); const goNext = () => onViewStartChange(addWeeks(viewStart, 1)); const goToday = () => { const today = new Date(); const monday = addDays(today, -((today.getDay() + 6) % 7)); onViewStartChange(monday); }; return (
{/* Week navigation */}
{format(viewStart, "MMM d")} – {format(addDays(viewStart, 34), "MMM d, yyyy")}
{/* Project filter */} {/* Artist filter */} {/* Status filter */} {(filterProject || filterArtist || filterStatus) && ( )}
); }