fix output
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
import { elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect, Virtualizer } from "@tanstack/virtual-core";
|
||||
export * from "@tanstack/virtual-core";
|
||||
import { computed, unref, shallowRef, watch, triggerRef, onScopeDispose } from "vue";
|
||||
function useVirtualizerBase(options) {
|
||||
const virtualizer = new Virtualizer(unref(options));
|
||||
const state = shallowRef(virtualizer);
|
||||
const cleanup = virtualizer._didMount();
|
||||
watch(
|
||||
() => unref(options).getScrollElement(),
|
||||
(el) => {
|
||||
if (el) {
|
||||
virtualizer._willUpdate();
|
||||
}
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
watch(
|
||||
() => unref(options),
|
||||
(options2) => {
|
||||
virtualizer.setOptions({
|
||||
...options2,
|
||||
onChange: (instance, sync) => {
|
||||
var _a;
|
||||
triggerRef(state);
|
||||
(_a = options2.onChange) == null ? void 0 : _a.call(options2, instance, sync);
|
||||
}
|
||||
});
|
||||
virtualizer._willUpdate();
|
||||
triggerRef(state);
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
onScopeDispose(cleanup);
|
||||
return state;
|
||||
}
|
||||
function useVirtualizer(options) {
|
||||
return useVirtualizerBase(
|
||||
computed(() => ({
|
||||
observeElementRect,
|
||||
observeElementOffset,
|
||||
scrollToFn: elementScroll,
|
||||
...unref(options)
|
||||
}))
|
||||
);
|
||||
}
|
||||
function useWindowVirtualizer(options) {
|
||||
return useVirtualizerBase(
|
||||
computed(() => ({
|
||||
getScrollElement: () => typeof document !== "undefined" ? window : null,
|
||||
observeElementRect: observeWindowRect,
|
||||
observeElementOffset: observeWindowOffset,
|
||||
scrollToFn: windowScroll,
|
||||
initialOffset: () => typeof document !== "undefined" ? window.scrollY : 0,
|
||||
...unref(options)
|
||||
}))
|
||||
);
|
||||
}
|
||||
export {
|
||||
useVirtualizer,
|
||||
useWindowVirtualizer
|
||||
};
|
||||
//# sourceMappingURL=index.js.map
|
||||
Reference in New Issue
Block a user