@scrolia/react
Version:
A headless scrollbar component
31 lines • 1.23 kB
TypeScript
import { CompleteOptions } from "../@types/options.js";
import * as React from "react";
/** Options for the `ScrollCore` context. */
type ScrollCoreOptions = CompleteOptions;
/** States for the `ScrollCore` context. */
type ScrollCoreStates = {
hvTrack: boolean;
setHvTrack: React.Dispatch<React.SetStateAction<boolean>>;
hvThumb: boolean;
setHvThumb: React.Dispatch<React.SetStateAction<boolean>>;
total: React.RefObject<number>;
view: React.RefObject<number>;
viewOffset: React.RefObject<number>;
scrollbarLength: number;
setScrollbarLength: React.Dispatch<React.SetStateAction<number>>;
scrollbarOffset: number;
setScrollbarOffset: React.Dispatch<React.SetStateAction<number>>;
};
/** Core for internal logic. */
type ScrollCore = {
options: ScrollCoreOptions;
contentRef: React.RefObject<HTMLDivElement | null>;
x: ScrollCoreStates;
y: ScrollCoreStates;
};
/** `ScrollCore` context. */
declare const ScrollCoreContext: React.Context<ScrollCore | null>;
/** Hook for using the `ScrollCore` context. */
declare const useScrollCore: () => ScrollCore;
export { type ScrollCore, ScrollCoreContext, type ScrollCoreOptions, type ScrollCoreStates, useScrollCore };
//# sourceMappingURL=scrollcore.d.ts.map