import { useCallback, type ReactNode } from "react"; import { VirtualList } from "../virtual/VirtualListEngine"; import styles from "./VirtualPage.module.scss"; export type VirtualPageSection = { key: string; estimatedHeight: number; content: ReactNode; }; export function VirtualPage({ title, sections, className, contentClassName }: { title?: ReactNode; sections: VirtualPageSection[]; className?: string; contentClassName?: string }) { const getKey = useCallback((section: VirtualPageSection) => section.key, []); const estimateSize = useCallback((section: VirtualPageSection) => section.estimatedHeight, []); const renderItem = useCallback((section: VirtualPageSection, { index }: { index: number }) =>
{index === 0 && title != null &&
{title}
} {section.content}
, [title]); return ; }