UNPKG

@uiw/react-baidu-map-control

Version:

Baidu Map control Components for React.

41 lines 1.01 kB
import { useState, useEffect } from 'react'; import { useMapContext } from '@uiw/react-baidu-map-map'; import { useProperties, useVisiable, usePortal } from '@uiw/react-baidu-map-utils'; import getControl from "./getControl.js"; export function useControl(props) { if (props === void 0) { props = {}; } var { container, Portal } = usePortal(); var [control, setControl] = useState(); var { offset, anchor } = props; var { map } = useMapContext(); useEffect(() => { if (map && !control && container) { var Control = getControl(); var instance = new Control(container, anchor, offset); setControl(instance); map.addOverlay(instance); } return () => { if (map && control) { map.removeControl(control); } }; }, [map, control, anchor, offset, container]); useVisiable(control, props); useProperties(control, props, ['Anchor', 'Offset']); return { control, ControlPortal: Portal, setControl }; }