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 '@staticcms/core/constants/collectionViews'; import type { FilterMap, GroupMap, SortableField, SortDirection, SortMap, TranslatedProps, ViewFilter, ViewGroup, } from '@staticcms/core/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 && onGroupClick && group ? viewGroups.length > 0 && ( ) : null} {viewFilters && onFilterClick && filter ? viewFilters.length > 0 && ( ) : null} {sortableFields && onSortClick && sort ? sortableFields.length > 0 && ( ) : null} ); }; export default CollectionControls;