Skip to content

Commit 3e744a8

Browse files
committed
fix(pro): remove using MUI in common components
1 parent eb7fbea commit 3e744a8

File tree

6 files changed

+67
-44
lines changed

6 files changed

+67
-44
lines changed

package-lock.json

Lines changed: 26 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/editor-pro/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@ A mapper of components you want to be able to edit.
4949
import { componentMapper } from '@data-driven-forms/mui-component-mapper';
5050
```
5151

52+
## FormTemplate
53+
54+
A FormTemplate to use in the preview box.
55+
56+
**Example**
57+
58+
```tsx
59+
import { MuiFormTemplate } from '@data-driven-forms/mui-component-mapper';
60+
```
61+
5262
## componentInitialProps
5363

5464
An object to set initial props for components. For example, some components required props to be initialized.

packages/editor-pro/cypress/component/ProEditor.cy.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from 'react';
22

33
import { componentMapper } from '@data-driven-forms/mui-component-mapper';
4+
import FormTemplate from '@data-driven-forms/mui-component-mapper/form-template';
45

56
import Editor from '../../src/editor';
67
import propertiesFields from '../../src/editor/properties-fields';
@@ -9,6 +10,7 @@ import { AnyObject } from '../../src/types';
910

1011
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
1112
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
13+
import SubForm from '../../src/editor/sub-form';
1214

1315
const componentInitialProps: AnyObject = {
1416
'dual-list-select': {
@@ -33,13 +35,13 @@ const fields = propertiesFields({ componentMapper });
3335

3436
const Wrapper = (props) => (
3537
<LocalizationProvider dateAdapter={AdapterDateFns}>
36-
<Editor {...props} />
38+
<Editor {...props} FormTemplate={FormTemplate} fields={fields} componentMapper={{...componentMapper, 'sub-form': SubForm}} componentInitialProps={componentInitialProps} />
3739
</LocalizationProvider>
3840
);
3941

4042
describe('ProEditor', () => {
4143
it('can drag a new component', () => {
42-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
44+
cy.mount(<Wrapper />);
4345

4446
cy.get('[data-cy="text-field"]').trigger('mousedown');
4547
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -49,7 +51,7 @@ describe('ProEditor', () => {
4951
});
5052

5153
it('can open properties editor', () => {
52-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
54+
cy.mount(<Wrapper />);
5355

5456
cy.get('[data-cy="text-field"]').trigger('mousedown');
5557
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -61,7 +63,7 @@ describe('ProEditor', () => {
6163
});
6264

6365
it('can drag multiple components', () => {
64-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
66+
cy.mount(<Wrapper />);
6567

6668
cy.get('[data-cy="text-field"]').trigger('mousedown');
6769
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -77,7 +79,7 @@ describe('ProEditor', () => {
7779
});
7880

7981
it('can drag component to top', () => {
80-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
82+
cy.mount(<Wrapper />);
8183

8284
cy.get('[data-cy="text-field"]').trigger('mousedown');
8385
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -99,7 +101,7 @@ describe('ProEditor', () => {
99101
});
100102

101103
it('move components', () => {
102-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
104+
cy.mount(<Wrapper />);
103105

104106
cy.get('[data-cy="text-field"]').trigger('mousedown');
105107
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -124,7 +126,7 @@ describe('ProEditor', () => {
124126
});
125127

126128
it('move into nested component', () => {
127-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
129+
cy.mount(<Wrapper />);
128130

129131
cy.get('[data-cy="sub-form"]').trigger('mousedown');
130132
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');
@@ -138,7 +140,7 @@ describe('ProEditor', () => {
138140
});
139141

140142
it('move nested into nested component', () => {
141-
cy.mount(<Wrapper fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} />);
143+
cy.mount(<Wrapper />);
142144

143145
cy.get('[data-cy="sub-form"]').trigger('mousedown');
144146
cy.get('[data-cy="container-root"]').trigger('mousemove', 'center');

packages/editor-pro/public/index.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ import React from 'react';
22
import ReactDOM from 'react-dom';
33

44
import { componentMapper } from '@data-driven-forms/mui-component-mapper';
5+
import FormTemplate from '@data-driven-forms/mui-component-mapper/form-template';
6+
57
import Editor from '../src/editor';
68
import propertiesFields from '../src/editor/properties-fields';
9+
import SubForm from '../src/editor/sub-form';
710

811
import { AnyObject } from '../src/types';
912
import { componentTypes, Schema, validatorTypes } from '@data-driven-forms/react-form-renderer';
@@ -76,7 +79,15 @@ const initialSchema: Schema = {
7679
]
7780
};
7881

79-
const App = () => <LocalizationProvider dateAdapter={AdapterDateFns}><Editor fields={fields} componentMapper={componentMapper} componentInitialProps={componentInitialProps} initialSchema={initialSchema} /></LocalizationProvider>;
82+
const App = () => <LocalizationProvider dateAdapter={AdapterDateFns}>
83+
<Editor
84+
fields={fields}
85+
componentMapper={{...componentMapper, 'sub-form': SubForm }}
86+
componentInitialProps={componentInitialProps}
87+
initialSchema={initialSchema}
88+
FormTemplate={FormTemplate}
89+
/>
90+
</LocalizationProvider>;
8091

8192
ReactDOM.render(
8293
<App />,

packages/editor-pro/src/editor/editor-content.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ import useState from '@data-driven-forms/dnd/use-state';
44
import { Pane } from 'evergreen-ui';
55

66
import FormRenderer from '@data-driven-forms/react-form-renderer/form-renderer';
7-
import { componentMapper } from '@data-driven-forms/mui-component-mapper';
8-
import { Field, Schema } from '@data-driven-forms/react-form-renderer';
9-
import FormTemplate from '@data-driven-forms/mui-component-mapper/form-template';
7+
import { Field, Schema, FormTemplateRenderProps, ComponentMapper } from '@data-driven-forms/react-form-renderer';
108
import convertToSchema from '@data-driven-forms/editor-core/convert-to-schema';
119
import FormCard from './form-card';
1210
import { AnyObject } from '../types';
1311

1412
export interface EditorContentProps {
1513
fields: Field[];
14+
FormTemplate: React.ComponentType<FormTemplateRenderProps>;
15+
componentMapper: ComponentMapper;
1616
}
1717

18-
const EditorContent: React.FC<EditorContentProps> = ({ fields }) => {
18+
const EditorContent: React.FC<EditorContentProps> = ({ fields, FormTemplate, componentMapper }) => {
1919
const state: AnyObject = useState();
2020

2121
if (state.mode === 'test') {

packages/editor-pro/src/editor/editor.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ import CoreEditor from '@data-driven-forms/editor-core/editor';
77
import TopNav from './top-nav';
88
import EditorContent from './editor-content';
99
import PropertiesCard from './properties-card';
10-
import { Field, FormRenderer, ComponentMapper, Schema } from '@data-driven-forms/react-form-renderer';
10+
import { Field, FormRenderer, ComponentMapper, Schema, FormTemplateRenderProps } from '@data-driven-forms/react-form-renderer';
1111
import ContainerWrapper from './container-wrapper';
1212
import ComponentWrapper from './component-wrapper';
13-
import SubForm from './sub-form';
1413
import Code from './code';
1514
import { AnyObject } from '../types';
1615

@@ -21,9 +20,10 @@ export interface EditorProps {
2120
componentInitialProps?: AnyObject;
2221
fields: Field[];
2322
initialSchema?: Schema;
23+
FormTemplate: React.ComponentType<FormTemplateRenderProps>;
2424
}
2525

26-
const Editor = ({ componentMapper, componentInitialProps, fields, initialSchema }: EditorProps) => {
26+
const Editor = ({ componentMapper, componentInitialProps, fields, initialSchema, FormTemplate }: EditorProps) => {
2727
return (
2828
<Pane
2929
display="flex"
@@ -61,13 +61,13 @@ const Editor = ({ componentMapper, componentInitialProps, fields, initialSchema
6161
<FormRenderer
6262
schema={{ fields: [] }}
6363
onSubmit={() => undefined}
64-
componentMapper={{ ...componentMapper, 'sub-form': SubForm }}
64+
componentMapper={componentMapper}
6565
FormTemplate={() => <ContainerWrapper isRoot Component={ComponentWrapper} />}
6666
/>
6767
<Code />
6868
</Pane>
6969
<PropertiesCard fields={fields} />
70-
<EditorContent fields={fields} />
70+
<EditorContent fields={fields} componentMapper={componentMapper} FormTemplate={FormTemplate} />
7171
</Pane>
7272
</CoreEditor>
7373
</Pane>

0 commit comments

Comments
 (0)