react-form-builder-sl
v1.3.0
Published
`
Readme
`
React Form Builder
A complete form builder for react that takes a schema and generate form with fields and validations and takes care of all the state management and form submissions:
Example:
import { FormBuilder, Schema } from "react-form-builder-sl";
import "react-form-builder-sl/dist/index.css";
function App() {
const schema: Schema = {
fields: [
{
name: "email",
type: "input",
label: "Email",
inputProps: {
type: "email",
},
validations: {
required: true,
isEmail: true,
},
},
{
name: "password",
type: "input",
label: "Password",
inputProps: {
type: "password",
},
validations: {
required: true,
min: 8,
max: 16,
},
},
],
};
return (
<div className="App">
<header className="App-header">
<FormBuilder
schema={schema}
onSubmit={(values) => console.log(values)}
/>
</header>
</div>
);
}
export default App;FormBuilderProps
schema: The schema of the form with the information about the fields and their validationsformContainerStyles: Styles for the form formContainerStylessubmitButtontext: Text for the submit submit button. Default is 'Submit'\
Schema
fields: Fields[] - An array of all the fields in the form following the Field interface.
Field
name: string - Name of the Fieldtype: "input" | "textarea" | "dropdown" | "checkbox" | "radio" - Type of the FieldinitialValue?: string | number | boolean - Initial value of the fieldlabel?: string - Label of the fieldvalidations?: FieldValidations - Validations to apply to the field. Should follow the FieldValidations interface.inputProps?: InputHTMLAttributes<HTMLInputElement> - Props to supply to the input element of this field.\
FieldValidations
isString: boolean - true if the field should be a stringisNumber: boolean - true if the field should be a numberisEmail: boolean - true if the field should be a emailrequired: boolean - true if the field should be a requiedmin: number - Minimum value/length of the field. If field is string, validation will be applied to the length of the value. If the field is number, validation will be applied to the actual value.max: number - Maximum value/length of the field. If field is string, validation will be applied to the length of the value. If the field is number, validation will be applied to the actual value.\
Contribution Guide
Clone the repository
git clone https://github.com/ahsansheikh94/react-form-builder.gitInstall dependencies
pnpm installCheckout to your branch
git checkout -b <your_branch_name>Make your changes
Create a changeset and add change log by running:
pnpm changesetFinalize changelog and increment version by running:
pnpm changeset versionPush your changes
git add .
git commit -m"<something amazing>"
git push- Submit a PR
##Thank you!
