UNPKG

taro-hooks

Version:
87 lines (86 loc) 3.55 kB
"use strict"; var _excluded = ["params"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var taro_1 = require("@tarojs/taro"); var core_1 = require("@taro-hooks/core"); var useFrom_1 = tslib_1.__importDefault(require("../useFrom")); var usePromise_1 = tslib_1.__importDefault(require("../usePromise")); var usePage_1 = tslib_1.__importDefault(require("../usePage")); var tool_1 = require("../utils/tool"); function useRouter() { var router = (0, core_1.useRef)((0, taro_1.useRouter)()); var from = (0, useFrom_1["default"])(); var _ref = (0, usePage_1["default"])(), pageInstance = _ref[1].pageInstance; var navigateToAsync = (0, usePromise_1["default"])(taro_1.navigateTo); var navigateToMiniProgramAsync = (0, usePromise_1["default"])(taro_1.navigateToMiniProgram); var openEmbeddedMiniProgramAsync = (0, usePromise_1["default"])(taro_1.openEmbeddedMiniProgram); var switchTabAsync = (0, usePromise_1["default"])(taro_1.switchTab); var relaunchAsync = (0, usePromise_1["default"])(taro_1.reLaunch); var redirectToAsync = (0, usePromise_1["default"])(taro_1.redirectTo); var navigateBackAsync = (0, usePromise_1["default"])(taro_1.navigateBack); var navigateBackMiniProgramAsync = (0, usePromise_1["default"])(taro_1.navigateBackMiniProgram); var exitMiniProgramAsync = (0, usePromise_1["default"])(taro_1.exitMiniProgram); var navigate = function navigate(url, payload, mini, embedded) { if (mini) { var _payload$params = payload.params, params = _payload$params === void 0 ? {} : _payload$params, extendsPayload = _objectWithoutPropertiesLoose(payload, _excluded); var _navigateURI = (0, tool_1.stringfiyUrl)(url, params); var options = _extends({ path: _navigateURI }, extendsPayload); return embedded ? openEmbeddedMiniProgramAsync(options) : navigateToMiniProgramAsync(options); } var navigateURI = (0, tool_1.stringfiyUrl)(url, payload); return navigateToAsync({ url: navigateURI }); }; var switchTab = function switchTab(url) { return switchTabAsync({ url: url }); }; var relaunch = function relaunch(url, payload) { var navigateURI = (0, tool_1.stringfiyUrl)(url, payload); return relaunchAsync({ url: navigateURI }); }; var redirect = function redirect(url, payload) { var navigateURI = (0, tool_1.stringfiyUrl)(url, payload); return redirectToAsync({ url: navigateURI }); }; var back = function back(payload, mini) { if (!mini) { return navigateBackAsync({ delta: payload || 1 }); } return navigateBackMiniProgramAsync({ extraData: payload || {} }); }; var exit = exitMiniProgramAsync; return [_extends({}, router.current, { from: from, preloadData: pageInstance.preloadData }), { navigate: navigate, switchTab: switchTab, relaunch: relaunch, redirect: redirect, back: back, exit: exit, preload: taro_1.preload }]; } exports["default"] = useRouter;