1.2.2 • Published 2 years ago

react-simple-image-viewer v1.2.2

Weekly downloads
953
License
MIT
Repository
github
Last release
2 years ago

React Simple Image Viewer

npm version Build Status

Simple image viewer component for React.

Installation

$ npm install react-simple-image-viewer

or

$ yarn add react-simple-image-viewer

Example

import React, { useState, useCallback } from 'react';
import { render } from 'react-dom';
import ImageViewer from 'react-simple-image-viewer';

function App() {
  const [currentImage, setCurrentImage] = useState(0);
  const [isViewerOpen, setIsViewerOpen] = useState(false);
  const images = [
    'http://placeimg.com/1200/800/nature',
    'http://placeimg.com/800/1200/nature',
    'http://placeimg.com/1920/1080/nature',
    'http://placeimg.com/1500/500/nature',
  ];

  const openImageViewer = useCallback((index) => {
    setCurrentImage(index);
    setIsViewerOpen(true);
  }, []);

  const closeImageViewer = () => {
    setCurrentImage(0);
    setIsViewerOpen(false);
  };

  return (
    <div>
      {images.map((src, index) => (
        <img
          src={ src }
          onClick={ () => openImageViewer(index) }
          width="300"
          key={ index }
          style={{ margin: '2px' }}
          alt=""
        />
      ))}

      {isViewerOpen && (
        <ImageViewer
          src={ images }
          currentIndex={ currentImage }
          disableScroll={ false }
          closeOnClickOutside={ true }
          onClose={ closeImageViewer }
        />
      )}
    </div>
  );
}

render(<App />, document.getElementById('app'));

Demo

Try out demo on CodeSandbox

API

PropertyTypeDescription
srcstring[]Array of image URLs
currentIndexnumberIndex of image in src property which will be shown first when viewer is opened
onClosefunctionCallback which will be called when viewer will closed
backgroundStyleobjectCustom styles for background of modal window
disableScrollbooleanDisable scrolling images by mouse wheel
closeOnClickOutsidebooleanWhether viewer should be closed when clicking outside of image
closeComponentJSX.ElementCustom component for the close button
leftArrowComponentJSX.ElementCustom component for the left arrow
rightArrowComponentJSX.ElementCustom component for the right arrow

Shortcuts

ShortcutDescription
EscapeClose the viewer
Right Arrow / lNext image
Left Arrow / hPrevious image
Mouse wheelScrolling previous / next image