@ducor/hooks
Version:
A collection of useful React hooks for building modern web applications. Includes hooks for clipboard operations, window events, intervals, timeouts, and more.
41 lines (40 loc) • 1.13 kB
TypeScript
import { CSSProperties, RefObject } from 'react';
import { ObserverRect } from '@ducor/types';
interface ScrollOffset {
x: number;
y: number;
}
interface ScrollPositionReturn {
scrollOffset: ScrollOffset;
setScrollOffset: (scrollPosition: ScrollOffset) => void;
scrollPercent: {
x: number;
y: number;
};
setScrollPercent: (scrollPosition: ScrollOffset) => void;
containerRef: RefObject<HTMLElement>;
containerRect: ObserverRect;
contentRef: RefObject<HTMLElement>;
contentRect: ObserverRect;
contentSize: {
height: number;
width: number;
};
getStyles: () => CSSProperties;
scrollTo: (attr: ScrollTo) => void;
}
interface ScrollToPlacement {
position: "top" | 'right' | 'bottom' | 'left';
incrementValue?: number;
}
interface ScrollToAxis {
x?: number;
y?: number;
}
export type ScrollTo = ScrollToPlacement | ScrollToAxis;
interface UseScrollProps {
scrollHideDelay?: number;
smoothScroll?: boolean;
}
export declare const useScroll: (props?: UseScrollProps) => ScrollPositionReturn;
export default useScroll;