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