@scrolia/react-native
Version:
A headless scrollbar component
47 lines (44 loc) • 1.6 kB
JavaScript
"use client";
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
const require_contexts_scrollcore = require('../../contexts/scrollcore.js');
const require_functions_props = require('../../functions/props.js');
const require_hooks_thumb_index = require('../../hooks/thumb/index.js');
let react_native = require("react-native");
let react = require("react");
react = require_runtime.__toESM(react);
let react_jsx_runtime = require("react/jsx-runtime");
/** Vertical thumb component. */
const ThumbY = (props) => {
const { options: { animated, plugins }, y: { setHvThumb, scrollbarLength, scrollbarOffset } } = require_contexts_scrollcore.useScrollCore();
const p = require_functions_props.getComponentProps({
name: "thumbY",
props,
plugins
});
react.useEffect(() => {
setHvThumb(true);
}, [setHvThumb]);
const { panResponder } = require_hooks_thumb_index.useThumbYHandler();
if (animated) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.Animated.View, {
...p,
...panResponder.panHandlers,
ref: p.ref,
style: [p.style, {
height: Number.isNaN(scrollbarLength) ? 0 : scrollbarLength,
top: Number.isNaN(scrollbarOffset) ? 0 : scrollbarOffset
}],
children: p.children
});
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_native.View, {
...p,
...panResponder.panHandlers,
ref: p.ref,
style: [p.style, {
height: Number.isNaN(scrollbarLength) ? 0 : scrollbarLength,
top: Number.isNaN(scrollbarOffset) ? 0 : scrollbarOffset
}],
children: p.children
});
};
exports.ThumbY = ThumbY;
//# sourceMappingURL=y.js.map