@findify/react-components
Version:
Findify react UI components
47 lines (46 loc) • 1.67 kB
JSX
/**
* @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>);
};