({ columns }: { columns: Array<number> })
| 93 | } |
| 94 | |
| 95 | function ColumnVirtualizerDynamic({ columns }: { columns: Array<number> }) { |
| 96 | const parentRef = React.useRef<HTMLDivElement>(null) |
| 97 | |
| 98 | const columnVirtualizer = useVirtualizer({ |
| 99 | horizontal: true, |
| 100 | count: columns.length, |
| 101 | getScrollElement: () => parentRef.current, |
| 102 | estimateSize: () => 50, |
| 103 | paddingStart: 100, |
| 104 | paddingEnd: 100, |
| 105 | }) |
| 106 | |
| 107 | return ( |
| 108 | <> |
| 109 | <div |
| 110 | ref={parentRef} |
| 111 | className="List" |
| 112 | style={{ |
| 113 | width: `400px`, |
| 114 | height: `100px`, |
| 115 | overflow: 'auto', |
| 116 | }} |
| 117 | > |
| 118 | <div |
| 119 | style={{ |
| 120 | width: `${columnVirtualizer.getTotalSize()}px`, |
| 121 | height: '100%', |
| 122 | position: 'relative', |
| 123 | }} |
| 124 | > |
| 125 | {columnVirtualizer.getVirtualItems().map((virtualColumn) => ( |
| 126 | <div |
| 127 | key={virtualColumn.key} |
| 128 | data-index={virtualColumn.index} |
| 129 | ref={columnVirtualizer.measureElement} |
| 130 | className={ |
| 131 | virtualColumn.index % 2 ? 'ListItemOdd' : 'ListItemEven' |
| 132 | } |
| 133 | style={{ |
| 134 | position: 'absolute', |
| 135 | top: 0, |
| 136 | left: 0, |
| 137 | height: '100%', |
| 138 | width: `${columns[virtualColumn.index]}px`, |
| 139 | transform: `translateX(${virtualColumn.start}px)`, |
| 140 | }} |
| 141 | > |
| 142 | Column {virtualColumn.index} |
| 143 | </div> |
| 144 | ))} |
| 145 | </div> |
| 146 | </div> |
| 147 | </> |
| 148 | ) |
| 149 | } |
| 150 | |
| 151 | function GridVirtualizerDynamic({ |
| 152 | rows, |
nothing calls this directly
no test coverage detected