diff --git a/__tests__/integration/mirador/plugins.html b/__tests__/integration/mirador/plugins.html deleted file mode 100644 index 3310af53b64fd24c985824bdd26fede98097c0c0..0000000000000000000000000000000000000000 --- a/__tests__/integration/mirador/plugins.html +++ /dev/null @@ -1,138 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> - <meta name="theme-color" content="#000000"> - <title>Mirador</title> - </head> - <body> - <div id="mirador" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></div> - <script src="../../../node_modules/react/umd/react.development.js"></script> - <!-- Request from CDN if unavailable locally --> - <script type="text/javascript"> - if (!window.React) { - var script = document.createElement('script'); script.src = "https://unpkg.com/react@16/umd/react.development.js"; script.crossorigin = true; document.head.appendChild(script) - } - </script> - <script src="../../../node_modules/react-dom/umd/react-dom.development.js"></script> - <!-- Request from CDN if unavailable locally --> - <script type="text/javascript"> - if (!window.ReactDOM) { - var script = document.createElement('script'); script.src = "https://unpkg.com/react-dom@16/umd/react-dom.development.js"; script.crossorigin = true; document.head.appendChild(script) - } - </script> - <script>document.write("<script type='text/javascript' src='../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script> - <script type="text/javascript"> - class MiradorShareButton extends React.Component { - constructor(props) { - super(props); - - this.handleClick = this.handleClick.bind(this); - } - handleClick() { - alert('Share this stuff') - } - render() { - return React.createElement('button', { className: 'share', onClick: this.handleClick}, 'Share'); - } - } - const miradorShareButton = { - name: 'miradorShareButton', - component: MiradorShareButton, - parent: 'WindowTopBarButtons', - } - Mirador.plugins.miradorShareButton = miradorShareButton; - class MiradorRuler extends React.Component { - constructor(props) { - super(props); - this._isMounted = false; - this.state = { - zooming: false, - } - this.zoomToColor = this.zoomToColor.bind(this); - } - componentDidMount() { - this._isMounted = true; - const that = this; - this.props.pluginParent().viewer.addHandler('zoom', (e) => { - if (that._isMounted) { - that.props.setZooming('123', true); - that.setState({ - zooming: true - }) - } - }) - // Super hacky don't do this for real - function resetStyle() { - if (that._isMounted) { - that.props.setZooming('123', false); - that.setState({ - zooming: false - }) - } - setTimeout(resetStyle, 750) - } - resetStyle(); - } - componentWillUnmount() { - this._isMounted = false; - if (this.props.pluginParent()) { - this.props.pluginParent().viewer.removeHandler('zoom'); - } - } - zoomToColor(zooming) { - if (zooming) { - return 'red' - } - return 'black' - } - render() { - return React.createElement('div', {className: 'mirador-ruler', style: { position: 'absolute', bottom: 0, color: this.zoomToColor(this.state.zooming)}}, 'I am a ruler') - } - } - - const zoomReducer = (state = {}, action) => { - switch (action.type) { - case 'SET_ZOOMING': - return action.zooming; - default: - return state; - } - }; - - const setZooming = (windowId, zooming) => { - return { type: 'SET_ZOOMING', windowId, zooming }; - } - - const miradorRuler = { - name: 'miradorRuler', - component: MiradorRuler, - parent: 'OpenSeadragonViewer', - reducers: { - zooming: zoomReducer - }, - actions: { - setZooming: setZooming - }, - mapStateToProps: ({ manifests }, props) => { - return { - manifests // return the part of the state I need here. - } - }, - mapDispatchToProps: (dispatch) => { - return { - setZooming: (windowId, level) => ( - dispatch(setZooming(windowId, level)) - ), - } - }, - } - Mirador.plugins.miradorRuler = miradorRuler; - var miradorInstance = Mirador.viewer({ - id: 'mirador', - plugins: ['miradorShareButton', 'miradorRuler'] - }); - </script> - </body> -</html> diff --git a/__tests__/integration/mirador/plugins.test.js b/__tests__/integration/mirador/plugins.test.js deleted file mode 100644 index 8816fc2faa87b7c7b9bd491d1870a9ffb4d945e4..0000000000000000000000000000000000000000 --- a/__tests__/integration/mirador/plugins.test.js +++ /dev/null @@ -1,31 +0,0 @@ -/* global miradorInstance */ - -describe('Mirador plugin use', () => { - beforeAll(async () => { - await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins.html'); - await expect(page).toClick('#addBtn'); - await expect(page).toClick('.mirador-add-resource-button'); - await expect(page).toFill('#manifestURL', 'http://localhost:5000/api/sn904cj3439'); - await expect(page).toClick('#fetchBtn'); - - await expect(page).toMatchElement('[data-manifestid="http://localhost:5000/api/sn904cj3439"] button'); - await expect(page).toClick('[data-manifestid="http://localhost:5000/api/sn904cj3439"] button'); - }); - it('displays "Share Button" plugin', async () => { - await expect(page).toMatchElement('button', { text: 'Share' }); - page.on('dialog', async (dialog) => { - expect(dialog.message()).toBe('Share this stuff'); - await dialog.dismiss(); - }); - await expect(page).toClick('button.share'); - }); - it('displays "Ruler" plugin', async () => { - await expect(page).toMatchElement('.mirador-ruler'); - // await page.waitFor(1000); - // Test that composed reducer and actions are working. - const zooming = await page.evaluate(() => ( - miradorInstance.store.getState().zooming - )); - await expect(zooming).toBe(false); - }); -}); diff --git a/__tests__/src/components/CompanionWindowFactory.test.js b/__tests__/src/components/CompanionWindowFactory.test.js index 1230c71a619e363f163a9d6c92640c92aa25a404..7e56380204247a0830c7bd690de55a84d776b49e 100644 --- a/__tests__/src/components/CompanionWindowFactory.test.js +++ b/__tests__/src/components/CompanionWindowFactory.test.js @@ -23,7 +23,7 @@ describe('CompanionWindowFactory', () => { content: 'info', }); - expect(wrapper.find('WithStyles(Connect(Connect(miradorWithPlugins(WindowSideBarInfoPanel))))').length).toBe(1); + expect(wrapper.find('WithStyles(Connect(WindowSideBarInfoPanel))').length).toBe(1); }); }); diff --git a/__tests__/src/components/WindowSideBar.test.js b/__tests__/src/components/WindowSideBar.test.js index e7875cf23bb5303077eb6617df8ecd07ce39b010..6eda40963c74094102d9b0d471bebf5c5d49e1bd 100644 --- a/__tests__/src/components/WindowSideBar.test.js +++ b/__tests__/src/components/WindowSideBar.test.js @@ -10,6 +10,6 @@ describe('WindowSideBar', () => { it('renders without an error', () => { expect(wrapper.find('WithStyles(Drawer)').length).toBe(1); - expect(wrapper.find('WithStyles(Connect(Connect(miradorWithPlugins(WindowSideBarButtons))))').length).toBe(1); + expect(wrapper.find('WithStyles(Connect(WindowSideBarButtons))').length).toBe(1); }); }); diff --git a/__tests__/src/components/WorkspaceControlPanel.test.js b/__tests__/src/components/WorkspaceControlPanel.test.js index 6f6fd6ee053c902faf75f1db0db2abaf24be38f7..855a74e2c88d885ca2438c7ac76a761f1dc0c4d2 100644 --- a/__tests__/src/components/WorkspaceControlPanel.test.js +++ b/__tests__/src/components/WorkspaceControlPanel.test.js @@ -22,6 +22,6 @@ describe('WorkspaceControlPanel', () => { it('renders without an error', () => { expect(wrapper.find('WithStyles(AppBar)').length).toBe(1); - expect(wrapper.find('Connect(miradorWithPlugins(WorkspaceControlPanelButtons))').length).toBe(1); + expect(wrapper.find('WorkspaceControlPanelButtons').length).toBe(1); }); }); diff --git a/__tests__/src/lib/componentPlugins.test.js b/__tests__/src/lib/componentPlugins.test.js deleted file mode 100644 index dde13deb433508e2c4e13615107e9d1b1b1f026e..0000000000000000000000000000000000000000 --- a/__tests__/src/lib/componentPlugins.test.js +++ /dev/null @@ -1,30 +0,0 @@ -import componentPlugins from '../../../src/lib/componentPlugins'; - -describe('componentPlugins', () => { - const originalMirador = window.Mirador; - beforeAll(() => { - window.Mirador = { - plugins: { - fooPlugin: { - name: 'fooPlugin', - parent: 'FooComponent', - }, - barPlugin: { - name: 'barPlugin', - parent: 'FooComponent', - }, - }, - }; - }); - afterAll(() => { - window.Mirador = originalMirador; - }); - it('only selects plugins that are defined in config', () => { - expect(componentPlugins('FooComponent', ['barPlugin'])[0].name).toEqual('barPlugin'); - expect(componentPlugins('FooComponent', ['barPlugin']).length).toEqual(1); - }); - it('only selects plugins that define component as parent', () => { - expect(componentPlugins('BarComponent', ['barPlugin'])).toEqual([]); - expect(componentPlugins('FooComponent', ['fooPlugin']).length).toEqual(1); - }); -}); diff --git a/src/containers/CompanionWindow.js b/src/containers/CompanionWindow.js index ce99afa5d6175840757999568df21bb4ae1d1fe6..6f5c59adbaebcfa145e2eaedf48c06f6a20de71b 100644 --- a/src/containers/CompanionWindow.js +++ b/src/containers/CompanionWindow.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; import * as actions from '../state/actions'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { CompanionWindow } from '../components/CompanionWindow'; /** @@ -78,7 +77,6 @@ const enhance = compose( withTranslation(), withStyles(styles), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(CompanionWindow); diff --git a/src/containers/OpenSeadragonViewer.js b/src/containers/OpenSeadragonViewer.js index 4e12d11f0ade0b2430f2f84083aa57b43a8914a0..176c92cc32eaf2418df723ac51990e57fa751505 100644 --- a/src/containers/OpenSeadragonViewer.js +++ b/src/containers/OpenSeadragonViewer.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; import { fade } from '@material-ui/core/styles/colorManipulator'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { OpenSeadragonViewer } from '../components/OpenSeadragonViewer'; import * as actions from '../state/actions'; import { @@ -59,7 +58,6 @@ const enhance = compose( withStyles(styles), withTranslation(), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/PrimaryWindow.js b/src/containers/PrimaryWindow.js index e0786efdbeac1de9430645da125a1596fa6b2696..ccfd95853982830266d65ffb7f1e6c12f45dc672 100644 --- a/src/containers/PrimaryWindow.js +++ b/src/containers/PrimaryWindow.js @@ -1,10 +1,8 @@ import { compose } from 'redux'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { PrimaryWindow } from '../components/PrimaryWindow'; const enhance = compose( - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/ThumbnailNavigation.js b/src/containers/ThumbnailNavigation.js index 1246f06952b339abf07a3bccaf41a719c6841785..a90db0ffbf9e26aca402e7b23047673f58d77d55 100644 --- a/src/containers/ThumbnailNavigation.js +++ b/src/containers/ThumbnailNavigation.js @@ -2,7 +2,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core/styles'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import CanvasGroupings from '../lib/CanvasGroupings'; import * as actions from '../state/actions'; import { ThumbnailNavigation } from '../components/ThumbnailNavigation'; @@ -42,7 +41,6 @@ const enhance = compose( withStyles(styles), withTranslation(), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/ViewerNavigation.js b/src/containers/ViewerNavigation.js index 18366fbb930af3d9b4db7398b6165c91a66cf7fd..e098cf25dea6e8f91547d919d954f7ab470d5718 100644 --- a/src/containers/ViewerNavigation.js +++ b/src/containers/ViewerNavigation.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import * as actions from '../state/actions'; import { ViewerNavigation } from '../components/ViewerNavigation'; @@ -17,7 +16,6 @@ const mapDispatchToProps = { const enhance = compose( withTranslation(), connect(null, mapDispatchToProps), - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/WindowSideBar.js b/src/containers/WindowSideBar.js index 259352223c5dff0455f54680e50948970d884b3c..6e8f60b93be196d57aff5d74f6b9ae9e49d0cdc3 100644 --- a/src/containers/WindowSideBar.js +++ b/src/containers/WindowSideBar.js @@ -1,7 +1,6 @@ import { connect } from 'react-redux'; import { compose } from 'redux'; import { withStyles } from '@material-ui/core'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WindowSideBar } from '../components/WindowSideBar'; /** @@ -43,7 +42,6 @@ const styles = theme => ({ const enhance = compose( withStyles(styles), connect(mapStateToProps, null), - miradorWithPlugins, ); export default enhance(WindowSideBar); diff --git a/src/containers/WindowSideBarButtons.js b/src/containers/WindowSideBarButtons.js index 96116259a8413b5a9e1d211abb9b4bec3de0c60a..c768e1338030d3a3cc5a4f97fa8959069d308dc3 100644 --- a/src/containers/WindowSideBarButtons.js +++ b/src/containers/WindowSideBarButtons.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import { withStyles } from '@material-ui/core'; import { withTranslation } from 'react-i18next'; import * as actions from '../state/actions'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { getCompanionWindowForPosition, getSelectedCanvas, @@ -60,7 +59,6 @@ const enhance = compose( withTranslation(), withStyles(style), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WindowSideBarButtons); diff --git a/src/containers/WindowSideBarInfoPanel.js b/src/containers/WindowSideBarInfoPanel.js index 1ac53d65ff599e71dc2639426eb175b3648b13f5..1c5e80bdf435c4946af1aba0960f59a51c4aa976 100644 --- a/src/containers/WindowSideBarInfoPanel.js +++ b/src/containers/WindowSideBarInfoPanel.js @@ -2,7 +2,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { getDestructuredMetadata, getCanvasLabel, @@ -44,7 +43,6 @@ const enhance = compose( withTranslation(), withStyles(styles), connect(mapStateToProps, null), - miradorWithPlugins, ); export default enhance(WindowSideBarInfoPanel); diff --git a/src/containers/WindowThumbnailSettings.js b/src/containers/WindowThumbnailSettings.js index 14d15a39794d16b8fd4442deb16222185161a8db..c796e5868525d7e46d688d25d979a5bc74a0d097 100644 --- a/src/containers/WindowThumbnailSettings.js +++ b/src/containers/WindowThumbnailSettings.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import * as actions from '../state/actions'; import { getThumbnailNavigationPosition } from '../state/selectors'; import { WindowThumbnailSettings } from '../components/WindowThumbnailSettings'; @@ -27,7 +26,6 @@ const mapStateToProps = (state, props) => ( const enhance = compose( withTranslation(), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/WindowTopBar.js b/src/containers/WindowTopBar.js index d63693b48eeb65dfb138509ecfc93b55f15c4090..4da895501bcb5148bcabae0a33234f761d7d8faf 100644 --- a/src/containers/WindowTopBar.js +++ b/src/containers/WindowTopBar.js @@ -3,7 +3,6 @@ import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; import * as actions from '../state/actions'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { getWindowManifest, getManifestTitle } from '../state/selectors'; import { WindowTopBar } from '../components/WindowTopBar'; @@ -46,7 +45,6 @@ const enhance = compose( withTranslation(), withStyles(styles), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WindowTopBar); diff --git a/src/containers/WindowTopBarButtons.js b/src/containers/WindowTopBarButtons.js index fe70d52ef23f120a3ff42c8447770bf66196ea9e..b29722321452f4191e0c919c840ad395ee5dc650 100644 --- a/src/containers/WindowTopBarButtons.js +++ b/src/containers/WindowTopBarButtons.js @@ -1,4 +1,3 @@ -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WindowTopBarButtons } from '../components/WindowTopBarButtons'; -export default miradorWithPlugins(WindowTopBarButtons); +export default WindowTopBarButtons; diff --git a/src/containers/WindowTopMenu.js b/src/containers/WindowTopMenu.js index 1dedc34c1026175278689faf8b449f6d4897d5e8..cc8964c3a10f5e8c64251a939de4b1c25f3c3f09 100644 --- a/src/containers/WindowTopMenu.js +++ b/src/containers/WindowTopMenu.js @@ -1,6 +1,5 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WindowTopMenu } from '../components/WindowTopMenu'; /** @@ -14,7 +13,6 @@ const mapStateToProps = state => ({ const enhance = compose( connect(mapStateToProps, null), - miradorWithPlugins, ); export default enhance(WindowTopMenu); diff --git a/src/containers/WindowTopMenuButton.js b/src/containers/WindowTopMenuButton.js index b77dd8099d1ea72c62d5bec0bbb2359650d8b2c9..bcef8e986c0f6a452b160c6df499a1f9f496514b 100644 --- a/src/containers/WindowTopMenuButton.js +++ b/src/containers/WindowTopMenuButton.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WindowTopMenuButton } from '../components/WindowTopMenuButton'; /** @@ -21,7 +20,6 @@ const styles = theme => ({ const enhance = compose( withTranslation(), withStyles(styles), - miradorWithPlugins, ); export default enhance(WindowTopMenuButton); diff --git a/src/containers/WindowViewSettings.js b/src/containers/WindowViewSettings.js index 940356b89ff5bda6356a68c7915a14db60a6c472..e2c12f72f3d3513bf0d2ea66b7cc103e81f3b013 100644 --- a/src/containers/WindowViewSettings.js +++ b/src/containers/WindowViewSettings.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import * as actions from '../state/actions'; import { getWindowViewType } from '../state/selectors'; import { WindowViewSettings } from '../components/WindowViewSettings'; @@ -27,7 +26,6 @@ const mapStateToProps = (state, props) => ( const enhance = compose( withTranslation(), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WindowViewSettings); diff --git a/src/containers/WindowViewer.js b/src/containers/WindowViewer.js index 5c8b47026bcd2843fa948740a7d168c76e662a0a..a6582987d4077c5c4748c128db446178423b646c 100644 --- a/src/containers/WindowViewer.js +++ b/src/containers/WindowViewer.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import * as actions from '../state/actions'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { getCanvasLabel, getSelectedCanvas, @@ -36,7 +35,6 @@ const mapDispatchToProps = { const enhance = compose( connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, // further HOC go here ); diff --git a/src/containers/WorkspaceAddButton.js b/src/containers/WorkspaceAddButton.js index 255d696e5602e1b7efabf306bf9f9dac3d918d92..67f7c99cf63bb38a6fcc298f07ea6660af8bfd13 100644 --- a/src/containers/WorkspaceAddButton.js +++ b/src/containers/WorkspaceAddButton.js @@ -3,7 +3,6 @@ import { compose } from 'redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; import * as actions from '../state/actions'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WorkspaceAddButton } from '../components/WorkspaceAddButton'; /** @@ -40,7 +39,6 @@ const enhance = compose( withTranslation(), withStyles(styles), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WorkspaceAddButton); diff --git a/src/containers/WorkspaceControlPanelButtons.js b/src/containers/WorkspaceControlPanelButtons.js index 1535ffb5cc064487e00ab87377eed9a0c8f8438c..5e20f4d582dee2e721605dd2fa9f8d5988ddbac7 100644 --- a/src/containers/WorkspaceControlPanelButtons.js +++ b/src/containers/WorkspaceControlPanelButtons.js @@ -1,5 +1,4 @@ -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WorkspaceControlPanelButtons } from '../components/WorkspaceControlPanelButtons'; -export default miradorWithPlugins(WorkspaceControlPanelButtons); +export default WorkspaceControlPanelButtons; diff --git a/src/containers/WorkspaceExport.js b/src/containers/WorkspaceExport.js index 89bac46c3fdb5a4ea2e1e221925e8d45980e5a32..9931f2a4db67a186e173a89e43ed8e9451377282 100644 --- a/src/containers/WorkspaceExport.js +++ b/src/containers/WorkspaceExport.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WorkspaceExport } from '../components/WorkspaceExport'; /** @@ -14,7 +13,6 @@ const mapStateToProps = state => ({ state }); const enhance = compose( withTranslation(), connect(mapStateToProps, {}), - miradorWithPlugins, ); export default enhance(WorkspaceExport); diff --git a/src/containers/WorkspaceFullScreenButton.js b/src/containers/WorkspaceFullScreenButton.js index 9301b3b9925a5791857980fa60070fb15e6fd11f..adb5347374c49b4471a369d53715b75c0c5aaa6b 100644 --- a/src/containers/WorkspaceFullScreenButton.js +++ b/src/containers/WorkspaceFullScreenButton.js @@ -2,7 +2,6 @@ import { connect } from 'react-redux'; import { compose } from 'redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import * as actions from '../state/actions'; import { WorkspaceFullScreenButton } from '../components/WorkspaceFullScreenButton'; @@ -38,7 +37,6 @@ const enhance = compose( withTranslation(), withStyles(styles), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WorkspaceFullScreenButton); diff --git a/src/containers/WorkspaceMenu.js b/src/containers/WorkspaceMenu.js index 749ba77959d0c589a2e674665fb18492588f3f24..5f17c008d271621e52188fccaa1c2fd2da8c4024 100644 --- a/src/containers/WorkspaceMenu.js +++ b/src/containers/WorkspaceMenu.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { connect } from 'react-redux'; import { withTranslation } from 'react-i18next'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import * as actions from '../state/actions'; import { WorkspaceMenu } from '../components/WorkspaceMenu'; @@ -27,7 +26,6 @@ const mapStateToProps = state => ({ const enhance = compose( withTranslation(), connect(mapStateToProps, mapDispatchToProps), - miradorWithPlugins, ); export default enhance(WorkspaceMenu); diff --git a/src/containers/WorkspaceMenuButton.js b/src/containers/WorkspaceMenuButton.js index 6c2ddb92cdda35d845225eb52c52bdf7bee3d1bd..a7f928e6746813594311349cba5c79a20cf5fa74 100644 --- a/src/containers/WorkspaceMenuButton.js +++ b/src/containers/WorkspaceMenuButton.js @@ -1,7 +1,6 @@ import { compose } from 'redux'; import { withTranslation } from 'react-i18next'; import { withStyles } from '@material-ui/core'; -import miradorWithPlugins from '../lib/miradorWithPlugins'; import { WorkspaceMenuButton } from '../components/WorkspaceMenuButton'; /** @@ -21,7 +20,6 @@ const styles = theme => ({ const enhance = compose( withTranslation(), withStyles(styles), - miradorWithPlugins, // further HOC ); diff --git a/src/lib/componentPlugins.js b/src/lib/componentPlugins.js deleted file mode 100644 index a97841f2a59387f62efa3d7a61dbf0e1256e9e4f..0000000000000000000000000000000000000000 --- a/src/lib/componentPlugins.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * componentPlugins - gets window plugins based on a component parent - */ -export default function componentPlugins(componentName, plugins = []) { - // TODO: Figure out how to handle when not running under window. Probably not - // a pressing priority, but relevant for tests - return plugins.map((pluginName) => { - if (window.Mirador.plugins[pluginName] - && window.Mirador.plugins[pluginName].parent === componentName) { - return window.Mirador.plugins[pluginName]; - } - return null; - }).filter(plugin => (plugin !== (undefined || null))); -} diff --git a/src/lib/miradorWithPlugins.js b/src/lib/miradorWithPlugins.js deleted file mode 100644 index ab24325b3d389fc3cac8ddbad2235de2dd84f7a0..0000000000000000000000000000000000000000 --- a/src/lib/miradorWithPlugins.js +++ /dev/null @@ -1,70 +0,0 @@ -import React, { Component } from 'react'; -import { compose } from 'redux'; -import PropTypes from 'prop-types'; -import { connect } from 'react-redux'; -import componentPlugins from './componentPlugins'; -/** - * miradorWithPlugins - renders and returns a component with provided plugins - * - * @param {type} WrappedComponent - */ -export default function miradorWithPlugins(WrappedComponent) { - /** - */ - class ConnectedComponent extends Component { - /** - * constructor - - */ - constructor(props) { - super(props); - - this.getPluginParent = this.getPluginParent.bind(this); - } - - /** - * pluginParent - access the plugin's "parent" - */ - getPluginParent() { - return this.pluginParent; - } - - /** - * render - renders the wrapped component with the plugins. - */ - render() { - const { config } = this.props; - const { plugins } = config; - return ( - <> - <WrappedComponent {...this.props} ref={(parent) => { this.pluginParent = parent; }} /> - {componentPlugins(WrappedComponent.name, plugins) - .map(component => React.createElement( - connect(component.mapStateToProps, component.mapDispatchToProps)(component.component), - { key: component.name, ...this.props, pluginParent: this.getPluginParent }, - )) - } - </> - ); - } - } - - const wrappedComponentName = WrappedComponent.name || 'Component'; - - ConnectedComponent.displayName = `miradorWithPlugins(${wrappedComponentName})`; - - ConnectedComponent.propTypes = { - config: PropTypes.instanceOf(Object).isRequired, - }; - - /** - */ - const mapStateToProps = state => ({ config: state.config }); - - - const enhance = compose( - connect(mapStateToProps), - // further HOC go here - ); - - return enhance(ConnectedComponent); -}