UNPKG

@sanity/default-layout

Version:

The default layout components for Sanity

34 lines (32 loc) 1.6 kB
"use strict"; 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;