UNPKG

@scrolia/react

Version:

A headless scrollbar component

66 lines (62 loc) 1.98 kB
"use client"; import { ScrollCoreContext } from "../../contexts/scrollcore.mjs"; import * as React from "react"; import { jsx } from "react/jsx-runtime"; /** Provider component. */ const Provider = (options) => { const contentRef = React.useRef(null); const [hvTrackX, setHvTrackX] = React.useState(false); const [hvThumbX, setHvThumbX] = React.useState(false); const [hvTrackY, setHvTrackY] = React.useState(false); const [hvThumbY, setHvThumbY] = React.useState(false); const totalX = React.useRef(0); const totalY = React.useRef(0); const viewX = React.useRef(0); const viewY = React.useRef(0); const viewOffsetX = React.useRef(0); const viewOffsetY = React.useRef(0); const [scrollbarLengthX, setScrollbarLengthX] = React.useState(0); const [scrollbarLengthY, setScrollbarLengthY] = React.useState(0); const [scrollbarOffsetX, setScrollbarOffsetX] = React.useState(0); const [scrollbarOffsetY, setScrollbarOffsetY] = React.useState(0); return /* @__PURE__ */ jsx(ScrollCoreContext, { value: { options: { ...options, disabled: options.disabled ?? false, page: options.page ?? false, plugins: options.plugins ?? [] }, contentRef, x: { hvTrack: hvTrackX, setHvTrack: setHvTrackX, hvThumb: hvThumbX, setHvThumb: setHvThumbX, total: totalX, view: viewX, viewOffset: viewOffsetX, scrollbarLength: scrollbarLengthX, setScrollbarLength: setScrollbarLengthX, scrollbarOffset: scrollbarOffsetX, setScrollbarOffset: setScrollbarOffsetX }, y: { hvTrack: hvTrackY, setHvTrack: setHvTrackY, hvThumb: hvThumbY, setHvThumb: setHvThumbY, total: totalY, view: viewY, viewOffset: viewOffsetY, scrollbarLength: scrollbarLengthY, setScrollbarLength: setScrollbarLengthY, scrollbarOffset: scrollbarOffsetY, setScrollbarOffset: setScrollbarOffsetY } }, children: options.children }); }; export { Provider }; //# sourceMappingURL=index.mjs.map