Skip to content

Image viewer (aka Lightbox) React Hook (`useImageViewer`) - the only one with decent touch support on mobile

License

Notifications You must be signed in to change notification settings

rkusa/react-image-viewer-hook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Image Viewer Hook (useImageViewer)

Image viewer (aka Lightbox) made for React. Images only (no videos, iframes, custom html, ...), with a focus on touch interactions (swipe between images, pinch to zoom, pan around, swipe down to dismiss). Internal heavy lifting is done by react-spring and use-gesture. Supports code-splitting by default (image viewer code is only loaded once first opened). The image viewer chunk comes at around 37kB gzipped.

Demo: https://codesandbox.io/s/react-image-viewer-hook-demo-6ty7g

Example:

import { useImageViewer } from 'react-image-viewer-hook'
function Page() {
  const { getOnClick, ImageViewer } = useImageViewer()
  return (
    <>
      <a href="image1.jpg" onClick={getOnClick(image1.jpg)}><img src="image1_thumb.jpg" /></a>
      <a href="image2.jpg" onClick={getOnClick(image2.jpg)}><img src="image2_thumb.jpg" /></a>

      <ImageViewer /> {/* can be rendered wherever you want - like in a portal */}
    </>
  )
}

License

MIT

About

Image viewer (aka Lightbox) React Hook (`useImageViewer`) - the only one with decent touch support on mobile

Resources

License

Stars

Watchers

Forks

Packages

No packages published