UNPKG

@ima/react-page-renderer

Version:

IMA.js React page renderer.

37 lines (36 loc) 1.06 kB
import { useMemo } from 'react'; import { useComponentUtils } from './componentUtils'; /** * IMA $Settings access provider with optional selector. * * @example * const settings = useSettings(); * console.log(settings.$Cache.enabled); * * // Using settings selector * const { scripts, documentView } = useSettings('$Page.$Render'); * const esScripts = useSettings('$Page.$Render.esScripts'); * * @param selector Optional path selector. * @returns Settings value or undefined. */ export function useSettings(selector) { const { $Settings } = useComponentUtils(); if (!selector) { return $Settings; } return useMemo(()=>{ let segment; let curSettings = $Settings; const segments = selector.split('.'); while(segment = segments.shift()){ if (!(segment in curSettings)) { return undefined; } curSettings = curSettings[segment]; } return curSettings; }, [ $Settings ]); } //# sourceMappingURL=settings.js.map