'use client';
import React from 'react';
import { format } from 'date-fns';
import { nl } from 'date-fns/locale';
import { Calendar, MapPin, Globe, Home, Clock, X, Info, ChevronRight, Ban } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import {
CalendarEvent,
APPOINTMENT_TYPE_COLORS,
APPOINTMENT_TYPES,
LOCATION_CLASSES,
LocationClassCode,
AppointmentTypeCode
} from '@/app/epd/agenda/types';
interface AgendaListViewProps {
appointments?: CalendarEvent[];
dateRange?: { start: Date; end: Date; label: string };
onClose?: () => void;
onCancelAppointment?: (encounter: CalendarEvent) => void;
onViewDetails?: (encounter: CalendarEvent) => void;
}
export function AgendaListView({
appointments = [],
dateRange,
onClose,
onCancelAppointment,
onViewDetails
}: AgendaListViewProps) {
const formatDateLabel = () => {
if (dateRange?.label) {
if (dateRange.label === 'vandaag' || dateRange.label === 'morgen') {
const dateStr = format(dateRange.start, 'd MMMM', { locale: nl });
return `Afspraken ${dateRange.label} - ${dateStr}`;
}
return `Afspraken ${dateRange.label}`;
}
// Fallback if no specific label
if (appointments.length > 0) {
return `Afspraken ${format(new Date(appointments[0].start), 'd MMMM', { locale: nl })}`;
}
return 'Afspraken';
};
const getLocationIcon = (classCode: string) => {
switch (classCode as LocationClassCode) {
case 'AMB': return
Geen afspraken gevonden
Er staan geen afspraken gepland voor deze periode.