to use react-data-grid
in your app, you need to import DraggableHeaderRenderer
. I'll provide you a step-by-step.
Install the react-data-grid package: npm install react-data-grid
Import everything you need:
import React from 'react';
import ReactDataGrid from 'react-data-grid';
import { DraggableHeader } from 'react-data-grid-addons';
Define the data and columns for the grid.
Create the main component that renders the data grid.
Here is full code:
import React from 'react';
import ReactDataGrid from 'react-data-grid';
import { DraggableHeader } from 'react-data-grid-addons';
const { DraggableContainer, DraggableHeaderCell } = DraggableHeader;
const columns = [
{ key: 'id', name: 'ID' },
{ key: 'name', name: 'Name' },
{ key: 'age', name: 'Age' },
];
const rows = [
{ id: 1, name: 'John', age: 30 },
{ id: 2, name: 'Jane', age: 25 },
// Add more rows here
];
const MyDataGrid = () => {
const [gridColumns, setGridColumns] = React.useState(columns);
const [gridRows, setGridRows] = React.useState(rows);
const handleColumnReorder = (sourceIdx, targetIdx) => {
const updatedColumns = [...gridColumns];
const [columnToReorder] = updatedColumns.splice(sourceIdx, 1);
updatedColumns.splice(targetIdx, 0, columnToReorder);
setGridColumns(updatedColumns);
};
return (
<ReactDataGrid
columns={gridColumns}
rows={gridRows}
rowKey="id"
headerRowHeight={50}
headerCellRenderer={DraggableHeaderCell}
draggableHeaderCell={DraggableContainer}
onHeaderDrop={handleColumnReorder}
/>
);
};
export default MyDataGrid;
Hope this helps.