@mint-ui/map
Version:
- React map library - Control various map with one interface - Google, Naver, Kakao map supported now - Typescript supported - Canvas marker supported
57 lines (44 loc) • 1.72 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 MapPolylineWrapper(_a) {
var children = _a.children,
options = tslib.__rest(_a, ["children"]); //controller
var controller = MintMapProvider.useMintMapController(); //lifecycle
React.useEffect(function () {
return function () {
if (polylineRef.current) {
controller.clearDrawable(polylineRef.current);
polylineRef.current = undefined; // console.log('polyline cleared')
}
};
}, []); //create/update object
var polylineRef = React.useRef();
React.useEffect(function () {
//console.log('Polyline useEffect')
if (options) {
if (polylineRef.current) {
//console.log('update Polyline', options)
controller.updatePolyline(polylineRef.current, options);
} else {
var polyline = new MapDrawables.Polyline(options);
polylineRef.current = polyline; //console.log('create Polyline', options)
controller.createPolyline(polyline);
}
}
}, [options]);
return React__default["default"].createElement(React__default["default"].Fragment, null, options && children);
}
exports.MapPolylineWrapper = MapPolylineWrapper;