UNPKG

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

Version:

用于在地图上弹出一个详细信息展示窗体,地图上只允许同时展示 `1` 个信息窗体。

44 lines 1.42 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["visiable", "visible", "defaultType"]; import { useEffect, useState } from 'react'; import { useVisiable } from '@uiw/react-amap-utils'; import { useMapContext } from '@uiw/react-amap-map'; export function useMapTypeControl(props) { if (props === void 0) { props = {}; } var _useState = useState(), mapTypeControl = _useState[0], setMapTypeControl = _useState[1]; var _props = props, visiable = _props.visiable, visible = _props.visible, _props$defaultType = _props.defaultType, defaultType = _props$defaultType === void 0 ? 0 : _props$defaultType, other = _objectWithoutPropertiesLoose(_props, _excluded); var _useMapContext = useMapContext(), map = _useMapContext.map; useEffect(() => { if (map && !mapTypeControl) { var instance; map.plugin(['AMap.MapType'], () => { instance = new AMap.MapType(_extends({ defaultType }, other)); map.addControl(instance); setMapTypeControl(instance); }); return () => { if (instance) { map.removeControl(instance); } }; } }, [map]); useVisiable(mapTypeControl, visible != null ? visible : visiable); return { mapTypeControl, setMapTypeControl }; }