1.0.30 • Published 1 year ago

z-quick-forms v1.0.30

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Z quick forms

Dynamic forms made from config

Usage Basic example:

 <FormEngine
        Submit={({ data }) => {
          return <div onClick={() => console.log(data)}>Submit</div>;
        }}
        config={[
          {
            question: "What is your name",
            name: "name",
            type: "text",
          },
          {
            question: "Your birthday",
            name: "birthday",
            type: "date",
          },
        ]}
      />

Conditional render on non null fields 1. option

 <FormEngine
        Submit={({ data }) => {
          return <div onClick={() => console.log(data)}>Submit</div>;
        }}
        config={[
          {
            question: "What is your name",
            name: "name",
            type: "text",
          },
          {
            question: "Your birthday",
            name: "birthday",
            type: "date",
            parent: "name",
          },
        ]}
      />

2.option <FormEngine Submit={({ data }) => { return <div onClick={() => console.log(data)}>Submit; }} config={[ { question: "What is your name", name: "name", type: "text", additionalInputs: { question: "Your birthday", name: "birthday", type: "date", }, , }, ]} /> Conditional render based on specific values 1. option

<FormEngine
        Submit={({ data }) => {
          return <div onClick={() => console.log(data)}>Submit</div>;
        }}
        config={[
          {
            question: "What is your name",
            name: "name",
            type: "text",
            additionalInputs: [
              {
                question: "Your birthday",
                name: "birthday",
                type: "date",
                displayCondition: (val) => val === "John",
              },
            ],
          },
        ]}
      />
  1. option
   <FormEngine
        Submit={({ data }) => {
          return <div onClick={() => console.log(data)}>Submit</div>;
        }}
        config={[
          {
            question: "What is your name",
            name: "name",
            type: "text",
          },
          {
            question: "Your birthday",
            name: "birthday",
            type: "date",
            displayCondition: (val) => val === "John",
            parent: "name",
          },
        ]}
      />

Error handling

 {
            question: "What is your name",
            name: "name",
            type: "text",
            customValidator: (value, values, setError) => {
              if (value !== "John") {
                setError("Invalid name");
                return true;
              }
              return false;
            },
          },

Accessing form data

 customValidator: (value, values, setError) => {
              if (value !== "John") {
                setError("Invalid name");
                return true;
              }
              return false;
            },
          },

Object values contains all answers and you can access them like on any other object. (ex: values"name", values.name)

Styling You can pass inline styling

            style: { backgroundColor: "red" },

Or you can pass className (works best with tailwind)

NOTE Nesting has no limits on depth

1.0.19

1 year ago

1.0.2

1 year ago

1.0.18

1 year ago

1.0.1

1 year ago

1.0.17

1 year ago

1.0.0

1 year ago

1.0.16

1 year ago

0.1.15

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.30

1 year ago

0.1.20

1 year ago

0.1.21

1 year ago

1.0.11

1 year ago

0.1.16

1 year ago

1.0.10

1 year ago

0.1.17

1 year ago

0.1.18

1 year ago

0.1.19

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

0.1.14

1 year ago

0.1.13

1 year ago

0.1.12

1 year ago

0.1.11

1 year ago

0.1.10

1 year ago

0.1.9

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago