add selection row
This commit is contained in:
@@ -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 DataTableFilterDataStructure from "@/core/utils/DataTableFilterDataStructure";
|
||||||
|
import { flattenArrayOfObjects } from "@/core/utils/flattenArrayOfObjects";
|
||||||
|
import { flattenObjectOfObjects } from "@/core/utils/flattenObjectOfObjects";
|
||||||
import isArrayEmpty from "@/core/utils/isArrayEmpty";
|
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 DataTable_Main = (props) => {
|
||||||
const request = useRequest();
|
const request = useRequest();
|
||||||
|
const [rowSelection, setRowSelection] = useState({});
|
||||||
const { filterData, sortData, setSortData, hideData } = useDataTable();
|
const { filterData, sortData, setSortData, hideData } = useDataTable();
|
||||||
const {
|
const {
|
||||||
need_filter,
|
need_filter,
|
||||||
@@ -73,10 +74,21 @@ const DataTable_Main = (props) => {
|
|||||||
keepPreviousData: true,
|
keepPreviousData: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setRowSelection({})
|
||||||
|
}, [isValidating])
|
||||||
|
|
||||||
const table = useMaterialReactTable({
|
const table = useMaterialReactTable({
|
||||||
localization: FA_DATATABLE_LOCALIZATION,
|
localization: FA_DATATABLE_LOCALIZATION,
|
||||||
columns,
|
columns,
|
||||||
data: data ?? [],
|
data: data ?? [],
|
||||||
|
muiTableBodyRowProps: ({ row }) => ({
|
||||||
|
onClick: () =>
|
||||||
|
setRowSelection((prev) => ({
|
||||||
|
[row.id]: true,
|
||||||
|
})),
|
||||||
|
selected: rowSelection[row.id],
|
||||||
|
}),
|
||||||
initialState: {
|
initialState: {
|
||||||
density: "compact",
|
density: "compact",
|
||||||
columnVisibility: flattenHideData,
|
columnVisibility: flattenHideData,
|
||||||
@@ -88,6 +100,7 @@ const DataTable_Main = (props) => {
|
|||||||
columnVisibility: flattenHideData,
|
columnVisibility: flattenHideData,
|
||||||
sorting: sortData,
|
sorting: sortData,
|
||||||
pagination,
|
pagination,
|
||||||
|
rowSelection,
|
||||||
},
|
},
|
||||||
muiTableHeadProps: {
|
muiTableHeadProps: {
|
||||||
sx: {
|
sx: {
|
||||||
|
|||||||
Reference in New Issue
Block a user