react-resize-reporter
Version:
Lightweight React Component that reports width and height changes when its parent resizes.
30 lines (29 loc) • 1.17 kB
TypeScript
import React, { ComponentProps, PureComponent } from 'react';
export interface ResizeReporterProps extends ComponentProps<'object'> {
/** 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;
}
/**
* HTML <object> version of the resize reporter
*/
export declare class ResizeReporter extends PureComponent<ResizeReporterProps> {
$container: HTMLObjectElement | null | undefined;
lastWidth: number;
lastHeight: number;
_debounceTicket: number | null | undefined;
onLoad: (e: React.SyntheticEvent<HTMLObjectElement, Event>) => void;
checkSize: () => void;
onResize: () => void;
cleanUp: () => void;
componentWillUnmount(): void;
render(): JSX.Element;
}
export default ResizeReporter;