import { TripDetails } from "../../../trip-planner/types"; import { useState } from "react"; export default function BookRestaurant({ tripDetails, restaurantName, }: { tripDetails: TripDetails; restaurantName: string; }) { // Placeholder data - ideally would come from props const [restaurant] = useState({ name: restaurantName, cuisine: "Contemporary", priceRange: "$$", rating: 4.7, image: "https://placehold.co/300x200?text=Restaurant", openingHours: "5:00 PM - 10:00 PM", address: "123 Main St, " + tripDetails.location, availableTimes: ["6:00 PM", "7:00 PM", "8:00 PM", "9:00 PM"], }); const [reservationStep, setReservationStep] = useState< "selection" | "details" | "confirmed" >("selection"); const [selectedDate, setSelectedDate] = useState( new Date(tripDetails.startDate), ); const [selectedTime, setSelectedTime] = useState(null); const [guests, setGuests] = useState(Math.min(tripDetails.numberOfGuests, 8)); const [formData, setFormData] = useState({ name: "", email: "", phone: "", specialRequests: "", }); const handleDateChange = (e: React.ChangeEvent) => { const date = new Date(e.target.value); setSelectedDate(date); }; const handleGuestsChange = (e: React.ChangeEvent) => { setGuests(Number(e.target.value)); }; const handleInputChange = ( e: React.ChangeEvent, ) => { setFormData({ ...formData, [e.target.name]: e.target.value }); }; const handleTimeSelection = (time: string) => { setSelectedTime(time); }; const handleContinue = () => { if (selectedTime) { setReservationStep("details"); } }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); setReservationStep("confirmed"); }; const formatDate = (date: Date) => { return date.toISOString().split("T")[0]; }; return (

Reserve at {restaurant.name}

{restaurant.cuisine} • {restaurant.priceRange} • {restaurant.rating}★

{reservationStep === "selection" && (
{restaurant.name}

{restaurant.name}

{restaurant.address}

{restaurant.openingHours}

{restaurant.availableTimes.map((time) => ( ))}
)} {reservationStep === "details" && (
Date & Time {selectedDate.toLocaleDateString()} at {selectedTime}
Party Size {guests} {guests === 1 ? "person" : "people"}