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