0.0.5 • Published 10 months ago

react-mui-schematic-form v0.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

React MUI Schematic Form

Package to create dynamic forms through a schematic with MUI style sheet

Installation

npm install react-mui-schematic-form
# or
yarn add react-mui-schematic-form

Importing

import { DinamicForm } from 'react-mui-schematic-form';

Basic Usage

import React, { useState } from 'react';
import { DinamicForm } from 'react-mui-schematic-form';

const schema = [
  {
    value: 'name',
    label: 'Name',
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'textField',
  },
  {
    value: 'lastName',
    label: 'Last Name',
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'textField',
  },
  {
    value: 'username',
    label: 'Username',
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'textField',
  },
  {
    value: 'gender',
    label: 'Gender',
    control: ['Female', 'Male', 'Other'],
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'radioGroup',
    row: true,
  },
  {
    value: 'films',
    label: 'Films',
    options: ['The Shawshank Redemption', 'The Godfather', 'The Godfather: Part II', 'The Dark Knight'],
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'autocomplete',
  },
  {
    value: 'state',
    label: 'Active',
    required: true,
    gridSize: 12,
    gridSizeSmall: 12,
    gridSizeMedium: 6,
    type: 'switch',
    color: 'secondary',
    labelPlacement: 'end',
  },
];

const form = { name: '', lastName: '', username: '', gender: 'Female', films: '', state: false };

export default () => {
  const [formFields, setFormFields] = useState(form);

  const onChangeField = (index, field, value) => {
    setFormFields({
      ...formFields,
      [field]: value,
    });
  };

  const handleSubmit = (e) => {
    e.preventDefault();
    // Handle form submission here
  };

  return (
    <>
      <DinamicForm
        schema={schema}
        handleSubmit={handleSubmit}
        handleFieldChange={onChangeField}
        formData={formFields}
        setFormFields={setFormFields}
        submitButtonText="Save"
        cancelButtonText="Cancel"
        showCancelButton
      />
    </>
  );
};

alt text

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

11.0.81

10 months ago

11.0.80

10 months ago

11.0.79

10 months ago

11.0.78

10 months ago

11.0.77

11 months ago

11.0.76

11 months ago

11.0.75

11 months ago

11.0.74

11 months ago

11.0.73

11 months ago

11.0.72

11 months ago

11.0.71

11 months ago

11.0.70

11 months ago

11.0.69

11 months ago

11.0.68

11 months ago

11.0.67

11 months ago

11.0.66

11 months ago

11.0.65

11 months ago

11.0.64

11 months ago

11.0.63

11 months ago

11.0.62

11 months ago

11.0.61

11 months ago

11.0.60

11 months ago

11.0.59

11 months ago

11.0.58

11 months ago

11.0.57

11 months ago

11.0.56

11 months ago

11.0.55

11 months ago

11.0.54

11 months ago

11.0.53

11 months ago

11.0.52

11 months ago

11.0.51

11 months ago

11.0.50

11 months ago

11.0.49

11 months ago

11.0.48

11 months ago

11.0.47

11 months ago

11.0.46

11 months ago

11.0.45

11 months ago

11.0.44

11 months ago

11.0.43

11 months ago

11.0.42

11 months ago

11.0.41

11 months ago

11.0.40

11 months ago

11.0.39

11 months ago

11.0.38

11 months ago

11.0.37

11 months ago

11.0.36

11 months ago

11.0.35

11 months ago

11.0.34

11 months ago

11.0.33

11 months ago

11.0.32

11 months ago

11.0.31

11 months ago

11.0.30

11 months ago

11.0.29

11 months ago

11.0.28

11 months ago

11.0.27

11 months ago

11.0.26

11 months ago

11.0.25

11 months ago

11.0.24

11 months ago

11.0.23

11 months ago

11.0.22

11 months ago

11.0.21

11 months ago

11.0.20

11 months ago

11.0.19

11 months ago

11.0.18

11 months ago

11.0.17

11 months ago

11.0.16

11 months ago

11.0.15

11 months ago

11.0.14

11 months ago

11.0.13

11 months ago

11.0.12

11 months ago

11.0.11

11 months ago

11.0.10

11 months ago

11.0.9

11 months ago

11.0.8

11 months ago

11.0.7

11 months ago

11.0.6

11 months ago

11.0.5

11 months ago

11.0.4

11 months ago

11.0.3

11 months ago

11.0.2

11 months ago

11.0.1

11 months ago

11.0.0

11 months ago

10.0.0

11 months ago

9.0.0

11 months ago

8.0.0

11 months ago

7.0.0

11 months ago

6.0.0

11 months ago

5.0.0

11 months ago

4.0.0

11 months ago

3.0.0

11 months ago

2.0.0

11 months ago

1.0.0

11 months ago

0.0.1

11 months ago