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.
23 lines (18 loc) • 789 B
JSX
import { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import PluginContext from './PluginContext';
import { connectPluginsToStore, createTargetToPluginMapping, addPluginsToCompanionWindowsRegistry } from './pluginMapping';
/** */
export default function PluginProvider({ plugins = [], children = null }) {
const [pluginMap, setPluginMap] = useState({});
useEffect(() => {
const connectedPlugins = connectPluginsToStore(plugins);
addPluginsToCompanionWindowsRegistry(connectedPlugins);
setPluginMap(createTargetToPluginMapping(connectedPlugins));
}, [plugins]);
return <PluginContext.Provider value={pluginMap}>{children}</PluginContext.Provider>;
}
PluginProvider.propTypes = {
children: PropTypes.node,
plugins: PropTypes.array,
};