import { CatalogPageEvent, CatalogPagesEvent } from 'nitro-renderer'; import { FC, useCallback } from 'react'; import { CreateMessageHook } from '../../hooks/messages/message-event'; import { CatalogMessageHandlerProps } from './CatalogMessageHandler.types'; import { useCatalogContext } from './context/CatalogContext'; import { CatalogActions } from './reducers/CatalogReducer'; export const CatalogMessageHandler: FC = props => { const { dispatchCatalogState = null } = useCatalogContext(); const onCatalogPagesEvent = useCallback((event: CatalogPagesEvent) => { const parser = event.getParser(); dispatchCatalogState({ type: CatalogActions.SET_CATALOG_ROOT, payload: { root: parser.root } }); }, [ dispatchCatalogState ]); const onCatalogPageEvent = useCallback((event: CatalogPageEvent) => { const parser = event.getParser(); dispatchCatalogState({ type: CatalogActions.SET_CATALOG_PAGE_PARSER, payload: { pageParser: parser } }); }, [ dispatchCatalogState ]); CreateMessageHook(CatalogPagesEvent, onCatalogPagesEvent); CreateMessageHook(CatalogPageEvent, onCatalogPageEvent); return null; }