/**
* 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 );