// src/sections/invoice/invoice-table-toolbar.tsx import type { IDatePickerControl } from 'src/types/common'; import type { IInvoiceTableFilters } from 'src/types/invoice'; import type { SelectChangeEvent } from '@mui/material/Select'; import type { UseSetStateReturn } from 'minimal-shared/hooks'; import { useCallback } from 'react'; import { usePopover } from 'minimal-shared/hooks'; import Box from '@mui/material/Box'; import Select from '@mui/material/Select'; import MenuList from '@mui/material/MenuList'; import MenuItem from '@mui/material/MenuItem'; import Checkbox from '@mui/material/Checkbox'; import TextField from '@mui/material/TextField'; import InputLabel from '@mui/material/InputLabel'; import IconButton from '@mui/material/IconButton'; import FormControl from '@mui/material/FormControl'; import OutlinedInput from '@mui/material/OutlinedInput'; import InputAdornment from '@mui/material/InputAdornment'; import { DatePicker } from '@mui/x-date-pickers/DatePicker'; import { formHelperTextClasses } from '@mui/material/FormHelperText'; import { Iconify } from 'src/components/iconify'; import { CustomPopover } from 'src/components/custom-popover'; import { useTranslation } from 'react-i18next'; // ---------------------------------------------------------------------- type Props = { dateError: boolean; onResetPage: () => void; filters: UseSetStateReturn; options: { services: string[]; }; }; export function InvoiceTableToolbar({ // filters, options, dateError, onResetPage, }: Props) { const { t } = useTranslation(); const menuActions = usePopover(); const { state: currentFilters, setState: updateFilters } = filters; const handleFilterName = useCallback( (event: React.ChangeEvent) => { onResetPage(); updateFilters({ name: event.target.value }); }, [onResetPage, updateFilters] ); const handleFilterService = useCallback( (event: SelectChangeEvent) => { const newValue = typeof event.target.value === 'string' ? event.target.value.split(',') : event.target.value; onResetPage(); updateFilters({ service: newValue }); }, [onResetPage, updateFilters] ); const handleFilterStartDate = useCallback( (newValue: IDatePickerControl) => { onResetPage(); updateFilters({ startDate: newValue }); }, [onResetPage, updateFilters] ); const handleFilterEndDate = useCallback( (newValue: IDatePickerControl) => { onResetPage(); updateFilters({ endDate: newValue }); }, [onResetPage, updateFilters] ); const renderMenuActions = () => ( menuActions.onClose()}> {t('Print')} menuActions.onClose()}> {t('Import')} menuActions.onClose()}> {t('Export')} ); return ( <> {t('Service')} ), }, }} /> {renderMenuActions()} ); }