Skip to content
Snippets Groups Projects
Unverified Commit 18b1a2f6 authored by Jack Reed's avatar Jack Reed Committed by GitHub
Browse files

Merge pull request #3162 from ProjectMirador/forward-plugin-refs

Forward plugin hooks refs
parents a268e8ef bf7ed6d2
Branches
Tags
No related merge requests found
......@@ -4,6 +4,7 @@ import WorkspaceMenuButton from '../../../src/containers/WorkspaceMenuButton';
import FullScreenButton from '../../../src/containers/FullScreenButton';
import { WorkspaceControlPanelButtons }
from '../../../src/components/WorkspaceControlPanelButtons';
import { PluginHook } from '../../../src/components/PluginHook';
describe('WorkspaceControlPanelButtons', () => {
let wrapper;
......@@ -14,6 +15,6 @@ describe('WorkspaceControlPanelButtons', () => {
it('render all needed elements', () => {
expect(wrapper.find(WorkspaceMenuButton).length).toBe(1);
expect(wrapper.find(FullScreenButton).length).toBe(1);
expect(wrapper.find('PluginHook').length).toBe(1);
expect(wrapper.find(PluginHook).length).toBe(1);
});
});
import React from 'react';
/** Renders plugins */
export const PluginHook = (props) => {
export const PluginHook = React.forwardRef((props, ref) => {
const { PluginComponents } = props; // eslint-disable-line react/prop-types
const { classes, ...otherProps } = props;
const { classes, ...otherProps } = props; // eslint-disable-line react/prop-types
return PluginComponents ? (
PluginComponents.map((PluginComponent, index) => (
PluginComponents.map((PluginComponent, index) => ( // eslint-disable-line react/prop-types
<PluginComponent
ref={ref}
{...otherProps}
key={index} // eslint-disable-line react/no-array-index-key
/>
))
) : null;
};
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment