add selection row

This commit is contained in:
AmirHossein Mahmoodi
2025-03-05 11:20:48 +03:30
parent 9abfd54b50
commit d9aeb38ddc

View File

@@ -1,17 +1,18 @@
import DataTable_Paper from "./table/Paper";
import { useMaterialReactTable } from "material-react-table";
import { FA_DATATABLE_LOCALIZATION } from "./localization/fa/datatable";
import { flattenArrayOfObjects } from "@/core/utils/flattenArrayOfObjects";
import useDataTable from "@/lib/hooks/useDataTable";
import { useCallback, useMemo, useState } from "react";
import useRequest from "@/lib/hooks/useRequest";
import useSWR from "swr";
import { flattenObjectOfObjects } from "@/core/utils/flattenObjectOfObjects";
import DataTableFilterDataStructure from "@/core/utils/DataTableFilterDataStructure";
import { flattenArrayOfObjects } from "@/core/utils/flattenArrayOfObjects";
import { flattenObjectOfObjects } from "@/core/utils/flattenObjectOfObjects";
import isArrayEmpty from "@/core/utils/isArrayEmpty";
import useDataTable from "@/lib/hooks/useDataTable";
import useRequest from "@/lib/hooks/useRequest";
import { useMaterialReactTable } from "material-react-table";
import { useCallback, useEffect, useState } from "react";
import useSWR from "swr";
import { FA_DATATABLE_LOCALIZATION } from "./localization/fa/datatable";
import DataTable_Paper from "./table/Paper";
const DataTable_Main = (props) => {
const request = useRequest();
const [rowSelection, setRowSelection] = useState({});
const { filterData, sortData, setSortData, hideData } = useDataTable();
const {
need_filter,
@@ -73,10 +74,21 @@ const DataTable_Main = (props) => {
keepPreviousData: true,
});
useEffect(() => {
setRowSelection({})
}, [isValidating])
const table = useMaterialReactTable({
localization: FA_DATATABLE_LOCALIZATION,
columns,
data: data ?? [],
muiTableBodyRowProps: ({ row }) => ({
onClick: () =>
setRowSelection((prev) => ({
[row.id]: true,
})),
selected: rowSelection[row.id],
}),
initialState: {
density: "compact",
columnVisibility: flattenHideData,
@@ -88,6 +100,7 @@ const DataTable_Main = (props) => {
columnVisibility: flattenHideData,
sorting: sortData,
pagination,
rowSelection,
},
muiTableHeadProps: {
sx: {