import React, {ComponentPropsWithoutRef, ReactNode} from 'react'; import {BackendFilter} from './filters/backend-filter'; import {useTrans} from '../i18n/use-trans'; import {TextField} from '../ui/forms/input-field/text-field/text-field'; import {SearchIcon} from '../icons/material/Search'; import {AddFilterButton} from './filters/add-filter-button'; import {MessageDescriptor} from '@common/i18n/message-descriptor'; import {message} from '@common/i18n/message'; interface Props { actions?: ReactNode; filters?: BackendFilter[]; filtersLoading?: boolean; searchPlaceholder?: MessageDescriptor; searchValue?: string; onSearchChange: (value: string) => void; } export function DataTableHeader({ actions, filters, filtersLoading, searchPlaceholder = message('Type to search...'), searchValue = '', onSearchChange, }: Props) { const {trans} = useTrans(); return ( } value={searchValue} onChange={e => { onSearchChange(e.target.value); }} /> {filters && ( )} {actions} ); } interface AnimatedHeaderProps extends ComponentPropsWithoutRef<'div'> { children: ReactNode; } export function HeaderLayout({children, ...domProps}: AnimatedHeaderProps) { return (
{children}
); }