A React wrapper component around the OpenSeadragon viewer. Feed OpenSeadragonViewer
a IIIF manifest URL, and it will render an OpenSeadragon viewer with:
- FontAwesome toolbar icons
- A tile source dropdown navigation menu
- Thumbnails navigation
- Download options
- Support for deep linking, and saving URL parameters
npm install openseadragon-react-viewer
// And peer dependencies
npm install @emotion/react openseadragon react-device-detect react-select
Then use it in your app:
import React from 'react';
import { OpenSeadragonViewer } from "openseadragon-react-viewer"
const App = () => {
// Provide either a local IIIF manifest object
const manifest = MY_AWESOME_MANIFEST;
// Or, provide a publicly accessible URL of a IIIF manifest
const manifestUrl = "https://some-manifest-url-here.json";
// Options to show/hide extra UI features in the viewer
// height(in pixels) option is default to 800 for wide-screens and 500 for narrow-screens
// All other options default to 'true'
const options = {
showDropdown: true,
showThumbnails: false,
showToolbar: true,
deepLinking: true,
height: 800,
};
// Pass through any OpenSeadragon config options you'd like to override
const openSeadragonOptions = {
gestureSettingsMouse: {
scrollToZoom: true,
}
};
// Customize which tool bar controls are displayed
const toolBarOptions = {
showZoom: true,
showFullScreen: true,
showDownload: true,
showPreviousNext: true,
};
// Note: A local manifest will take precedence over manifestUrl if both props are supplied
return (
<OpenSeadragonViewer
manifest={manifest}
manifestUrl={manifestUrl}
options,
openSeadragonOptions, // Optional
toolBarOptions // Optional
/>
);
}
export default App;
View documentation for all configuration options.
View documentation for a list of CSS classes you can target to add custom styles.
If you need help with openseadragon-react-viewer
, submit an issue.
** This info pulled from the Diva.js package**
You may receive an error that looks something like this:
XMLHttpRequest cannot load http://example.com/demo/imagefiles.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.
This is a security precaution that all browsers use to prevent cross-site request forgeries. If you receive this message it is because your manifestUrl
prop and the server used to serve the OpenSeadragon React Viewer are not at the same server address.
To fix this you must ensure that the OpenSeadragon React Viewer host's React application, and the location pointed to by the manifestUrl
prop are being served by the same server, or you must create an exception using the Access-Control-Allow-Origin header on your server to explicitly white-list the manifestUrl
location.
-
Clone or fork this repository
-
Install project dependencies
npm install
To spin up the development environment (which is a Styleguidiest dev environment) run:
npm run dev
Visit http://localhost:6060/ (Styleguidist's default port) in your browser.
See rollup.config.js
for development and packaging configuration details. Development environment runs from a UMD
bundled file, which is saved to the /public
folder for local development.
To run unit tests, with a full coverage report:
npm run test
To run tests in watch
mode:
npm run test:watch
Styleguidist, in addition to providing documentation, also offers an isolated development environment. To run the environment and test it out:
npm run dev
// or
npm run styleguide
To build a static html version of the docs (which Github pages uses), run:
npm run styleguide:build
To deploy your forked version of this repo, run:
npm run build
This will create CommoneJS, ES Module, and UMD distribution files located in the /dist/
directory.
See the Styleguidist docs for documentation on the components.
If you're working on PR for this project, branch off master
and create a feature branch. Submit your PR to https://github.com/samvera-labs/openseadragon-react-viewer. You're awesome. Thanks!
Use Prettier.
.prettierrc
file contains current project coding style settings.
- OpenSeadragon - OpenSeadragon
- IIIF - IIIF International Image Interoperability Framework
- React - JavaScript component library
- Rollup - JavaScript Bundler
- Jest - Testing framework
- Emotion - CSS in JS
- Adam J. Arling - UI Developer - Northwestern University
This project is licensed under the MIT License - see the LICENSE.md file for details