UNPKG

@scrolia/react

Version:

A headless scrollbar component

40 lines (36 loc) 1.07 kB
"use client"; import { useScrollCore } from "../../contexts/scrollcore.mjs"; import { getComponentProps } from "../../functions/props.mjs"; import { useThumbXHandler } from "../../hooks/thumb.mjs"; import * as React from "react"; import { jsx } from "react/jsx-runtime"; /** Horizontal thumb component. */ const ThumbX = (props) => { const { options: { plugins }, x: { setHvThumb, scrollbarLength, scrollbarOffset } } = useScrollCore(); const p = getComponentProps({ name: "thumbX", props, plugins }); React.useEffect(() => { setHvThumb(true); }, [setHvThumb]); const { onPointerDown } = useThumbXHandler(); const handlePointerDown = (event) => { onPointerDown(event); p.onPointerDown?.(event); }; const thumbStyle = { ...p.style, width: Number.isNaN(scrollbarLength) ? 0 : scrollbarLength, left: Number.isNaN(scrollbarOffset) ? 0 : scrollbarOffset }; return /* @__PURE__ */ jsx("div", { ...p, style: thumbStyle, onPointerDown: handlePointerDown, children: p.children }); }; export { ThumbX }; //# sourceMappingURL=x.mjs.map