import React from "react" import { IconButton, SvgIcon, TextField } from "@mui/material" import { DataFilterType, FiltersMessage } from "../types/filter.type" import { FilterInputContainer } from "./style" export interface DataTableFilterTextProps { style?: React.CSSProperties, between?: boolean, messages: FiltersMessage, value: DataFilterType | [DataFilterType, DataFilterType] onChange: (value: string | null | (string | null)[]) => void, } export const DataTableFilterText: React.FC = ({ style, between, messages, value, onChange }) => { const getValue = () => { const str = (v: any): string | null => { return v ? typeof v === 'boolean' ? v ? messages.true : messages.false : `${v}` : '' } return between ? Array.isArray(value) ? value.length > 0 ? value.length > 1 ? [str(value[0]), str(value[1])] : [str(value[0]), ''] : ['', ''] : [str(value), ''] : Array.isArray(value) ? value.length > 0 ? str(value[0]) : '' : str(value) } const handleChange1 = (event: any) => { const val = event.target.value; if (between) { const value = getValue() as string[]; if (val && value[1] && value[1] < val) { value[0] = value[1]; value[1] = val; } else value[0] = val; onChange(value); } else { onChange(val) } } const handleChange2 = (event: any) => { const val = event.target.value; if (between) { const value = getValue() as string[]; if (val && value[0] && value[0] > val) { value[1] = value[0]; value[0] = val; } else value[1] = val; onChange(value); } else { onChange(val) } } const handleClear = () => { if (between) { onChange([null, null]); } else { onChange(null) } } return ( { between && } ) } const CloseIcon = () => ( )