You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.5 KiB
38 lines
1.5 KiB
import * as React from 'react';
|
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
export interface ResizeObserverProps {
|
|
children: React.ReactNode;
|
|
disabled?: boolean;
|
|
/** Trigger if element resized. Will always trigger when first time render. */
|
|
onResize?: (size: {
|
|
width: number;
|
|
height: number;
|
|
offsetWidth: number;
|
|
offsetHeight: number;
|
|
}) => void;
|
|
}
|
|
interface ResizeObserverState {
|
|
height: number;
|
|
width: number;
|
|
}
|
|
declare type RefNode = React.ReactInstance | HTMLElement | null;
|
|
declare class ReactResizeObserver extends React.Component<ResizeObserverProps, ResizeObserverState> {
|
|
static displayName: string;
|
|
resizeObserver: ResizeObserver | null;
|
|
childNode: RefNode;
|
|
currentElement: Element | null;
|
|
state: {
|
|
width: number;
|
|
height: number;
|
|
};
|
|
componentDidMount(): void;
|
|
componentDidUpdate(): void;
|
|
componentWillUnmount(): void;
|
|
onComponentUpdated(): void;
|
|
onResize: ResizeObserverCallback;
|
|
setChildNode: (node: RefNode) => void;
|
|
destroyObserver(): void;
|
|
render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)>) | (new (props: any) => React.Component<any, any, any>)> | React.ReactElement<unknown, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)>) | (new (props: any) => React.Component<any, any, any>)>[];
|
|
}
|
|
export default ReactResizeObserver;
|