@h4wldev/react-naver-maps
Version:
React Navermaps API integration for modern development.
60 lines (58 loc) • 1.44 kB
JavaScript
import {
omitUndefined
} from "./chunk-SOBCLIXD.mjs";
import {
useNavermaps
} from "./chunk-VVUNPVHD.mjs";
import {
HandleEvents
} from "./chunk-D77WM3Z3.mjs";
import {
Overlay
} from "./chunk-P2HFB547.mjs";
// src/overlays/polyline.tsx
import pick from "lodash.pick";
import { forwardRef, useEffect, useImperativeHandle, useState } from "react";
import { jsx } from "react/jsx-runtime";
var kvoKeys = [
"path",
"strokeWeight",
"strokeOpacity",
"strokeColor",
"strokeStyle",
"strokeLineCap",
"strokeLineJoin",
"clickable",
"visible",
"zIndex",
"startIcon",
"startIconSize",
"endIcon",
"endIconSize"
];
var kvoEvents = kvoKeys.map((key) => `${key}_changed`);
var uiEvents = [
"mousedown",
"mouseup",
"click",
"dblclick",
"rightclick",
"mouseover",
"mouseout",
"mousemove"
];
var events = [...uiEvents, ...kvoEvents];
var Polyline = forwardRef(function Polyline2(props, ref) {
const options = pick(props, [...kvoKeys]);
const navermaps = useNavermaps();
const [polyline] = useState(() => new navermaps.Polyline(options));
useImperativeHandle(ref, () => polyline);
useEffect(() => {
polyline.setOptions(omitUndefined(options));
}, kvoKeys.map((key) => options[key]));
return /* @__PURE__ */ jsx(Overlay, { element: polyline, children: /* @__PURE__ */ jsx(HandleEvents, { events, listeners: props }) });
});
export {
Polyline
};
//# sourceMappingURL=chunk-CABFZRIS.mjs.map