import React from "react" import { DataFilterType, FiltersMessage } from "../types/filter.type" import { IconButton, SvgIcon } from "@mui/material"; import { DatePicker } from '@mui/x-date-pickers'; import { FilterInputContainer, FilterTextField } from "./style"; import { DateRangePicker } from "../../date-range"; export interface DataTableFilterDateProps { style?: React.CSSProperties, between?: boolean, messages: FiltersMessage, range: [DataFilterType, DataFilterType], value: DataFilterType | [DataFilterType, DataFilterType] onChange: (value: Date | null | (Date | null)[]) => void, } export const DataTableFilterDate: React.FC = ({ style, between, range, value, onChange }) => { const getValue = () => { const date = (v: any): Date | null => { return v && typeof v.getUTCFullYear === 'function' ? v : null } return between ? Array.isArray(value) ? value.length > 0 ? value.length > 1 ? [date(value[0]), date(value[1])] : [date(value[0]), null] : [null, null] : [date(value), null] : Array.isArray(value) ? value.length > 0 ? date(value[0]) : null : date(value); } const handleChange = (event: Date | null) => { const val = event ? new Date(event.getUTCFullYear(), event.getUTCMonth(), event.getUTCDate()) : null; onChange(val) } const handleRangeChange = (event: [Date | null, Date | null]) => { const val = event ? [ event[0] ? new Date(event[0].getUTCFullYear(), event[0].getUTCMonth(), event[0].getUTCDate()) : null, event[1] ? new Date(event[1].getUTCFullYear(), event[1].getUTCMonth(), event[1].getUTCDate()) : null, ] : null; const result = val.filter(x => x) onChange(result.length > 0 ? result : null) } const handleClear = () => { if (between) { onChange([null, null]); } else { onChange(null) } } return ( { between ? 0 ? range[0] as any : undefined} maxDate={range && range.length > 1 ? range[1] as any : undefined} onChange={handleRangeChange} TextFieldProps={{ variant: "standard", style: { width: 'calc(100% - 32px)' } }} /> : ( ) } /> } ) } const CloseIcon = () => ( )