core-resource-app-test
Version:
App that contains assets and scripts for the core apps
47 lines (39 loc) • 1.18 kB
JavaScript
import React from 'react';
import ListSelect from './ListSelect.component';
import { Observable } from 'rx';
import log from 'loglevel';
const ListSelectAsync = React.createClass({
propTypes: {
source: React.PropTypes.instanceOf(Observable),
onItemDoubleClick: React.PropTypes.func.isRequired,
listStyle: React.PropTypes.object,
},
getInitialState() {
return {
listSource: [],
};
},
componentWillMount() {
if (!this.props.source) {
return;
}
this.disposable = this.props.source
.subscribe(
(listValues) => this.setState({ listSource: listValues }),
(error) => log.error(error)
);
},
componentWillUnmount() {
this.disposable && this.disposable.dispose();
},
render() {
return (
<ListSelect {...this.props}
onItemDoubleClick={this.props.onItemDoubleClick}
source={this.state.listSource}
listStyle={this.props.listStyle}
/>
);
},
});
export default ListSelectAsync;