@speaker-ender/react-scrollr
Version:
React tools for scroll animations
27 lines • 1.21 kB
TypeScript
import React, { MutableRefObject, ReactNode } from "react";
export declare type IObserverOptions = {
rootMargin?: string;
root?: MutableRefObject<HTMLElement | null> | null;
threshold?: number[];
};
export declare type IObserverState = Partial<ReturnType<typeof useObserverState>>;
declare type IObserverContext = IObserverState & IObserverOptions;
export declare const ObserverContext: React.Context<IObserverContext | null>;
export declare type InViewCallback = (isIntersecting: boolean, threshold: number) => void;
export declare type IInViewElement = {
callback: InViewCallback;
untrackOnCallback?: boolean;
element: Element;
};
export interface IObserverContextProvider extends IObserverOptions {
children?: ReactNode;
}
export declare const useObserverState: (props: IObserverOptions) => {
inViewObserver: IntersectionObserver;
registerInViewElement: (inViewElement: IInViewElement) => void;
unregisterInViewElement: (inViewElement: IInViewElement) => void;
};
export declare const useObserverContext: () => IObserverContext;
export declare const ObserverContextProvider: React.FC<IObserverContextProvider>;
export {};
//# sourceMappingURL=observer.context.d.ts.map