UNPKG

@discuzq/sdk

Version:

discuz dsk

116 lines (97 loc) 4.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); require("core-js/modules/es.regexp.exec.js"); require("core-js/modules/es.string.replace.js"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _router = _interopRequireDefault(require("next/router")); 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) { (0, _defineProperty2.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; } // https://www.nextjs.cn/docs/api-reference/next/router#routerpush var WebRouter = /*#__PURE__*/function () { function WebRouter() { (0, _classCallCheck2.default)(this, WebRouter); (0, _defineProperty2.default)(this, "_options", { scroll: true, shallow: true }); (0, _defineProperty2.default)(this, "router", _router.default); } (0, _createClass2.default)(WebRouter, [{ key: "push", value: function push() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opt, url = _ref.url, _ref$as = _ref.as, as = _ref$as === void 0 ? '' : _ref$as, _ref$options = _ref.options, options = _ref$options === void 0 ? {} : _ref$options; this.router.push(url, as, _objectSpread(_objectSpread({}, this._options), options)); } }, { key: "replace", value: function replace() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opt, url = _ref2.url, _ref2$as = _ref2.as, as = _ref2$as === void 0 ? '' : _ref2$as, _ref2$options = _ref2.options, options = _ref2$options === void 0 ? {} : _ref2$options; this.router.replace(url, as, _objectSpread(_objectSpread({}, this._options), options)); } // 预读取页面,只对没有Link标签包裹的路径有效 }, { key: "prefetch", value: function prefetch() { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opt, url = _ref3.url, _ref3$as = _ref3.as, as = _ref3$as === void 0 ? '' : _ref3$as; this.router.prefetch(url, as); } }, { key: "switchTab", value: function switchTab() { console.warn('浏览器不支持switchTab'); } }, { key: "beforePopState", value: function beforePopState(cb) { this.router.beforePopState(cb); } }, { key: "back", value: function back() { this.router.back(); } }, { key: "redirect", value: function redirect() { var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : opt, url = _ref4.url, _ref4$as = _ref4.as, as = _ref4$as === void 0 ? '' : _ref4$as, _ref4$options = _ref4.options, options = _ref4$options === void 0 ? {} : _ref4$options; if (options.res) { options.res.writeHead(ops.status || 302, { Location: url }); options.res.end(); } else { this.replace({ url: url, as: as, options: options }); } } }]); return WebRouter; }(); var _default = new WebRouter(); exports.default = _default;