UNPKG

@lyra/google-maps-input

Version:

Lyra plugin providing input handlers for geo-related input types using Google Maps

70 lines (51 loc) 1.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _loadGoogleMapsApi = require('./loadGoogleMapsApi'); var _loadGoogleMapsApi2 = _interopRequireDefault(_loadGoogleMapsApi); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class GoogleMapsLoadProxy extends _react2.default.Component { constructor(props) { super(props); this.state = { loading: true, error: null }; } componentDidMount() { (0, _loadGoogleMapsApi2.default)(this.props).then(api => this.setState({ loading: false, api })).catch(err => this.setState({ error: err })); } render() { var _state = this.state; const error = _state.error, loading = _state.loading, api = _state.api; if (error) { return _react2.default.createElement( 'div', null, 'Load error: ', error.stack ); } if (loading) { return _react2.default.createElement( 'div', null, 'Loading Google Maps API' ); } const GeopointSelect = this.props.component; return _react2.default.createElement(GeopointSelect, _extends({}, this.props, { api: api })); } } GoogleMapsLoadProxy.propTypes = { component: _propTypes2.default.func.isRequired }; exports.default = GoogleMapsLoadProxy;