import "./index.css"; import React from "react"; import { X } from "lucide-react"; import { Button } from "@/components/ui/button"; import { TripDetails } from "../../../trip-planner/types"; import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel"; import { format } from "date-fns"; import { Accommodation } from "agent/types"; import { capitalizeSentence } from "../../../utils/capitalize"; const StarSVG = ({ fill = "white" }: { fill?: string }) => ( ); function AccommodationCard({ accommodation, }: { accommodation: Accommodation; }) { return (

{accommodation.name}

{accommodation.rating}

ยท

{accommodation.price}

{capitalizeSentence(accommodation.city)}

); } function SelectedAccommodation({ accommodation, onHide, tripDetails, }: { accommodation: Accommodation; onHide: () => void; tripDetails: TripDetails; }) { const startDate = new Date(tripDetails.startDate); const endDate = new Date(tripDetails.endDate); const totalTripDurationDays = Math.max( startDate.getDate() - endDate.getDate(), 1, ); const totalPrice = totalTripDurationDays * accommodation.price; return (
{accommodation.name}

{accommodation.name}

{accommodation.rating}

{capitalizeSentence(accommodation.city)}

Check-in {format(startDate, "MMM d, yyyy")}
Check-out {format(endDate, "MMM d, yyyy")}
Guests {tripDetails.numberOfGuests}
Total Price ${totalPrice.toLocaleString()}
); } export default function AccommodationsList({ tripDetails, accommodations, }: { tripDetails: TripDetails; accommodations: Accommodation[]; }) { const [selectedAccommodation, setSelectedAccommodation] = React.useState< Accommodation | undefined >(); if (selectedAccommodation) { return ( setSelectedAccommodation(undefined)} accommodation={selectedAccommodation} /> ); } return (
{accommodations.map((accommodation) => ( setSelectedAccommodation(accommodation)} > ))}
); }