UNPKG

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

Version:

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

50 lines (49 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMapTypeControl = useMapTypeControl; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _reactAmapUtils = require("@uiw/react-amap-utils"); var _reactAmapMap = require("@uiw/react-amap-map"); var _excluded = ["visiable", "visible", "defaultType"]; function useMapTypeControl() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), mapTypeControl = _useState2[0], setMapTypeControl = _useState2[1]; var visiable = props.visiable, visible = props.visible, _props$defaultType = props.defaultType, defaultType = _props$defaultType === void 0 ? 0 : _props$defaultType, other = (0, _objectWithoutProperties2["default"])(props, _excluded); var _useMapContext = (0, _reactAmapMap.useMapContext)(), map = _useMapContext.map; (0, _react.useEffect)(function () { if (map && !mapTypeControl) { var instance; map.plugin(['AMap.MapType'], function () { instance = new AMap.MapType((0, _objectSpread2["default"])({ defaultType: defaultType }, other)); map.addControl(instance); setMapTypeControl(instance); }); return function () { if (instance) { map.removeControl(instance); } }; } }, [map]); (0, _reactAmapUtils.useVisiable)(mapTypeControl, visible !== null && visible !== void 0 ? visible : visiable); return { mapTypeControl: mapTypeControl, setMapTypeControl: setMapTypeControl }; }