// Library import {useState} from 'react' import {createInterpolateElement} from '@wordpress/element' import {__} from '@wordpress/i18n' // Ours. import LocationSelector from './LocationSelector.tsx' import {Description, Nonce} from './form' import {NaverMap, Marker} from './map' import {getCenter} from '../libs/helper.ts' // Types. import {LocationSet, MapProps} from '../types' // Style. import '../styles/edit-map.css' type Props = { data: MapProps nonce: string postId: number } export default function EditMap(props: Props) { const [locations, setLocations] = useState(new Set(props.data.locations)), [map, setMap] = useState(null) return (
location.coord)), disableKineticPan: false, tileTransition: true, zoom: 10 }} ref={(_map: naver.maps.Map | null) => setMap(() => _map)} style={{ height: '480px' }} > { map && props.data.allLocations .filter((location) => locations.has(location.id)) .map((location) => { return ( ) }) } { setLocations(values) }} values={locations} /> {createInterpolateElement( __('Ctrl 키를 눌러 복수의 항목을 선택할 수 있습니다.', 'naver_maps'), {kbd: } )} {/* Hidden form fields. */} {[...locations.values()].map((location: number, idx: number) => ( ))} {/* Nonce is here! */}
) }