import React, { useContext, useState } from "react";
import {
Table,
TableContainer,
Tbody,
Td,
Th,
Thead,
Tr,
Skeleton,
TableCaption,
Box,
} from "@chakra-ui/react";
import { DragDropContext, Droppable, Draggable } from "react-beautiful-dnd";
import EmptySearchList from "../EmptySearchList";
import { useNavigate } from "react-router-dom";
import GlobalStateContext from "../../Contexts/GlobalStateContext";
const DataTable = ({
data,
setData,
isLoading,
tableHeadRow,
tableHeadRowTwo,
emptyMessage,
centered,
setMouseEntered,
setMouseEnteredId,
caption,
isDraggable
}) => {
const navigate = useNavigate();
const { slideFromRight } = useContext(GlobalStateContext);
if (isLoading) {
return (
{Array.from({ length: 10 }).map((_, index) => (
))}
);
}
const handleDragEnd = (result) => {
if (!result.destination) return;
const reorderedItems = Array.from(data);
const [removed] = reorderedItems.splice(result.source.index, 1);
reorderedItems.splice(result.destination.index, 0, removed);
setData(reorderedItems)
console.log("New Order:", reorderedItems.map((item, index) => ({ index, item })));
};
return (
{data?.length === 0 ? (
) : (
{(provided) => (
<>
{/* {caption} */}
{caption}
{tableHeadRow.map((heading, index) => (
|
{heading}
|
))}
{data?.map((item, index) => (
item.id && isDraggable ? (
{(provided, snapshot) => (
{tableHeadRow.map((heading, i) => (
|
{item[heading]}
|
))}
)}
) : (
{tableHeadRow.map((heading, i) => (
|
{item[heading]}
|
))}
)
))}
{provided.placeholder}
>
)}
)}
);
};
export default DataTable;