[](https://www.npmjs.com/package/zubair-react-form-builder) [](https://www.np
npm install zubair-react-form-builder

npm i zubair-react-form-builder
import { FormContainer, ToolBox } from 'zubair-react-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)
}
}
// 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)
}
value={this.state.value}
onChange={(e) => this.changeValue('TITLE', e.target.value)} />
// on remove field
className='pull-right cross'
onClick={() => this.props.removeField(this.props.index)}>x