import type { ReactNode, CSSProperties } from 'react'; import { useContext, forwardRef } from 'react'; import HeaderCells from './HeaderCells'; import styles from './MatrixVis.module.css'; import { SettingsContext, RenderedItemsContext } from './context'; interface Props { children: ReactNode; style: CSSProperties; } const StickyGrid = forwardRef((props, ref) => { const { children, style } = props; const { rowCount, columnCount, cellSize, sticky, rowHeaderCellsWidth, columnHeaders, } = useContext(SettingsContext); const renderedItems = useContext(RenderedItemsContext); const { overscanColumnStartIndex: colStart = 0, overscanColumnStopIndex: colStop = 0, overscanRowStartIndex: rowStart = 0, overscanRowStopIndex: rowStop = 0, } = renderedItems || {}; return (
{children}
); }); export default StickyGrid;