import { Button } from "@/components/ui/button"; import { Card, CardHeader, CardContent } from "@/components/ui/card"; import { LucideMapPin, Clock, MoreHorizontal } from "lucide-react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, DropdownMenuItem, } from "@/components/ui/dropdown-menu"; import { RRuleDisplay } from "@/components/rrule-display"; import type { CalendarEvent } from "@/lib/types"; interface EventCardProps { event: CalendarEvent; onEdit: (event: CalendarEvent) => void; onDelete: (eventId: string) => void; } export const EventCard = ({ event, onEdit, onDelete }: EventCardProps) => { const formatDateTime = (dateStr: string, allDay: boolean | undefined) => { return allDay ? new Date(dateStr).toLocaleDateString() : new Date(dateStr).toLocaleString(); }; const handleEdit = () => { onEdit({ id: event.id, title: event.title, description: event.description || "", location: event.location || "", url: event.url || "", start: event.start, end: event.end || "", allDay: event.allDay || false, }); }; return (

{event.title}

{event.recurrenceRule && (
)} {event.description && (

{event.description}

)}
Edit onDelete(event.id)} className="text-destructive" > Delete
{formatDateTime(event.start, event.allDay)}
{event.location && (
{event.location}
)}
); };