0.1.7 • Published 8 years ago
react-form-layout v0.1.7
react-form-layout
A form layout generator for your React components.
Using bootstrap css layout by default, and custom rendering is also allowed. (e.g. section, column, field, etc)
Create <Form />
create(Field, inputPropsLookupFn, fullLayoutFn, shortLayoutFn, buttons)
Argument | Type | Example |
---|---|---|
Field | Component | <Field name="primary" type="email" /> |
inputPropsLookupFn | function:object | (name) => {primary: {type: 'email' }}[name] |
fullLayoutFn | function:ReactElement | refer to __tests__/ for usage |
shortLayoutFn | function:ReactElement | refer to __tests__/ for usage |
buttons | ReactElement | <input type="submit" /> |
Example Usage
let Field = class extends React.Component { render () { return <input {...this.props} />; } }, inputPropsLookupFn = (n) => { return {name: {type: 'text'}}n; }, fullLayoutFn = (builder, props) => { let {layout, section, col} = builder; return layout(props, section("Personal details", col(12, 'name') ) ); }, shortLayoutFn = fullLayoutFn, buttons = ;
let Form = create(Field, inputPropsLookupFn, fullLayoutFn, shortLayoutFn, buttons);
// <Form {...this.props} />
Configuration Props
Prop | Type | Description |
---|---|---|
renderLayout | function:ReactElement | overriding render fn for root/layout |
renderSection | function:ReactElement | overriding render fn for section |
renderCol | function:ReactElement | overriding render fn for column |
renderField | function:ReactElement | overriding render fn for field |
renderHidden | function:ReactElement | overriding render fn for hidden field |
showAll | boolean | determine fulllayout/shortLayout |
defaultValues | object | initial values for the form fiels |
Helper functions
Input props lookup function
inputPropsLookup(fields, fieldName)
Argument | Type | Example |
---|---|---|
fields | object | {name: {type: 'text'}, email: {type: 'email'}} |
fieldName | string | name , email[0] , email[1] |
Input values lookup function
inputValuesLookup(values, fieldName)
Argument | Type | Example |
---|---|---|
values | object | {address: [ {zip: '55555'} ]} |
fieldName | string | address[0][zip] |
Form input serialization function
formInputsSerialize(form)
Argument | Type | Example |
---|---|---|
form | DOMNode | ReactDOM.findDOMNode(this.refs.form) |
License
MIT