Skip to content

Commit eb4414f

Browse files
author
jonisaa
committed
#15 added support for load data to LookUp component
1 parent 596a417 commit eb4414f

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/components/fieldComponents/Lookup.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
import React, { Component, PropTypes } from 'react';
22
import FormGroup from '../FormGroup';
3-
import Select from 'react-select';
3+
import ReSelect from 'react-select';
44

55
class Lookup extends Component {
6+
fetchItems = () => {
7+
const { options } = this.props;
8+
9+
return fetch(options.url)
10+
.then(response => response.json())
11+
.then(json => {
12+
return { options: json }
13+
});
14+
};
15+
616
render() {
7-
let { value, name, displayName, help, error, touched, onChange, onBlur, options, fieldLayout} = this.props;
8-
let selectProps = { options, value, name, onChange, onBlur: (event) => onBlur() };
17+
let { value, name, displayName, help, error, touched, onChange, onBlur, options, fieldLayout } = this.props;
918
let formGroupProps = { error, touched, displayName, name, help, fieldLayout};
19+
let selectProps;
20+
21+
if (!options.url && Array.isArray(options)) {
22+
selectProps = { options, value, name, onChange, onBlur: (event) => onBlur() };
23+
} else {
24+
selectProps = { value, name, onChange, onBlur: (event) => onBlur(), loadOptions: this.fetchItems, valueKey: options.value? options.value : 'value', labelKey: options.label? options.label : 'label' }
25+
}
1026

1127
return (
1228
<FormGroup {...formGroupProps}>
13-
<Select {...selectProps}/>
29+
<ReSelect.Async {...selectProps}/>
1430
</FormGroup>
1531
)
1632
}

0 commit comments

Comments
 (0)