UNPKG

trc-client-core

Version:
46 lines (42 loc) 1.49 kB
import React from 'react'; import Select from 'trc-client-core/src/components/Select'; import moment from 'moment'; var SoItemSelect = React.createClass({ displayName: 'SoItemSelect', propTypes: { onChange: React.PropTypes.func, soData: React.PropTypes.object.isRequired, // Immutable currentEnrollment: React.PropTypes.object // Immutable }, getOptionShape(item) { var soStartDate = moment(new Date(item.get('soStartDate'))).format("DD MMM YYYY, ddd hh:mm a"); var remainingPlaces = item.get('soMaximumEnrolment') - item.get('soNoParticipants'); return { value: item.get('soId'), disabled: remainingPlaces < 1 || this.getIsEnrolled(item), label: `${soStartDate} - ${item.get('facility')} - ${remainingPlaces} spots left` }; }, getIsEnrolled(item) { if(this.props.currentEnrollment) { return item.get('soId') === this.props.currentEnrollment.get('soId'); } return false; }, onChange(ee, details) { if(this.props.onChange) { this.props.onChange(ee, details); } }, render() { return <Select name="soId" placeholder="Sessions" onChange={this.onChange} value={this.props.value} options={this.props.soData.map(this.getOptionShape).toList().toJS()} clearable={false} />; } }); module.exports = SoItemSelect;