"use client"; import { useCallback, useState } from "react"; import { APIProvider, Map, AdvancedMarker, InfoWindow, } from "@vis.gl/react-google-maps"; import type { Restaurant } from "@/lib/api"; const SEOUL_CENTER = { lat: 37.5665, lng: 126.978 }; const API_KEY = process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY || ""; interface MapViewProps { restaurants: Restaurant[]; onSelectRestaurant?: (r: Restaurant) => void; } export default function MapView({ restaurants, onSelectRestaurant }: MapViewProps) { const [selected, setSelected] = useState(null); const handleMarkerClick = useCallback( (r: Restaurant) => { setSelected(r); onSelectRestaurant?.(r); }, [onSelectRestaurant] ); return ( {restaurants.map((r) => ( handleMarkerClick(r)} /> ))} {selected && ( setSelected(null)} >

{selected.name}

{selected.cuisine_type && (

{selected.cuisine_type}

)} {selected.address && (

{selected.address}

)} {selected.price_range && (

{selected.price_range}

)}
)}
); }