UNPKG

@scrolia/react

Version:

A headless scrollbar component

67 lines (63 loc) 2.21 kB
"use client"; const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.js'); const require_contexts_scrollcore = require('../../contexts/scrollcore.js'); const react = require_rolldown_runtime.__toESM(require("react")); const react_jsx_runtime = require_rolldown_runtime.__toESM(require("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__ */ (0, react_jsx_runtime.jsx)(require_contexts_scrollcore.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 }); }; exports.Provider = Provider; //# sourceMappingURL=index.js.map