import { FC, useCallback, useState } from 'react'; import { CatalogEvent } from '../../events'; import { DraggableWindow } from '../../hooks/draggable-window/DraggableWindow'; import { useUiEvent } from '../../hooks/events/ui/ui-event'; import { LocalizeText } from '../../utils/LocalizeText'; import { CatalogMessageHandler } from './CatalogMessageHandler'; import { CatalogViewProps } from './CatalogView.types'; export const CatalogView: FC = props => { const [ isVisible, setIsVisible ] = useState(false); const onCatalogEvent = useCallback((event: CatalogEvent) => { switch(event.type) { case CatalogEvent.SHOW_CATALOG: setIsVisible(true); return; case CatalogEvent.TOGGLE_CATALOG: setIsVisible(value => !value); return; } }, []); useUiEvent(CatalogEvent.SHOW_CATALOG, onCatalogEvent); useUiEvent(CatalogEvent.TOGGLE_CATALOG, onCatalogEvent); function hideCatalog(): void { setIsVisible(false); } return ( <> { isVisible &&
{ LocalizeText('catalog.title') }
content
} ); }