Add initial data fetch function to grid

This commit is contained in:
jeffvli 2023-07-20 00:39:06 -07:00
parent 287f1dc0e1
commit 1cb0a1d72a

View file

@ -26,6 +26,7 @@ interface VirtualGridProps
cardRows: CardRow<any>[]; cardRows: CardRow<any>[];
display?: ListDisplayType; display?: ListDisplayType;
fetchFn: (options: { columnCount: number; skip: number; take: number }) => Promise<any>; fetchFn: (options: { columnCount: number; skip: number; take: number }) => Promise<any>;
fetchInitialData?: () => any;
handleFavorite?: (options: { handleFavorite?: (options: {
id: string[]; id: string[];
isFavorite: boolean; isFavorite: boolean;
@ -56,6 +57,7 @@ export const VirtualInfiniteGrid = forwardRef(
handlePlayQueueAdd, handlePlayQueueAdd,
minimumBatchSize, minimumBatchSize,
fetchFn, fetchFn,
fetchInitialData,
loading, loading,
initialScrollOffset, initialScrollOffset,
handleFavorite, handleFavorite,
@ -67,7 +69,7 @@ export const VirtualInfiniteGrid = forwardRef(
const listRef = useRef<any>(null); const listRef = useRef<any>(null);
const loader = useRef<InfiniteLoader>(null); const loader = useRef<InfiniteLoader>(null);
const [itemData, setItemData] = useState<any[]>([]); const [itemData, setItemData] = useState<any[]>(fetchInitialData?.() || []);
const { itemHeight, rowCount, columnCount } = useMemo(() => { const { itemHeight, rowCount, columnCount } = useMemo(() => {
const itemsPerRow = itemSize; const itemsPerRow = itemSize;