Skip to content

Repository files navigation

react-viewer

NPM versioncodecov

react image viewer.

Introduction

Because I can`t be comfortable using viewerjs in react, so I created react-viewer to replace it.

Installation

react >= 16.8.0 | react-dom >= 16.8.0

npm install react-viewer --save

Usage

import*asReactfrom'react';importViewerfrom'react-viewer';functionApp(){const[visible,setVisible]=React.useState(false);return(<div><buttononClick={()=>{setVisible(true);}}>show</button><Viewervisible={visible}onClose={()=>{setVisible(false);}}images={[{src: '',alt: ''}]}/></div>);}

Server Side (NextJS)

import React, { FC } from 'react'
import dynamic from 'next/dynamic'
const ReactViewer = dynamic(
() => import('react-viewer'),
{ ssr: false }
)
export const Viewer: FC = () => {
return (
<ReactViewer
visible={true}
onClose={() => {}}
images={[{src: ''}]}
/>
)
}
export default Viewer

Server Side rest..

I'm sorry, ssr is not currently supported in 3.x, it will be fixed in 4.0.

Props

propstypedefaultdescriptionrequired
visiblestringfalseViewer visibletrue
onClosefunction-Specify a function that will be called when Visible closetrue
imagesImageDecorator[][]image source arraytrue
activeIndexnumber0active image indexfalse
zIndexnumber1000Viewer css z-indexfalse
containerHTMLElementnullset parent node(inline mode)false
dragbooleantruewhether to drag imagefalse
attributebooleantruewhether to show image attributefalse
zoomablebooleantruewhether to show 'zoom' buttonfalse
rotatablebooleantruewhether to show 'rotate' buttonfalse
scalablebooleantruewhether to show 'scale' buttonfalse
onMaskClick(e) => void-callback function when mask is clickedfalse
downloadablebooleanfalsewhether to show 'download'false
noClosebooleanfalseto not render close buttonfalse
noNavbarbooleanfalseto not render the navbarfalse
noToolbarbooleanfalseto not render the toolbarfalse
noImgDetailsbooleanfalseto not render image detail (WxH)false
noFooterbooleanfalseto not render the entire footerfalse
changeablebooleantruewheather to show change buttonfalse
customToolbar(defaultToolbarConfigs: ToolbarConfig[]) => ToolbarConfig[]-customer toolbarfalse
zoomSpeednumber0.05zoom speedfalse
defaultSizeViewerImageSize-default image sizefalse
defaultImgviewerdefaultimg-if load img failed, show default imgfalse
disableKeyboardSupportbooleanfalsedisable keyboard supportfalse
noResetZoomAfterChangebooleanfalsepreserve zoom after image changefalse
noLimitInitializationSizebooleanfalseno limit image initialization sizefalse
defaultScalenumber1set default scalefalse
onChange(activeImage: ImageDecorator, index: number) => void-callback when image changefalse
loopbooleantruewhether enable image loopfalse
disableMouseZoombooleanfalsewhether disable mouse zoomfalse
downloadInNewWindowbooleanfalsewhether to download in a new windowfalse
classNamestring-customized CSS classfalse
showTotalbooleantruewhether to display the total number and rangefalse
totalNamestring'of'total image separator namefalse
maxScalenumber-maximum scalingfalse
minScalenumber0.1minimum scalingfalse
exportFileNamestring'exportFile'customize download's filenamefalse

ImageDecorator

propstypedefaultdescriptionrequired
srcstring-image sourcetrue
altstring-image descriptionfalse
downloadUrlstring-image downlaod urlfalse
defaultSizeViewerImageSize-image sizefalse

ViewerImageSize

propstypedefaultdescriptionrequired
widthnumber-image widthtrue
heightnumber-image heighttrue

ViewerDefaultImg

propstypedefaultdescriptionrequired
srcnumber-image sourcetrue
widthnumber-image widthfalse
heightnumber-image heightfalse

ToolbarConfig

propstypedefaultdescriptionrequired
keystring-tool keytrue
renderReact.ReactNode-tool renderfalse
onClickfunction-callback function when action is clickedfalse

Keyboard support

  • Esc: Close viewer.
  • : View the previous image.
  • : View the next image.
  • : Zoom in the image.
  • : Zoom out the image.
  • Ctrl + 1: Reset the image.
  • Ctrl + ←: Rotate left the image.
  • Ctrl + →: Rotate right the image.

License

MIT

About

react image viewer, supports rotation, scale, zoom and so on

Topics

Resources

Stars

768 stars

Watchers

15 watching

Forks

Releases

Packages

Used by

Contributors

Languages