@discuzq/sdk
Version:
discuz dsk
116 lines (97 loc) • 4.28 kB
JavaScript
;
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;