@snipsonian/redux-first-router
Version:
Redux-first-router snippets
23 lines (22 loc) • 840 B
JavaScript
const VIRTUAL_PAGE_CONFIG = {
PARTS_DELIMITER: '_',
EMPTY_STATE_SELECTOR_PLACEHOLDER: '-',
};
export default function parseVirtualPage(state, virtualPageConfig) {
if (Array.isArray(virtualPageConfig)) {
return joinVirtualPagePartsAndSelectStateVarParts(state, virtualPageConfig);
}
return virtualPageConfig;
}
function joinVirtualPagePartsAndSelectStateVarParts(state, virtualPageConfigParts) {
return virtualPageConfigParts
.map((virtualPageConfigPart) => {
if (typeof virtualPageConfigPart === 'function') {
const part = (virtualPageConfigPart(state)
|| VIRTUAL_PAGE_CONFIG.EMPTY_STATE_SELECTOR_PLACEHOLDER);
return `${part}`.toLowerCase();
}
return virtualPageConfigPart;
})
.join(VIRTUAL_PAGE_CONFIG.PARTS_DELIMITER);
}