UNPKG

@snipsonian/redux-first-router

Version:

Redux-first-router snippets

23 lines (22 loc) 840 B
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); }