'use client' import React, { useState, useEffect } from 'react' import { Input } from '../ui/input' import { Label } from '../ui/label' import { Button } from '../ui/button' import { toast } from 'sonner' interface EditEventFormProps { event: EventData onSuccess?: () => void } export default function EditEventForm({ event, onSuccess }: EditEventFormProps) { const [formData, setFormData] = useState({ name: event.name, date: event.date?.toISOString().substring(0, 10) || '', venueId: event.venue?.id || '' }) const [venues, setVenues] = useState<{ id: string; name: string }[]>([]) const [loading, setLoading] = useState(false) useEffect(() => { async function fetchVenues() { const res = await fetch('/api/venues/fetch') const data = await res.json() setVenues(data) } fetchVenues() }, []) function handleChange(e: React.ChangeEvent) { const { name, value } = e.target setFormData(prev => ({ ...prev, [name]: value })) } async function handleSubmit(e: React.FormEvent) { e.preventDefault() setLoading(true) try { const res = await fetch(`/api/events/${event.id}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) if (!res.ok) throw new Error('Failed to update event') toast.success('Event updated!') if (onSuccess) onSuccess() } catch (err) { console.error(err) toast.error('Something went wrong') } finally { setLoading(false) } } return (
) }