UNPKG

mirador

Version:

An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.

57 lines (48 loc) 1.21 kB
import { createRoot } from 'react-dom/client'; import { Provider } from 'react-redux'; import HotApp from '../components/App'; import { filterValidPlugins, } from '../extend/pluginPreprocessing'; import createPluggableStore from '../state/createPluggableStore'; /** * Default Mirador instantiation */ class MiradorViewer { /** */ constructor(config, viewerConfig = {}) { this.plugins = filterValidPlugins(viewerConfig.plugins || []); this.config = config; this.store = viewerConfig.store || createPluggableStore(this.config, this.plugins); if (config.id) this.renderInto(document.getElementById(config.id)); } /** * @private * @param {*} container */ renderInto(container) { this.container = container; this.root = createRoot(this.container); this.root.render(this.render()); } /** * Render the mirador viewer */ render(props = {}) { return ( <Provider store={this.store}> <HotApp plugins={this.plugins} {...props} /> </Provider> ); } /** * Cleanup method to unmount Mirador from the dom */ unmount() { if (!this.root) return; this.root.unmount(); } } export default MiradorViewer;