/** * @class SuspenseImage * @version 3.2.0 * @author github.com/gokcan */ /// import React, { ReactNode, ImgHTMLAttributes, Component } from 'react'; import PropTypes from 'prop-types'; import './anims/anims.css'; export interface ImageProps { src: string; fallback: ReactNode; errorFallback?: (err: string) => ReactNode; onLoad?: (image: HTMLImageElement) => any; delay?: number; fadeIn?: boolean; NativeImgProps?: ImgHTMLAttributes; } interface State { isLoading: boolean; error?: string; } export declare class SuspenseImage extends Component { static propTypes: { src: PropTypes.Validator; fallback: PropTypes.Validator; errorFallback: PropTypes.Requireable<(...args: any[]) => any>; onLoad: PropTypes.Requireable<(...args: any[]) => any>; delay: PropTypes.Requireable; fadeIn: PropTypes.Requireable; NativeImgProps: PropTypes.Requireable; }; state: State; timeoutId?: NodeJS.Timeout; forceReject?: (reason: Error) => void; _isMounted: boolean; imgRef: React.RefObject; componentDidMount(): void; componentDidUpdate(prevProps: ImageProps): void; componentWillUnmount(): void; private start; private loadImage; private tryLoadImage; private safeClearTimeout; render(): {} | null | undefined; } export { SuspenseImage as Image };