react-hook-inview
Version:
React Hook for detecting when an element is in the viewport
41 lines (40 loc) • 1.18 kB
TypeScript
/// <reference types="react" />
interface State {
inView: boolean;
entry: IntersectionObserverEntry | null;
observer: IntersectionObserver | null;
}
export interface Options extends IntersectionObserverInit {
unobserveOnEnter?: boolean;
/**
* @deprecated Use setRef callback.
*/
target?: React.RefObject<Element | null>;
/**
* @deprecated Use hook `useInViewEffect` to access observer callback.
*/
onEnter?: (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;
/**
* @deprecated Use hook `useInViewEffect` to access observer callback.
*/
onLeave?: (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;
/**
* Default `inView` state
*/
defaultInView?: boolean;
}
interface UseInView {
(options?: Options, externalState?: React.ComponentState[]): [
(node: Element | null) => void,
State["inView"],
State["entry"],
State["observer"]
];
}
/**
* useInView
* @param options IntersectionObserverInit
* @param externalState React.ComponentState[]
*/
declare const useInView: UseInView;
export default useInView;