@sanity/default-layout
Version:
The default layout components for Sanity
34 lines (32 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.maybeRedirectToBase = maybeRedirectToBase;
var _configSanity = _interopRequireDefault(require("config:sanity"));
var _router = require("@sanity/base/router");
var _spaces = require("./util/spaces");
var _getRegisteredTools = require("./util/getRegisteredTools");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// @todo: remove the following line when part imports has been removed from this file
///<reference types="@sanity/types/parts" />
var tools = (0, _getRegisteredTools.getRegisteredTools)();
var basePath = (_configSanity.default.project && _configSanity.default.project.basePath || '').replace(/\/+$/, '');
var toolRoute = (0, _router.route)('/:tool', toolParams => {
var foundTool = tools.find(current => current.name === toolParams.tool);
return foundTool ? _router.route.scope(foundTool.name, '/', foundTool.router) : (0, _router.route)('/');
});
var spaceRoute = (0, _router.route)('/:space', params => {
var foundSpace = _spaces.CONFIGURED_SPACES.find(sp => sp.name === params.space);
return foundSpace ? toolRoute : (0, _router.route)('/');
});
var rootRouter = (0, _router.route)("".concat(basePath, "/"), [_router.route.intents('/intent'), _spaces.HAS_SPACES ? spaceRoute : toolRoute]);
function maybeRedirectToBase() {
var redirectTo = rootRouter.getRedirectBase(location.pathname);
if (redirectTo) {
history.replaceState(null, null, redirectTo);
}
}
var _default = rootRouter;
exports.default = _default;