UNPKG

@moxb/stellar-router-react

Version:

Stellar router: React widgets

40 lines (39 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.redirectToNavRef = exports.redirectTo = exports.redirect = exports.Redirect = void 0; var tslib_1 = require("tslib"); var React = require("react"); var react_1 = require("react"); var mobx_react_lite_1 = require("mobx-react-lite"); var stellar_router_core_1 = require("@moxb/stellar-router-core"); var routingProviders_1 = require("./routingProviders"); exports.Redirect = (0, mobx_react_lite_1.observer)(function (props) { var locationManager = (0, routingProviders_1.useLocationManager)('redirect'); (0, react_1.useEffect)(function () { var _a = props.position, position = _a === void 0 ? 0 : _a, to = props.to, updateMethod = props.updateMethod, pathSaveArg = props.pathSaveArg, location = props.location; if (location) { locationManager._doSetLocation(location, stellar_router_core_1.UpdateMethod.REPLACE); return; } if (pathSaveArg) { pathSaveArg.doSet(locationManager._location, updateMethod); } if (to !== undefined) { // An empty list is a valid input here, so we can't simply test for falsy locationManager.doSetPathTokens(position, to, updateMethod); } }, []); return React.createElement("div", null, "Redirecting ... "); }); var redirect = function (props) { return React.createElement(exports.Redirect, (0, tslib_1.__assign)({}, props)); }; exports.redirect = redirect; var redirectTo = function (to) { return (0, exports.redirect)({ to: to }); }; exports.redirectTo = redirectTo; function redirectToNavRef(navRef, tokens, updateMethod) { var link = navRef.createDirectLink(tokens); return (0, exports.redirect)({ to: link.pathTokens, updateMethod: updateMethod, }); } exports.redirectToNavRef = redirectToNavRef;