UNPKG

@uiw/react-baidu-map-type-control

Version:

Baidu Map map-type-control Components for React.

44 lines 1.12 kB
import { useEffect, useState } from 'react'; import { useMapContext } from '@uiw/react-baidu-map-map'; import { useProperties, useVisiable } from '@uiw/react-baidu-map-utils'; export function useMapTypeControl(props) { if (props === void 0) { props = {}; } var [mapTypeControl, setMapTypeControl] = useState(); var { anchor, offset, type, mapTypes } = props; var { map } = useMapContext(); useEffect(() => { if (map && !mapTypeControl) { var instance = new BMap.MapTypeControl({ anchor: anchor || BMAP_ANCHOR_TOP_LEFT, offset, type, mapTypes }); map.addControl(instance); setMapTypeControl(instance); } return () => { if (map && mapTypeControl) { try { map.removeControl(mapTypeControl); } catch (error) {} } }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [map, mapTypeControl]); useVisiable(mapTypeControl, props); useProperties(mapTypeControl, props, ['Anchor', 'Offset', 'Unit']); return { mapTypeControl, setMapTypeControl }; }