|
@@ -1,4 +1,4 @@
|
|
|
-import {DependencyList, RefObject, useEffect, useMemo} from 'react';
|
|
|
+import {DependencyList, RefObject, useCallback, useEffect, useMemo} from 'react';
|
|
|
import {CellMeasurerCache, CellMeasurerCacheParams, List} from 'react-virtualized';
|
|
|
|
|
|
type Opts = {
|
|
@@ -9,14 +9,19 @@ type Opts = {
|
|
|
function useVirtualizedList({cellMeasurer, deps, ref}: Opts) {
|
|
|
const cache = useMemo(() => new CellMeasurerCache(cellMeasurer), [cellMeasurer]);
|
|
|
|
|
|
- // Restart cache when items changes
|
|
|
- useEffect(() => {
|
|
|
+ const updateList = useCallback(() => {
|
|
|
cache.clearAll();
|
|
|
ref.current?.forceUpdateGrid();
|
|
|
- }, [cache, ref, deps]);
|
|
|
+ }, [cache, ref]);
|
|
|
+
|
|
|
+ // Restart cache when items changes
|
|
|
+ useEffect(() => {
|
|
|
+ updateList();
|
|
|
+ }, [updateList, deps]);
|
|
|
|
|
|
return {
|
|
|
cache,
|
|
|
+ updateList,
|
|
|
};
|
|
|
}
|
|
|
|