import { useState, useCallback, useEffect } from 'react'; import useEmblaCarousel from 'embla-carousel-react'; import { ChevronLeft, ChevronRight } from 'lucide-react'; import type { ListingDetailPhoto } from '@/types'; interface PhotoCarouselProps { photos: ListingDetailPhoto[]; } export function PhotoCarousel({ photos }: PhotoCarouselProps) { const [emblaRef, emblaApi] = useEmblaCarousel({ loop: true }); const [selectedIndex, setSelectedIndex] = useState(0); const onSelect = useCallback(() => { if (!emblaApi) return; setSelectedIndex(emblaApi.selectedScrollSnap()); }, [emblaApi]); useEffect(() => { if (!emblaApi) return; emblaApi.on('select', onSelect); return () => { emblaApi.off('select', onSelect); }; }, [emblaApi, onSelect]); if (photos.length === 0) { return (