es-grid-template
Version:
es-grid-template
52 lines (51 loc) • 1.57 kB
JavaScript
import { horizontalListSortingStrategy, SortableContext } from '@dnd-kit/sortable';
import React from 'react';
import { TableContext } from "../useContext";
import TableHeadCell from "./TableHeadCell";
const TableHeadRow = ({
table,
headerGroup,
columnVirtualizer
}) => {
const {
prefix,
onRowHeaderStyles
} = React.useContext(TableContext);
const columnOrder = table.getState().columnOrder;
const rowStyles = typeof onRowHeaderStyles === 'function' ? onRowHeaderStyles() : onRowHeaderStyles;
return /*#__PURE__*/React.createElement("div", {
key: headerGroup.id
// ref={el => {
// if (el) rowHeaderVirtualizer.measureElement(el)
// }}
,
"data-index": headerGroup.id,
className: `${prefix}-grid-row ${prefix}-grid-header`,
style: {
...rowStyles,
width: '100%'
}
}, /*#__PURE__*/React.createElement(SortableContext, {
items: columnOrder,
strategy: horizontalListSortingStrategy
}, headerGroup.headers.map(header => {
const columnRelativeDepth = header.depth - header.column.depth;
if (columnRelativeDepth > 1) {
return null;
}
let rowSpan = 1;
if (header.isPlaceholder) {
const leafs = header.getLeafHeaders();
rowSpan = leafs[leafs.length - 1].depth - header.depth;
}
return /*#__PURE__*/React.createElement(TableHeadCell, {
key: header.id,
header: header,
table: table,
columnVirtualizer: columnVirtualizer,
colSpan: header.colSpan,
rowSpan: rowSpan
});
})));
};
export default TableHeadRow;