@uiw/react-amap-api-loader
Advanced tools
Comparing version
"use strict"; | ||
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -12,28 +10,16 @@ value: true | ||
exports.delay = delay; | ||
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime")); | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _react = _interopRequireWildcard(require("react")); | ||
var _reactAmapRequireScript = require("@uiw/react-amap-require-script"); | ||
var _jsxRuntime = require("react/jsx-runtime"); | ||
/// <reference types="@uiw/react-amap-types" /> | ||
/// <reference types="@uiw/react-amap-types" /> | ||
function delay(time) { | ||
@@ -44,19 +30,16 @@ return new Promise(function (resolve, reject) { | ||
} | ||
var DEFAULT_RETRY_TIME = 3; | ||
var DEFAULT_RETRY_TIME = 3; | ||
/** | ||
* APILoader 用于加载百度地图依赖 | ||
*/ | ||
var APILoader = /*#__PURE__*/function (_Component) { | ||
(0, _inherits2["default"])(APILoader, _Component); | ||
var _super = (0, _createSuper2["default"])(APILoader); | ||
/** | ||
* 全局可能存在多个 Loader 同时渲染, 但是只能由一个负责加载 | ||
*/ | ||
function APILoader(props) { | ||
var _this; | ||
(0, _classCallCheck2["default"])(this, APILoader); | ||
@@ -82,10 +65,7 @@ _this = _super.call(this, props); | ||
}); | ||
if (props.akay === null) { | ||
throw new TypeError('AMap: akay is required'); | ||
} | ||
return _this; | ||
} | ||
(0, _createClass2["default"])(APILoader, [{ | ||
@@ -96,3 +76,2 @@ key: "componentDidMount", | ||
var callbackName = this.props.callbackName; | ||
if (window.AMap == null) { | ||
@@ -103,3 +82,2 @@ if (window[callbackName]) { | ||
} | ||
this.loadMap(); | ||
@@ -119,7 +97,5 @@ } | ||
} | ||
if (this.props.fallback) { | ||
return this.props.fallback(this.state.error); | ||
} | ||
if (this.state.error) { | ||
@@ -133,3 +109,2 @@ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { | ||
} | ||
return null; | ||
@@ -142,13 +117,9 @@ } | ||
var protocol = cfg.protocol || window.location.protocol; | ||
if (protocol.indexOf(':') === -1) { | ||
protocol += ':'; | ||
} | ||
var plugin = ''; | ||
if (cfg.plugin) { | ||
plugin = "&plugin=".concat(cfg.plugin); | ||
} | ||
return "".concat(protocol, "//").concat(cfg.hostAndPath, "?v=").concat(cfg.version, "&key=").concat(cfg.akay, "&callback=").concat(cfg.callbackName).concat(plugin); | ||
@@ -159,3 +130,2 @@ } | ||
*/ | ||
}, { | ||
@@ -166,5 +136,3 @@ key: "loadMap", | ||
var _this2 = this; | ||
var callbackName, src, i, _ret; | ||
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) { | ||
@@ -176,3 +144,2 @@ while (1) { | ||
src = this.getScriptSrc(); | ||
window[callbackName] = function () { | ||
@@ -185,8 +152,5 @@ // flush queue | ||
}); | ||
_this2.finish(); | ||
}; | ||
i = 0; | ||
case 4: | ||
@@ -197,14 +161,10 @@ if (!(i < DEFAULT_RETRY_TIME)) { | ||
} | ||
_context.prev = 5; | ||
_context.next = 8; | ||
return (0, _reactAmapRequireScript.requireScript)(src); | ||
case 8: | ||
return _context.abrupt("break", 22); | ||
case 11: | ||
_context.prev = 11; | ||
_context.t0 = _context["catch"](5); | ||
if (!(i === DEFAULT_RETRY_TIME - 1)) { | ||
@@ -214,6 +174,5 @@ _context.next = 17; | ||
} | ||
_ret = function () { | ||
var err = new Error("Failed to load AMap: ".concat(_context.t0.message)); // flush queue | ||
var err = new Error("Failed to load AMap: ".concat(_context.t0.message)); | ||
// flush queue | ||
var queue = APILoader.waitQueue; | ||
@@ -224,5 +183,3 @@ APILoader.waitQueue = []; | ||
}); | ||
_this2.handleError(err); | ||
return { | ||
@@ -232,3 +189,2 @@ v: void 0 | ||
}(); | ||
if (!((0, _typeof2["default"])(_ret) === "object")) { | ||
@@ -238,9 +194,6 @@ _context.next = 17; | ||
} | ||
return _context.abrupt("return", _ret.v); | ||
case 17: | ||
_context.next = 19; | ||
return delay(i * 1000); | ||
case 19: | ||
@@ -250,3 +203,2 @@ i++; | ||
break; | ||
case 22: | ||
@@ -259,7 +211,5 @@ case "end": | ||
})); | ||
function loadMap() { | ||
return _loadMap.apply(this, arguments); | ||
} | ||
return loadMap; | ||
@@ -270,3 +220,2 @@ }() | ||
}(_react.Component); | ||
exports.APILoader = APILoader; | ||
@@ -273,0 +222,0 @@ (0, _defineProperty2["default"])(APILoader, "defaultProps", { |
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; | ||
/// <reference types="@uiw/react-amap-types" /> | ||
import React, { Component } from 'react'; | ||
@@ -12,6 +13,6 @@ import { requireScript } from '@uiw/react-amap-require-script'; | ||
var DEFAULT_RETRY_TIME = 3; | ||
/** | ||
* APILoader 用于加载百度地图依赖 | ||
*/ | ||
export class APILoader extends Component { | ||
@@ -21,2 +22,3 @@ /** | ||
*/ | ||
constructor(props) { | ||
@@ -28,3 +30,2 @@ super(props); | ||
}; | ||
this.handleError = error => { | ||
@@ -37,3 +38,2 @@ if (this.isMountedOk) { | ||
}; | ||
this.finish = () => { | ||
@@ -46,3 +46,2 @@ if (this.isMountedOk) { | ||
}; | ||
if (props.akay === null) { | ||
@@ -52,3 +51,2 @@ throw new TypeError('AMap: akay is required'); | ||
} | ||
componentDidMount() { | ||
@@ -59,3 +57,2 @@ this.isMountedOk = true; | ||
} = this.props; | ||
if (window.AMap == null) { | ||
@@ -66,11 +63,8 @@ if (window[callbackName]) { | ||
} | ||
this.loadMap(); | ||
} | ||
} | ||
componentWillUnmount() { | ||
this.isMountedOk = false; | ||
} | ||
render() { | ||
@@ -80,7 +74,5 @@ if (this.state.loaded) { | ||
} | ||
if (this.props.fallback) { | ||
return this.props.fallback(this.state.error); | ||
} | ||
if (this.state.error) { | ||
@@ -94,20 +86,14 @@ return /*#__PURE__*/_jsx("div", { | ||
} | ||
return null; | ||
} | ||
getScriptSrc() { | ||
var cfg = this.props; | ||
var protocol = cfg.protocol || window.location.protocol; | ||
if (protocol.indexOf(':') === -1) { | ||
protocol += ':'; | ||
} | ||
var plugin = ''; | ||
if (cfg.plugin) { | ||
plugin = "&plugin=" + cfg.plugin; | ||
} | ||
return protocol + "//" + cfg.hostAndPath + "?v=" + cfg.version + "&key=" + cfg.akay + "&callback=" + cfg.callbackName + plugin; | ||
@@ -118,7 +104,4 @@ } | ||
*/ | ||
loadMap() { | ||
var _this = this; | ||
return _asyncToGenerator(function* () { | ||
@@ -128,5 +111,3 @@ var { | ||
} = _this.props; | ||
var src = _this.getScriptSrc(); | ||
window[callbackName] = () => { | ||
@@ -137,6 +118,4 @@ // flush queue | ||
queue.forEach(task => task[0]()); | ||
_this.finish(); | ||
}; | ||
for (var i = 0; i < DEFAULT_RETRY_TIME; i++) { | ||
@@ -149,10 +128,8 @@ try { | ||
var _ret = function () { | ||
var err = new Error("Failed to load AMap: " + error.message); // flush queue | ||
var err = new Error("Failed to load AMap: " + error.message); | ||
// flush queue | ||
var queue = APILoader.waitQueue; | ||
APILoader.waitQueue = []; | ||
queue.forEach(task => task[1](err)); | ||
_this.handleError(err); | ||
return { | ||
@@ -162,6 +139,4 @@ v: void 0 | ||
}(); | ||
if (typeof _ret === "object") return _ret.v; | ||
} | ||
yield delay(i * 1000); | ||
@@ -172,3 +147,2 @@ } | ||
} | ||
} | ||
@@ -175,0 +149,0 @@ APILoader.defaultProps = { |
{ | ||
"name": "@uiw/react-amap-api-loader", | ||
"version": "4.0.2", | ||
"version": "4.0.3", | ||
"description": "用于加载高德地图 SDK 依赖,加载完成,全局将会有 **`window.AMap`** 对象。", | ||
@@ -36,4 +36,4 @@ "homepage": "https://uiwjs.github.io/react-amap/#/api-loader", | ||
"dependencies": { | ||
"@uiw/react-amap-require-script": "4.0.2", | ||
"@uiw/react-amap-types": "4.0.2" | ||
"@uiw/react-amap-require-script": "4.0.3", | ||
"@uiw/react-amap-types": "4.0.3" | ||
}, | ||
@@ -40,0 +40,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
41481
0.46%665
0.3%+ Added
+ Added
- Removed
- Removed
Updated