UNPKG

@findify/react-components

Version:
47 lines (46 loc) 1.67 kB
/** * @module components/search/DesktopActions */ import { useCallback, useState } from 'react'; import Breadcrumbs from 'components/Breadcrumbs'; import Query from 'components/search/Query'; import Sorting from 'components/Sorting'; import Button from 'components/Button'; import Text from 'components/Text'; import Icon from 'components/Icon'; import Grid, { Column } from 'components/common/Grid'; import useTranslations from 'helpers/useTranslations'; import { emit, useEvents } from 'helpers/emmiter'; import styles from 'components/search/DesktopActions/styles.css'; const useFacetsLogic = () => { const [visible, setVisible] = useState(true); useEvents({ hideFacets: () => setVisible(false), }); const showFacets = useCallback(() => { setVisible(true); emit('showFacets'); }, []); return [visible, showFacets]; }; export default ({ theme = styles, isCollection }) => { const translate = useTranslations(); const [facetsVisible, showFacets] = useFacetsLogic(); return (<Grid className={theme.root} columns="auto|fit"> <Column className={theme.block}> <div className={theme.blockInner}> <Button display-if={!facetsVisible} className={theme.showFacets} onClick={showFacets}> <Text secondary uppercase> <Icon name="Filters" title="Filters" className={theme.icon}/> {translate('actions.showFilters')} </Text> </Button> <Query display-if={!isCollection}/> <Breadcrumbs /> </div> </Column> <Column className={theme.sorting}> <Sorting /> </Column> </Grid>); };