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} {tableHeadRow.map((heading, index) => ( ))} {data?.map((item, index) => ( item.id && isDraggable ? ( {(provided, snapshot) => ( {tableHeadRow.map((heading, i) => ( ))} )} ) : ( {tableHeadRow.map((heading, i) => ( ))} ) ))} {provided.placeholder}
{heading}
{item[heading]}
{item[heading]}
)}
)}
); }; export default DataTable;