@scrolia/react-native
Version:
A headless scrollbar component
46 lines (43 loc) • 1.39 kB
JavaScript
"use client";
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.js');
let react = require("react");
react = require_runtime.__toESM(react);
const useScrollCoreStates = () => {
const contentType = react.useRef("scrollview");
const contentRef = react.useRef(null);
const [hvTrack, setHvTrack] = react.useState(false);
const [hvThumb, setHvThumb] = react.useState(false);
const total = react.useRef(0);
const view = react.useRef(0);
const viewOffset = react.useRef(0);
const [scrollbarLength, setScrollbarLength] = react.useState(0);
const [scrollbarOffset, setScrollbarOffset] = react.useState(0);
return {
contentType,
contentRef,
hvTrack,
setHvTrack,
hvThumb,
setHvThumb,
total,
view,
viewOffset,
scrollbarLength,
setScrollbarLength,
scrollbarOffset,
setScrollbarOffset
};
};
/** `ScrollCore` context. */
const ScrollCoreContext = react.createContext(null);
/** Hook for using the `ScrollCore` context. */
const useScrollCore = () => {
const core = react.useContext(ScrollCoreContext);
if (core === null) throw new Error("useScrollCore must be used within a provider");
return core;
};
exports.ScrollCoreContext = ScrollCoreContext;
exports.useScrollCore = useScrollCore;
exports.useScrollCoreStates = useScrollCoreStates;
//# sourceMappingURL=scrollcore.js.map