@meysam213/react-neshan-map-leaflet
Version:
⚛️ React component for 🍃 Neshan Leaflet map.
92 lines (76 loc) • 3.35 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var React = require('react');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var BASE_URL = "https://static.neshan.org";
var DEFAULT_URL = "".concat(BASE_URL, "/sdk/leaflet/1.4.0/leaflet.js");
var DEFAULT_URL_STYLE = "".concat(BASE_URL, "/sdk/leaflet/1.4.0/leaflet.css");
var neshan_map_loader = (function (props) {
var createScript = function createScript() {
var onError = props.onError,
onLoad = props.onLoad;
var style = document.createElement("link");
style.href = DEFAULT_URL_STYLE;
style.rel = "stylesheet";
document.head.appendChild(style); // @ts-ignore
if (window.L) {
if (onLoad) onLoad();
return;
}
var script = document.createElement("script");
script.src = DEFAULT_URL;
script.onload = function () {
if (onLoad) onLoad();
return;
};
script.onerror = function () {
if (onError) onError();
return;
};
document.body.appendChild(script);
};
return createScript();
});
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var NeshanMap = function NeshanMap(props) {
var style = props.style,
options = props.options,
onInit = props.onInit;
var mapEl = React.useRef(null);
var defaultStyle = {
width: "600px",
height: "450px",
margin: 0,
padding: 0,
background: "#eee"
};
var defaultOptions = {
key: "YOUR_API_KEY",
maptype: "dreamy",
poi: true,
traffic: false,
center: [35.699739, 51.338097],
zoom: 14
};
React.useEffect(function () {
neshan_map_loader({
onLoad: function onLoad() {
// @ts-ignore
var map = new window.L.Map(mapEl.current, _objectSpread(_objectSpread({}, defaultOptions), options)); // @ts-ignore
if (onInit) onInit(window.L, map);
},
onError: function onError() {
console.error("Neshan Maps Error: This page didn't load Neshan Maps correctly");
}
});
}, []);
return /*#__PURE__*/React__default['default'].createElement("div", {
ref: mapEl,
style: _objectSpread(_objectSpread({}, defaultStyle), style)
});
};
exports.NeshanMap = NeshanMap;