import { styled } from '@mui/material/styles'; import React from 'react'; import FilterControl from './FilterControl'; import GroupControl from './GroupControl'; import SortControl from './SortControl'; import ViewStyleControl from './ViewStyleControl'; import type { CollectionViewStyle } from '../../constants/collectionViews'; import type { FilterMap, GroupMap, SortableField, SortDirection, SortMap, TranslatedProps, ViewFilter, ViewGroup, } from '../../interface'; const CollectionControlsContainer = styled('div')` display: flex; align-items: center; flex-direction: row-reverse; margin-top: 22px; max-width: 100%; & > div { margin-left: 6px; } `; interface CollectionControlsProps { viewStyle: CollectionViewStyle; onChangeViewStyle: (viewStyle: CollectionViewStyle) => void; sortableFields: SortableField[]; onSortClick: (key: string, direction?: SortDirection) => Promise; sort: SortMap | undefined; filter: Record; viewFilters: ViewFilter[]; onFilterClick: (filter: ViewFilter) => void; group: Record; viewGroups: ViewGroup[]; onGroupClick: (filter: ViewGroup) => void; } const CollectionControls = ({ viewStyle, onChangeViewStyle, sortableFields, onSortClick, sort, viewFilters, viewGroups, onFilterClick, onGroupClick, t, filter, group, }: TranslatedProps) => { return ( {viewGroups.length > 0 && ( )} {viewFilters.length > 0 && ( )} {sortableFields.length > 0 && ( )} ); }; export default CollectionControls;