@moxb/stellar-router-react
Version:
Stellar router: React widgets
40 lines (39 loc) • 1.87 kB
JavaScript
;
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;