@mint-ui/map
Version:
- React map library - Control various map with one interface - Google, Naver, Kakao map supported now - Typescript supported - Canvas marker supported
58 lines (45 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var React = require('react');
var MintMapProvider = require('../provider/MintMapProvider.js');
var MapDrawables = require('../../types/MapDrawables.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
/**
* Mint Map 컴포넌트
*
* @param {MapControlWrapperProps} MapControlWrapperProps
*
* @returns {JSX.Element} JSX
*/
function MapPolygonWrapper(_a) {
var children = _a.children,
options = tslib.__rest(_a, ["children"]); //controller
var controller = MintMapProvider.useMintMapController(); //lifecycle
React.useEffect(function () {
return function () {
if (polygonRef.current) {
// console.log('polygon cleared')
controller.clearDrawable(polygonRef.current);
polygonRef.current = undefined;
}
};
}, []); //create/update object
var polygonRef = React.useRef();
React.useEffect(function () {
//console.log('Polygon useEffect')
if (options) {
if (polygonRef.current) {
//console.log('update Polygon', options)
controller.updatePolygon(polygonRef.current, options);
} else {
var polygon = new MapDrawables.Polygon(options);
polygonRef.current = polygon; //console.log('create Polygon', options)
controller.createPolygon(polygon);
}
}
}, [options]);
return React__default["default"].createElement(React__default["default"].Fragment, null, options && children);
}
exports.MapPolygonWrapper = MapPolygonWrapper;