1.2.16 • Published 5 years ago

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

Weekly downloads
115
License
GNU Lesser Genera...
Repository
-
Last release
5 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

5 years ago

1.2.16-alpha.4

5 years ago

1.2.16-alpha.3

5 years ago

1.2.16-alpha.2

5 years ago

1.2.16-alpha.0

5 years ago

1.2.16-alpha.1

5 years ago

1.2.15

5 years ago

1.2.15-alpha.2

5 years ago

1.2.13

5 years ago

1.2.14

5 years ago

1.2.12

5 years ago

1.2.12-alpha-1.0

5 years ago

1.2.12-alpha.0

5 years ago

1.2.11

5 years ago

1.2.10

5 years ago

1.2.9

5 years ago

1.2.9-alpha.1

5 years ago

1.2.8

5 years ago

1.2.9-alpha.0

5 years ago

1.2.7

5 years ago

1.2.6

5 years ago

1.2.6-alpha.2

5 years ago

1.2.6-alpha.1

5 years ago

1.2.6-alpha.0

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3-alpha.0

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.2-alpha.1

5 years ago

1.2.2-alpha.0

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.2.0-alpha.8

5 years ago

1.2.0-alpha.9

5 years ago

1.2.0-alpha.7

5 years ago

1.2.0-alpha.10

5 years ago

1.2.0-alpha.12

5 years ago

1.2.0-alpha.6

5 years ago

1.2.0-alpha.4

5 years ago

1.2.0-alpha.3

5 years ago

1.2.0-alpha.2

5 years ago

1.1.18-alpha.5

5 years ago

1.2.0-alpha.0

5 years ago

1.2.0-alpha.1

5 years ago

1.1.18-alpha.0

5 years ago

1.1.16

5 years ago

1.1.17

5 years ago

1.1.13

5 years ago

1.1.13-alpha.1

5 years ago

1.1.13-alpha.0

5 years ago

1.1.12

5 years ago

1.1.12-alpha.1

5 years ago

1.1.12-alpha.0

5 years ago

1.1.11

5 years ago

1.1.11-alpha.0

5 years ago

1.1.10

5 years ago

1.1.10-alpha.1

5 years ago

1.1.10-alpha.0

5 years ago

1.1.9-alpha.0

5 years ago

1.1.9

5 years ago

1.1.8-alpha.2

5 years ago

1.1.8

5 years ago

1.1.8-alpha.1

5 years ago

1.1.8-alpha.0

5 years ago

1.1.7

5 years ago

1.1.7-alpha.0

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.1.2

5 years ago

1.1.3-alpha.0

5 years ago

1.0.1

5 years ago

1.0.1-alpha.27

5 years ago

1.0.1-alpha.25

5 years ago

1.0.1-alpha.24

5 years ago

1.0.1-alpha.23

5 years ago

1.0.1-alpha.22

5 years ago

1.0.1-alpha.21

5 years ago

1.0.1-alpha.20

5 years ago

1.0.1-alpha.18

5 years ago

1.0.1-alpha.17

5 years ago

1.0.1-alpha.16

5 years ago

1.0.1-alpha.15

5 years ago

1.0.1-alpha.14

5 years ago

1.0.1-alpha.13

5 years ago

1.0.1-alpha.12

5 years ago

1.0.1-alpha.11

5 years ago

1.0.1-alpha.10

5 years ago

1.0.1-alpha.9

5 years ago

1.0.1-alpha.8

5 years ago

1.0.1-alpha.7

5 years ago

1.0.1-alpha.6

5 years ago

1.0.1-alpha.5

5 years ago

1.0.1-alpha.4

6 years ago

1.0.1-alpha.3

6 years ago

1.0.1-alpha.2

6 years ago

1.0.1-alpha.1

6 years ago

1.0.0

6 years ago

1.0.0-beta.0

6 years ago

0.0.3-beta.0

6 years ago

0.0.2-beta.0

6 years ago