Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@indec/form-builder

Package Overview
Dependencies
Maintainers
2
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@indec/form-builder

Form builder

  • 1.7.1
  • npm
  • Socket score

Version published
Weekly downloads
9
Maintainers
2
Weekly downloads
 
Created
Source

FORM BUILDER 🚀

Glossary

  1. Set up
  2. Start
  3. Dependencies
  4. Components
  5. Tests
  6. Contributing

Set up

Install the package as dependency

$ npm install @indec/form-builder

Then you should use FormBuilder component

import {useState} from 'react';
import {FormBuilder} from '@indec/form-builder/lib/components';

function MyComponent({sections}) {
    const [page, setPage] = useState(0);
    const handleNext = values => {
        console.log(values); // here are the completed values of the form
        setPage(page + 1);
    }
    return (
        <FormBuilder
            onPrevious={() => setPage(page - 1)}
            page={page}
            section={sections[page]}
            isLastSection={sections.length - 1 === page}
            onSubmit={handleNext}
        />
    )
}

When you have a section with answers you can send the prop initialValues to the component FormBuilder to render those values.

import {useState} from 'react';
import {FormBuilder} from '@indec/form-builder/lib/components';

function MyComponent({sections}) {
    const [page, setPage] = useState(0);
    const handleNext = values => {
        console.log(values); // here are the completed values of the form
        setPage(page + 1);
    }
    return (
        <FormBuilder
            onPrevious={() => setPage(page - 1)}
            page={page}
            section={sections[page]}
            isLastSection={sections.length - 1 === page}
            onSubmit={handleNext}
            initialValues={{
              S1: [
                {
                  id: 1,
                  S1P1: {
                    id: 1,
                    answer: 'test'
                  },
                  S1P2: {
                    id: 2,
                    answer: 26
                  },
                  S1P3: {
                    id: 3,
                    answer: [
                      {
                        id: 1,
                        value: 123456
                      },
                      {
                        id: 2,
                        value: 12345678
                      }
                    ]
                  }
                }
              ]
            }}
          />
    )
}

If you want to change the default navigation button or change the header, pass to FormBuilder component the prop components

function SectionHeader() {
  return (
    <Box sx={{
      display: 'flex', justifyContent: 'center', backgroundColor: '#98b9ed', height: '100px'
    }}
    >
      <Typography>My custom header</Typography>
    </Box>
  );
}

function NavigationButtons() {
  return (
    <Box sx={{display: 'flex', justifyContent: 'space-between'}}>
      <Button variant="outlined">Go back</Button>
      <Button variant="outlined" color="error">Next</Button>
    </Box>
  );
}

function MyComponent({sections}) {
    const [page, setPage] = useState(0);
    const handleNext = values => {
        console.log(values); // here are the completed values of the form
        setPage(page + 1);
    }
    return (
        <FormBuilder
            onPrevious={() => setPage(page - 1)}
            page={page}
            section={sections[page]}
            isLastSection={sections.length - 1 === page}
            onSubmit={handleNext}
            components={{
                SectionHeader: props => <SectionHeader {...props} />,
                NavigationButtons: props => <NavigationButtons {...props} />
            }}
        />
    )
}

Start

To start storybook you must run the following command:

$ npm run storybook

Dependencies

These are the core dependencies you'll need to get acquainted yourself with:

Components

We use Storybook to build our UI components isolated of the application.

If you want to see our available components, please check it out here: Form Builder

Tests

To run the tests you must run the following command:

$ npm run test

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Keywords

FAQs

Package last updated on 19 Feb 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc