UNPKG

rc-leaflet

Version:
52 lines (51 loc) 1.97 kB
var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); import { PureComponent, Children, isValidElement, cloneElement } from 'react'; import PropTypes from 'prop-types'; import L from 'leaflet'; import { Pixel } from '../../util/PropTypes'; var BaseIcon = /** @class */ (function (_super) { __extends(BaseIcon, _super); function BaseIcon() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = { instance: undefined }; return _this; } BaseIcon.prototype.render = function () { var children = this.props.children; var icon = this.state.instance; return icon && children ? Children.map(children, function (child) { return (isValidElement(child) ? cloneElement(child, { icon: icon }) : child); }) : null; }; BaseIcon.propTypes = { pane: PropTypes.string, attribution: PropTypes.string, iconUrl: PropTypes.string, iconRetinaUrl: PropTypes.string, iconSize: Pixel, iconAnchor: Pixel, popupAnchor: Pixel, tooltipAnchor: Pixel, shadowUrl: PropTypes.string, shadowRetinaUrl: PropTypes.string, shadowSize: Pixel, shadowAnchor: Pixel, className: PropTypes.string, layer: PropTypes.instanceOf(L.Marker), children: PropTypes.node }; return BaseIcon; }(PureComponent)); export default BaseIcon;