// Library import {useEffect, useState} from 'react' // Ours. import {Marker, NaverMap} from './map' // Types. import {Coord} from '../types' type Props = { center: Coord marker?: Coord onClick?: (event: naver.maps.PointerEvent) => void onMarkerRightClick?: (event: naver.maps.PointerEvent) => void postId: number } export default function EditNaverMap(props: Props) { const { center, marker, onClick, onMarkerRightClick, postId } = props const [map, setMap] = useState(null) useEffect(() => { const clickListener: naver.maps.MapEventListener | null = map ? map.addListener( 'click', (e: naver.maps.PointerEvent) => onClick && onClick(e) ) : null return () => { if (map && clickListener) { map.removeListener(clickListener) } } }, [map]) return ( setMap(() => _map)} > {map && marker && { onMarkerRightClick && onMarkerRightClick(event) }} markerOptions={{ map: map, position: marker, }} /> } ) }