react-resize-reporter
Version:
Lightweight React Component that reports width and height changes when its parent resizes.
31 lines (30 loc) • 1.24 kB
TypeScript
import React, { ComponentProps, PureComponent } from 'react';
export interface ResizeReporterProps extends ComponentProps<'div'> {
/** Report the init rendered size. Default false. */
reportInit?: boolean;
/** Debounce time in millisecond. Default no debounce. */
debounce?: number;
/** Fires when width or height changes. */
onSizeChanged?: (width: number, height: number, rect: DOMRect) => void;
/** Fires only when width changes. */
onWidthChanged?: (width: number, rect: DOMRect) => void;
/** Fires only when height changes. */
onHeightChanged?: (height: number, rect: DOMRect) => void;
}
/**
* Scroll event based resize detector
*/
export declare class ResizeReporter extends PureComponent<ResizeReporterProps> {
containerRef: React.RefObject<HTMLDivElement>;
lastWidth: number;
lastHeight: number;
_debounceTicket: number | null | undefined;
_setScrollPositionTicket: number | null | undefined;
resetPosition: (container: HTMLDivElement, newWidth: number, newHeight: number) => void;
checkSize: () => void;
onScroll: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default ResizeReporter;