UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 1.76 kB
{"version":3,"file":"useVirtualRows.cjs","sources":["../../../../../src/lib/DataTable/tableFeatures/useVirtualRows.ts"],"sourcesContent":["import {notUndefined, useVirtualizer} from '@tanstack/react-virtual';\nimport type {MutableRefObject} from 'react';\n\nexport type Props = {\n rowsCount: number;\n scrollRef: MutableRefObject<HTMLElement | null>;\n cellHeight: number;\n overscan: number;\n};\n\nexport const useVirtualRows = ({rowsCount, scrollRef, cellHeight, overscan}: Props) => {\n const virtualizer = useVirtualizer({\n count: rowsCount,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => cellHeight,\n overscan: overscan,\n });\n\n const virtualRows = virtualizer.getVirtualItems();\n\n const [before, after] =\n virtualRows.length > 0\n ? [\n notUndefined(virtualRows[0]).start - virtualizer.options.scrollMargin,\n virtualizer.getTotalSize() -\n notUndefined(virtualRows[virtualRows.length - 1]).end,\n ]\n : [0, 0];\n\n return {virtualizer, virtualRows, before, after};\n};\n"],"names":["useVirtualRows","rowsCount","scrollRef","cellHeight","overscan","virtualizer","useVirtualizer","virtualRows","before","after","notUndefined"],"mappings":"wIAUaA,EAAiB,CAAC,CAAC,UAAAC,EAAW,UAAAC,EAAW,WAAAC,EAAY,SAAAC,KAAqB,CACnF,MAAMC,EAAcC,EAAAA,eAAe,CAC/B,MAAOL,EACP,iBAAkB,IAAMC,EAAU,QAClC,aAAc,IAAMC,EACpB,SAAAC,CAAA,CACH,EAEKG,EAAcF,EAAY,gBAAgB,EAE1C,CAACG,EAAQC,CAAK,EAChBF,EAAY,OAAS,EACf,CACIG,eAAaH,EAAY,CAAC,CAAC,EAAE,MAAQF,EAAY,QAAQ,aACzDA,EAAY,aACR,EAAAK,eAAaH,EAAYA,EAAY,OAAS,CAAC,CAAC,EAAE,GAAA,EAE1D,CAAC,EAAG,CAAC,EAEf,MAAO,CAAC,YAAAF,EAAa,YAAAE,EAAa,OAAAC,EAAQ,MAAAC,CAAK,CACnD"}