zubair-react-form-builder
zubair-react-form-builder copied to clipboard
React Form Builder
Zubair React From Builder
Zubair React Form Builder help you to build forms with drag and drop you can also inject your own component.
Installation
npm i zubair-react-form-builder
import { FormContainer, ToolBox } from 'zubair-react-form-builder';


FormContainer Props
- custom : Array
- onSave(form) : Function
- updateForm(callback) : Function
- updateOnMount : Boolean
- debug : Boolean
- loader: Boolean // set save button on loading state
// Note OnSave Props also turn on Save Button on <FormContainer />
ToolBox Props
- custom : Array
Example
You can pass custom components to the form builder
const myCustoms = [
{
container : < ContainerComponent/>,
preview : < PreviewComponent/>,
toolbox : {
title : 'Component',
icon : 'fa fa-user',
name : 'CUSTOM_COM'
},
states : {
toolType: 'CUSTOM_COM',
num1 : 1,
num2 : 2
}
}
]
class App extends React.Component {
render(){
/* Simply pass myCustoms to */
<div className="app"/>
<div className="row"/>
<div className="col-8"/>
<FormContainer
debug={true} // turn on debuging mode
updateOnMount={true} // update on mount
updateForm={this.updateForm}
onSave={this.save}
custom={ myCustoms } />
</div>
<div className="col-8"/>
< ToolBox custom={ myCustoms } />
</div>
</div/>
</div/>
}
save(form){
// you will receive form
console.log(form);
}
updateForm(callback){
// fetch form and set it to callback
let form = axios.......
callback(form)
}
}
Required Props Methods Of Custom Component
-
this.props.changeState(state, this.props.index)
-
this.props.removeField(index)
Example Props Methods
// on change state
changeValue(stateFor, value){
switch (stateFor){
case "TITLE" :
this.setState( { title : value } )
break;
default:
return;
};
setTimeout(() => {
return this.props.changeState(this.state, this.props.index);
}, 0)
}
this.changeValue('TITLE', e.target.value)} />
// on remove field
this.props.removeField(this.props.index)}>x