Buckets:
| import * as React from "react"; | |
| import { flushSync } from "react-dom"; | |
| import { observeElementRect, observeElementOffset, elementScroll, observeWindowRect, observeWindowOffset, windowScroll, Virtualizer } from "@tanstack/virtual-core"; | |
| export * from "@tanstack/virtual-core"; | |
| const useIsomorphicLayoutEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect; | |
| function useVirtualizerBase(options) { | |
| const rerender = React.useReducer(() => ({}), {})[1]; | |
| const resolvedOptions = { | |
| ...options, | |
| onChange: (instance2, sync) => { | |
| var _a; | |
| if (sync) { | |
| flushSync(rerender); | |
| } else { | |
| rerender(); | |
| } | |
| (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync); | |
| } | |
| }; | |
| const [instance] = React.useState( | |
| () => new Virtualizer(resolvedOptions) | |
| ); | |
| instance.setOptions(resolvedOptions); | |
| useIsomorphicLayoutEffect(() => { | |
| return instance._didMount(); | |
| }, []); | |
| useIsomorphicLayoutEffect(() => { | |
| return instance._willUpdate(); | |
| }); | |
| return instance; | |
| } | |
| function useVirtualizer(options) { | |
| return useVirtualizerBase({ | |
| observeElementRect, | |
| observeElementOffset, | |
| scrollToFn: elementScroll, | |
| ...options | |
| }); | |
| } | |
| function useWindowVirtualizer(options) { | |
| return useVirtualizerBase({ | |
| getScrollElement: () => typeof document !== "undefined" ? window : null, | |
| observeElementRect: observeWindowRect, | |
| observeElementOffset: observeWindowOffset, | |
| scrollToFn: windowScroll, | |
| initialOffset: () => typeof document !== "undefined" ? window.scrollY : 0, | |
| ...options | |
| }); | |
| } | |
| export { | |
| useVirtualizer, | |
| useWindowVirtualizer | |
| }; | |
| //# sourceMappingURL=index.js.map | |
Xet Storage Details
- Size:
- 1.69 kB
- Xet hash:
- dc1442a9cd3f69d80cf6efe081f51ee82444f74861db30905443b3158a0112ef
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.