import React from 'react' import {IPageConnection, ITemplateConnection} from '../../../connectors' import {withRedux} from '../../redux' import {pageLoader, templateLoader} from '../componentLoader' import {useDynamicRedirect} from '../routing/hooks' export interface ISiteContext { templateLoader: (name: string) => Promise pageLoader: (name: string) => Promise } export const SiteContext = React.createContext(undefined) export const SiteProvider: React.FC> = withRedux( ({children}) => { useDynamicRedirect() return ( {children} ) } ) /** * Access the SiteContext. * * @example * ``` * const { jaen } = useSiteContext() * ``` */ export const useSiteContext = () => { const context = React.useContext(SiteContext) if (context === undefined) { throw new Error('useSiteContext must be within SiteContextProvider') } return context }