@scrolia/react
Version:
A headless scrollbar component
41 lines (37 loc) • 1.35 kB
JavaScript
"use client";
const require_rolldown_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 = require('../../hooks/thumb.js');
const react = require_rolldown_runtime.__toESM(require("react"));
const react_jsx_runtime = require_rolldown_runtime.__toESM(require("react/jsx-runtime"));
/** Vertical thumb component. */
const ThumbY = (props) => {
const { options: { 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 { onPointerDown } = require_hooks_thumb.useThumbYHandler();
const handlePointerDown = (event) => {
onPointerDown(event);
p.onPointerDown?.(event);
};
const thumbStyle = {
...p.style,
height: Number.isNaN(scrollbarLength) ? 0 : scrollbarLength,
top: Number.isNaN(scrollbarOffset) ? 0 : scrollbarOffset
};
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
...p,
style: thumbStyle,
onPointerDown: handlePointerDown,
children: p.children
});
};
exports.ThumbY = ThumbY;
//# sourceMappingURL=y.js.map