Skip to content
Snippets Groups Projects
Commit daa41cd3 authored by Chris Beer's avatar Chris Beer
Browse files

Use react-dnd and related libraries

parent 2c2f5534
No related branches found
No related tags found
2 merge requests!19Draft: Merge video support into mui5,!18Only nudge over badge content for the WindowListButton; it needs special...
import { shallow } from 'enzyme';
import { MosaicWithoutDragDropContext } from 'react-mosaic-component';
import { Mosaic } from 'react-mosaic-component';
import MosaicRenderPreview from '../../../src/containers/MosaicRenderPreview';
import { WorkspaceMosaic } from '../../../src/components/WorkspaceMosaic';
......@@ -23,8 +23,8 @@ describe('WorkspaceMosaic', () => {
wrapper = createWrapper({ windowIds });
});
it('should render properly with an initialValue', () => {
expect(wrapper.find(MosaicWithoutDragDropContext).length).toEqual(1);
expect(wrapper.find(MosaicWithoutDragDropContext).prop('initialValue')).toEqual({
expect(wrapper.dive().find(Mosaic).length).toEqual(1);
expect(wrapper.dive().find(Mosaic).prop('initialValue')).toEqual({
direction: 'row', first: '1', second: '2',
});
});
......@@ -101,7 +101,8 @@ describe('WorkspaceMosaic', () => {
it('when window is available', () => {
const renderedTile = wrapper.instance().tileRenderer('1', 'foo');
expect(renderedTile).not.toBeNull();
expect(shallow(renderedTile).find('DropTarget(DragSource(InternalMosaicWindow))').length).toEqual(1);
expect(shallow(renderedTile).find('ConnectedInternalMosaicWindow').length).toEqual(1);
expect(shallow(renderedTile).find('WithStyles(Connect(WithPlugins(Window)))').length).toEqual(1);
expect(shallow(renderedTile).props()).toEqual(expect.objectContaining({
additionalControls: [],
path: 'foo',
......
......@@ -18,5 +18,8 @@
"<rootDir>/**/__tests__/**/*.{js,jsx}",
"<rootDir>/src/**/?(*.)(spec|test|unit).{js,jsx}"
],
"preset": "jest-puppeteer"
"preset": "jest-puppeteer",
"transformIgnorePatterns": [
"<rootDir>/node_modules/(?!@react-dnd|react-dnd|dnd-core|react-dnd-html5-backend|dnd-multi-backend|rdndmb-html5-to-touch)"
]
}
......@@ -7,8 +7,8 @@ import {
ThemeProvider, StylesProvider, createTheme, jssPreset, createGenerateClassName,
} from '@material-ui/core/styles';
import { DndContext, DndProvider } from 'react-dnd';
import MultiBackend from 'react-dnd-multi-backend';
import HTML5toTouch from 'react-dnd-multi-backend/dist/cjs/HTML5toTouch';
import { MultiBackend } from 'react-dnd-multi-backend';
import { HTML5toTouch } from 'rdndmb-html5-to-touch';
import { create } from 'jss';
import rtl from 'jss-rtl';
import createI18nInstance from '../i18n';
......
import { Component } from 'react';
import PropTypes from 'prop-types';
import { DndContext } from 'react-dnd';
import {
MosaicWithoutDragDropContext, MosaicWindow, getLeaves, createBalancedTreeFromLeaves,
Mosaic, MosaicWindow, getLeaves, createBalancedTreeFromLeaves,
} from 'react-mosaic-component';
import difference from 'lodash/difference';
import isEqual from 'lodash/isEqual';
......@@ -144,13 +145,18 @@ export class WorkspaceMosaic extends Component {
render() {
const { layout, classes } = this.props;
return (
<MosaicWithoutDragDropContext
<DndContext.Consumer>
{(ctx) => (
<Mosaic
dragAndDropManager={ctx.dragDropManager}
renderTile={this.tileRenderer}
initialValue={layout || this.determineWorkspaceLayout()}
onChange={this.mosaicChange}
className={classNames('mirador-mosaic', classes.root)}
zeroStateView={this.zeroStateView}
/>
)}
</DndContext.Consumer>
);
}
}
......
......@@ -46,8 +46,6 @@ const baseConfig = mode => ({
],
resolve: {
alias: {
// needs shared global state for context to work
'react-dnd': path.resolve(path.join(__dirname, 'node_modules', 'react-dnd')),
'react/jsx-dev-runtime': 'react/jsx-dev-runtime.js',
'react/jsx-runtime': 'react/jsx-runtime.js',
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment