"use client"; import { useState } from "react"; import { useSearchParams, useRouter } from "next/navigation"; import { Button, Dialog, DialogTitle, DialogContent, DialogActions, FormControl, Select, MenuItem, FormControlLabel, Checkbox, Stack, Paper, TextField, } from "@mui/material"; import FileUploadIcon from "@mui/icons-material/FileUpload"; import { DataGrid, GridColDef, GridRenderCellParams } from "@mui/x-data-grid"; import AdvancedSearch from "../../AdvancedSearch/AdvancedSearch"; import SearchFilters from "@/app/components/searchFilter/SearchFilters"; import { exportData } from "@/app/utils/exportData"; import { ITransaction } from "./types"; interface IDepositProps { res: ITransaction; } const TransactionsTable = ({ res }: IDepositProps) => { const { filteredTransactions, transactionsColumns, transactionsSearchLabels, } = res; const router = useRouter(); const searchParams = useSearchParams(); const [open, setOpen] = useState(false); const [fileType, setFileType] = useState<"csv" | "xls" | "xlsx">("csv"); const [onlyCurrentTable, setOnlyCurrentTable] = useState(false); const filters = Object.fromEntries(searchParams.entries()); const handleClickField = (field: string, value: string) => { const params = new URLSearchParams(searchParams.toString()); params.set(field, value); router.push(`?${params.toString()}`); router.refresh(); }; const handleStatusChange = (id: number, newStatus: string) => { setRows( rows.map((row) => (row.id === id ? { ...row, status: newStatus } : row)), ); }; const [rows, setRows] = useState(filteredTransactions); const getColumnsWithDropdown = (columns: GridColDef[]) => { return columns.map((col) => { if (col.field === "actions") { return { ...col, renderCell: (params: GridRenderCellParams) => { const row = filteredTransactions.find((r) => r.id === params.id); const options = row?.options; if (!options) return params.value; return ( ); }, }; } return col; }); }; return ( console.log(`setSearchQuery(${e.target.value})`)} sx={{ width: 300 }} /> { if (params.field !== "actions") { handleClickField(params.field, params.value as string); } }} /> {/* Export Dialog */} setOpen(false)}> Export Transactions setOnlyCurrentTable(e.target.checked)} /> } label="Only export the results in the current table" sx={{ mt: 2 }} /> ); }; export default TransactionsTable;