0.1.2 • Published 2 years ago

@prasiddha/react-image-loader v0.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@prasiddha/react-image-loader

@prasiddha/react-image-loader allows you to show a shimmer/skeleton, placeholder image or your custom component until image is loaded in the browser.

Even if your image src changes dynamically then this package will again show the loading component until new image source is full loaded.

Installation

Use the package manager npm to install @prasiddha/react-image-loader.

npm install @prasiddha/react-image-loader --save

Usage

With @prasiddha/react-image-loader you can pass props to display either shimmer/skeleton, placeholder image or your custom component.

Shimmer

GIF showing usages with shimmer load type

import { ImageLoader } from '@prasiddha/react-image-loader';

const App = () => {
  return (
    <ImageLoader
      loadType="shimmer"
      style={{ height: '40vh', width: '40vh', objectFit: 'cover' }}
      alt="random-image"
      src="https://images.pexels.com/photos/12430047/pexels-photo-12430047.jpeg"
    />
  );
};

export default App;

If you are using the shimmer effect, a beautiful shimmer/skeleton is loaded until the actual image is loaded in you app.

Placeholder

GIF showing usages with shimmer load type

import { ImageLoader } from '@prasiddha/react-image-loader';
import Placeholder from './placeholder.png';

const App = () => {
  return (
    <ImageLoader
      loadType="placeholder"
      placeholderImage={Placeholder} // or placeholderImage={'https://actualimageurl.com'}
      style={{ height: '40vh', width: '40vh', objectFit: 'cover' }}
      alt="random-image"
      src="https://images.pexels.com/photos/12430047/pexels-photo-12430047.jpeg"
    />
  );
};

export default App;

If you are using the placeholder load type, then it provides you the option to specify which image you want to put as a placeholder image until the actual image loads.

Note: If you do not specify the placeholderImage, it uses the default placeholder image specified already in the package.

Custom

GIF showing usages with shimmer load type

import { ImageLoader } from '@prasiddha/react-image-loader';

const App = () => {
  const myCustomComponent = (
    <>My custom component to load unless actual image is loaded</>
  );

  return (
    <ImageLoader
      loadType="custom"
      customComponent={myCustomComponent}
      style={{ height: '40vh', width: '40vh', objectFit: 'cover' }}
      alt="random-image"
      src="https://images.pexels.com/photos/12430047/pexels-photo-12430047.jpeg"
    />
  );
};

export default App;

If you are using the custom load type, then it provides you the option to specify your own component to load until the actual image loads.

Note: If you do not specify the customComponent, it uses the default component specified already in the package.

Props

PropertyRequiredDefault valueDescription
src: stringyes
alt: stringyes
loadType?: 'placeholder' | 'shimmer' | 'custom'yes'shimmer'Provide load type to display until actual image is loaded
style?: React.CSSPropertiesno{ maxWidth: '100%', height: '30vh' }Provide style for images as well as the loading component for all load types
className?: stringnoProvide class name for the images as well as the loading component for all load types
placeholderImage?: stringnodefault specified imageProvide placeholder image until actual image is loaded. This props is only in effect if loadType = "placeholder"
customComponent?: React.ReactNodenodefault specified componentProvide placeholder custom component until actual image is loaded. This props is only in effect if loadType = "custom"

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT