0.1.57 • Published 6 months ago

@moller/sanity-plugin-mime v0.1.57

Weekly downloads
-
License
BSD-3-Clause
Repository
-
Last release
6 months ago

@moller/sanity-plugin-mime

This is a Sanity Studio v3 plugin.

Installation

npm i @moller/sanity-plugin-mime

Usage

Add mimePlugin() to the plugin array in sanity.config.ts (or .js):

import { mimePlugin } from '@moller/sanity-plugin-mime';
import { contactForm, metadata, selectFieldsConfig } from 'mimeprops';

export default defineConfig({
    //...
    plugins: [
        mimePlugin({
            forms: [contactForm],
            selectFieldsConfig: selectFieldsConfig,
            metadata: metadata,
        }),
    ],
});

Example Props for Mime plugin

Configure Forms

This input renders one form template with the basic fields firstname, lastname, email and phone number. In addition the unique fields select:dealership and text: message to dealership.

export const contactForm = {
    name: 'contactForms',
    title: 'Contact forms',
    formFields: [
        {
            _type: 'areacodes',
            type: 'select',
            label: 'Area Code',
            options: 'areacodes',
            required: true,
        },
        {
            _type: 'formField',
            type: 'text',
            label: 'Message',
        },
    ],
};

Configure Select Fields

In order to use the select field dealership, it has to be configured in selectFieldConfig

export const selectFieldsConfig = [
    {
        fieldName: 'areacodes',
        title: 'Area Code',
        endpoint: 'areacodes',
        options: [
            {
                name: 'parameter1',
                title: 'Parameter 1',
                optionlist: [
                    { title: 'X', value: '1' },
                    { title: 'Y', value: '2' },
                ],
            },
            {
                name: 'parameter2',
                title: 'Parameter 2',
                optionlist: [
                    { title: 'A', value: '3' },
                    { title: 'B', value: '4' },
                ],
            },
        ],
    },
];

Configure Metadata

Metadata contain all data which has to be included in the form, but not rendered as a input field. Metadata has three different types readOnly, options and toggle. Note the toggle has the option to display follow up options.

export const metadata = {
    readOnlyFields: [
        {
            name: 'postUrl',
            title: 'Post URL',
            initialValue: 'https://example.com/newform',
        },
    ],
    optionFields: [
        {
            name: 'language',
            title: 'Language',
            optionlist: [
                { title: 'English', value: 'english' },
                { title: 'French', value: 'french' },
            ],
        },
    ],
    toggleFields: [
        {
            name: 'sendConfirmationMail',
            title: 'Send Confirmation Mail',
            followUpOptions: {
                name: 'confirmationTemplate',
                title: 'Confirmation Mail Template',
                emptyFieldErrorMessage: 'Select Template',
                options: [
                    { title: 'SuccessTemplate', value: 'SuccessTemplate' },
                    {
                        title: 'SomethingwrongTemplate',
                        value: 'SomethingwrongTemplate',
                    },
                ],
            },
        },
    ],
    customFields: [],
};

License

BSD 3-Clause "New" or "Revised" © Bekk

Develop & test

This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.

See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.

0.1.57

6 months ago

0.1.56

6 months ago

0.1.55

6 months ago

0.1.54

7 months ago

0.1.53

7 months ago

0.1.0

7 months ago