UNPKG

@moxb/stellar-router-react

Version:

Stellar router: React widgets

46 lines (45 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderSubStateCore = exports.renderFallback = void 0; var tslib_1 = require("tslib"); var react_html_1 = require("@moxb/react-html"); /** * Render the fallback widget. * * This is an implementation detail, not to be used by application code. */ function renderFallback(props, fallback) { var filterCondition = props.filterCondition, part = props.part, parsedTokens = props.parsedTokens; var navigableChildParams = { parsedTokens: parsedTokens, filterCondition: filterCondition, part: part, }; var fallbackFragment = (0, react_html_1.extractUIFragmentFromSpec)({}, fallback, part); return (0, react_html_1.renderUIFragment)(fallbackFragment, navigableChildParams); } exports.renderFallback = renderFallback; /** * Render content for a given sub-state. * * This is an implementation detail, not to be used by application code. */ function renderSubStateCore(props) { var state = props.state, fallback = props.fallback, navigationContext = props.navigationContext, _a = props.tokenIncrease, tokenIncrease = _a === void 0 ? 0 : _a, _b = props.extraProps, extraProps = _b === void 0 ? {} : _b, checkCondition = props.checkCondition, navControl = props.navControl; var filterCondition = navigationContext.filterCondition, parsedTokens = navigationContext.parsedTokens, part = navigationContext.part; if (checkCondition && state && state.data && filterCondition) { if (!filterCondition(state.data)) { return renderFallback(navigationContext, fallback); } } var navigableChildParams = { parsedTokens: (parsedTokens || 0) + tokenIncrease, filterCondition: filterCondition, part: part, navControl: navControl, }; var childProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, extraProps), navigableChildParams); var fragment = (0, react_html_1.extractUIFragmentFromSpec)((state || {}).fragment, fallback, part); return (0, react_html_1.renderUIFragment)(fragment, childProps); } exports.renderSubStateCore = renderSubStateCore;