UNPKG

react-shimmer

Version:

React Image (Suspense-like) Loader component that simulates a shimmer effect

48 lines (47 loc) 1.58 kB
/** * @class SuspenseImage * @version 3.2.0 * @author github.com/gokcan */ /// <reference types="node" /> 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<HTMLImageElement>; } interface State { isLoading: boolean; error?: string; } export declare class SuspenseImage extends Component<ImageProps, State> { static propTypes: { src: PropTypes.Validator<string>; fallback: PropTypes.Validator<PropTypes.ReactElementLike>; errorFallback: PropTypes.Requireable<(...args: any[]) => any>; onLoad: PropTypes.Requireable<(...args: any[]) => any>; delay: PropTypes.Requireable<number>; fadeIn: PropTypes.Requireable<boolean>; NativeImgProps: PropTypes.Requireable<object>; }; state: State; timeoutId?: NodeJS.Timeout; forceReject?: (reason: Error) => void; _isMounted: boolean; imgRef: React.RefObject<HTMLImageElement>; componentDidMount(): void; componentDidUpdate(prevProps: ImageProps): void; componentWillUnmount(): void; private start; private loadImage; private tryLoadImage; private safeClearTimeout; render(): {} | null | undefined; } export { SuspenseImage as Image };