import { useState } from "react"; import { Box, TextField, MenuItem, Button, Drawer, FormControl, Select, Typography, Stack, } from "@mui/material"; import { DatePicker } from "@mui/x-date-pickers/DatePicker"; import { AdapterDateFns } from "@mui/x-date-pickers/AdapterDateFns"; import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider"; import SearchIcon from "@mui/icons-material/Search"; import RefreshIcon from "@mui/icons-material/Refresh"; interface IForm { userId: string; transactionId: string; transactionReferenceId: string; currency: string; state: string; depositMethod: string; dateTime: string } interface ILabel { label: string; field: string; type: string; options?: string[]; } interface IAdvancedSearch { setForm: () => void; form: IForm[]; resetForm: () => void; labels: ILabel[] } export default function AdvancedSearch1({ setForm, form, resetForm, labels }: IAdvancedSearch) { const [open, setOpen] = useState(false); const handleChange = (field: string, value: any) => { setForm((prev) => ({ ...prev, [field]: value })); }; const toggleDrawer = (open: boolean) => (event: React.KeyboardEvent | React.MouseEvent) => { if ( event.type === "keydown" && ((event as React.KeyboardEvent).key === "Tab" || (event as React.KeyboardEvent).key === "Shift") ) { return; } setOpen(open); }; const list = () => ( Search {/* Buttons */} {labels.map(({ label, field, type, options }) => ( {label} {type === "text" && ( handleChange(field, e.target.value)} /> )} {type === "select" && ( )} {type === "date" && ( handleChange(field, newValue)} renderInput={(params) => ( )} /> )} ))} ); return ( {/* */} {list()} ); }