1.2.16 • Published 3 years ago

@marty-editor/create-plugin-materialui v1.2.16

Weekly downloads
115
License
GNU Lesser Genera...
Repository
-
Last release
3 years ago

createPluginMaterialUi

With @marty-editor/create-plugin-materialui its easy to create new plugins with custom properties. It uses uniforms to create the form based on a JSONSchema you provide and will show it in a bottomToolbar similar to the other plugins.

Notice: It is in active development and its api might change, but we would love to get your feedback about it!

It will only load the form-libraries, if the Editor is in edit mode (See section in the readme about lazy load)! So don't worry about bundle size!

Example

import { createContentPlugin } from '@marty-editor/create-plugin-materialui';
import React from 'react';

const yourCustomPlugin = createContentPlugin({
    Renderer: ({ state }) => (
      <div>
        <p>I am a custom plugin</p>
        <p>this is my configuration:</p>
        <p>Firstname: {state.firstName}</p>
        <p>Lastname: {state.lastName}</p>
        <p>Age: {state.age}</p>
      </div>
    ),
    name: 'custom-content-plugin',
    text: 'Custom content plugin',
    description: 'Some custom content plugin',
    version: '0.0.1',
    // see uniforms for more information on these schemas
    schema: {
      properties: {
        firstName: { type: 'string' },
        lastName: { type: 'string' },
        age: {
          description: 'Age in years',
          type: 'integer',
          minimum: 0,
        },
      },
      required: ['firstName', 'lastName'],
    },
  });

Custom form control fields

If you have a property that is more complicated like e.g. an ImageUploadField, you can pass your components to the schema, see this section on uniforms: https://uniforms.tools/docs/tutorials-creating-custom-field

Make sure that you lazy-load your custom components:

import { lazyLoad } from "@marty-editor/core"

const MyCustomImageUploadField = lazyLoad(() => import("./path/to/MyCustomImageUploadField));

const yourCustomPlugin = createContentPlugin({
    schema: {
      properties: {
        pictureUrl: {
            type: 'string',
            uniforms: {
                component: MyCustomImageUploadField
            }
        }
      },
    },
  });

If you don't lazy load your form components, you might increase your bundle size.

create layout plugins

its also possible to create layout plugins:

import { createLayoutPlugin } from '@marty-editor/create-plugin-materialui';
1.2.16

3 years ago

1.2.16-alpha.4

3 years ago

1.2.16-alpha.3

3 years ago

1.2.16-alpha.2

3 years ago

1.2.16-alpha.0

3 years ago

1.2.16-alpha.1

3 years ago

1.2.15

4 years ago

1.2.15-alpha.2

4 years ago

1.2.13

4 years ago

1.2.14

4 years ago

1.2.12

4 years ago

1.2.12-alpha-1.0

4 years ago

1.2.12-alpha.0

4 years ago

1.2.11

4 years ago

1.2.10

4 years ago

1.2.9

4 years ago

1.2.9-alpha.1

4 years ago

1.2.8

4 years ago

1.2.9-alpha.0

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.6-alpha.2

4 years ago

1.2.6-alpha.1

4 years ago

1.2.6-alpha.0

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3-alpha.0

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.2-alpha.1

4 years ago

1.2.2-alpha.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.2.0-alpha.8

4 years ago

1.2.0-alpha.9

4 years ago

1.2.0-alpha.7

4 years ago

1.2.0-alpha.10

4 years ago

1.2.0-alpha.12

4 years ago

1.2.0-alpha.6

4 years ago

1.2.0-alpha.4

4 years ago

1.2.0-alpha.3

4 years ago

1.2.0-alpha.2

4 years ago

1.1.18-alpha.5

4 years ago

1.2.0-alpha.0

4 years ago

1.2.0-alpha.1

4 years ago

1.1.18-alpha.0

4 years ago

1.1.16

4 years ago

1.1.17

4 years ago

1.1.13

4 years ago

1.1.13-alpha.1

4 years ago

1.1.13-alpha.0

4 years ago

1.1.12

4 years ago

1.1.12-alpha.1

4 years ago

1.1.12-alpha.0

4 years ago

1.1.11

4 years ago

1.1.11-alpha.0

4 years ago

1.1.10

4 years ago

1.1.10-alpha.1

4 years ago

1.1.10-alpha.0

4 years ago

1.1.9-alpha.0

4 years ago

1.1.9

4 years ago

1.1.8-alpha.2

4 years ago

1.1.8

4 years ago

1.1.8-alpha.1

4 years ago

1.1.8-alpha.0

4 years ago

1.1.7

4 years ago

1.1.7-alpha.0

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.1.2

4 years ago

1.1.3-alpha.0

4 years ago

1.0.1

4 years ago

1.0.1-alpha.27

4 years ago

1.0.1-alpha.25

4 years ago

1.0.1-alpha.24

4 years ago

1.0.1-alpha.23

4 years ago

1.0.1-alpha.22

4 years ago

1.0.1-alpha.21

4 years ago

1.0.1-alpha.20

4 years ago

1.0.1-alpha.18

4 years ago

1.0.1-alpha.17

4 years ago

1.0.1-alpha.16

4 years ago

1.0.1-alpha.15

4 years ago

1.0.1-alpha.14

4 years ago

1.0.1-alpha.13

4 years ago

1.0.1-alpha.12

4 years ago

1.0.1-alpha.11

4 years ago

1.0.1-alpha.10

4 years ago

1.0.1-alpha.9

4 years ago

1.0.1-alpha.8

4 years ago

1.0.1-alpha.7

4 years ago

1.0.1-alpha.6

4 years ago

1.0.1-alpha.5

4 years ago

1.0.1-alpha.4

4 years ago

1.0.1-alpha.3

5 years ago

1.0.1-alpha.2

5 years ago

1.0.1-alpha.1

5 years ago

1.0.0

5 years ago

1.0.0-beta.0

5 years ago

0.0.3-beta.0

5 years ago

0.0.2-beta.0

5 years ago