'use client' import React, { useEffect, useState } from 'react' import { Card, CardContent } from '../ui/card' import { getDaysUntilEvent } from '@/lib/helper/getDaysUntilEvent' import { Button } from '../ui/button' import EventNotesEditor from '../EventNotesEditor' import DialogWrapper from '../dialogs/DialogWrapper' import EditEventForm from '../forms/EditEventForm' interface EventProps { event: EventData } export default function EventInfo({ event }: EventProps) { const [daysLeft, setDaysLeft] = useState(null) const [isDialogOpen, setIsDialogOpen] = useState(false) useEffect(() => { if (event.date) { const diff = getDaysUntilEvent(event.date); setDaysLeft(diff) } }, [event.date]) async function refreshEventData(eventId: string) { try { const res = await fetch(`/api/events/${eventId}/fetch`) if (!res.ok) throw new Error('Failed to fetch event data') const data = await res.json() return data } catch (err) { console.error('Failed to refresh event data:', err) return null } } return (

Event Info

Name: {event.name}

Date: {event.date ? event.date.toDateString() : 'Upcoming'}

Venue: {event.venue ? event.venue.name : 'No location yet'}

{daysLeft !== null && (

{daysLeft} days until this event!

)}

General Notes

{ await refreshEventData(event.id) setIsDialogOpen(false) }} /> } />
) }