/** * WordPress dependencies */ import { memo, useContext, useRef } from '@wordpress/element'; import { Stack } from '@wordpress/ui'; /** * Internal dependencies */ import Filter from './filter'; import { default as AddFilter } from './add-filter'; import ResetFilters from './reset-filters'; import useFilters from './use-filters'; import DataViewsContext from '../dataviews-context'; function Filters( { className }: { className?: string } ) { const { fields, view, onChangeView, openedFilter, setOpenedFilter } = useContext( DataViewsContext ); const addFilterRef = useRef< HTMLButtonElement >( null ); const filters = useFilters( fields, view ); const addFilter = ( ); const visibleFilters = filters.filter( ( filter ) => filter.isVisible ); if ( visibleFilters.length === 0 ) { return null; } const filterComponents = [ ...visibleFilters.map( ( filter ) => { return ( ); } ), addFilter, ]; filterComponents.push( ); return ( { filterComponents } ); } export default memo( Filters );