src/screens/semester-detail.js
import React, {PropTypes} from 'react'
import cx from 'classnames'
import {State} from 'react-router'
import Immutable from 'immutable'
import DocumentTitle from 'react-document-title'
import isCurrentSemester from '../helpers/is-current-semester'
import semesterName from '../helpers/semester-name'
import Student from '../models/student'
import './semester-detail.scss'
let SemesterDetail = React.createClass({
propTypes: {
className: PropTypes.string,
student: PropTypes.instanceOf(Student).isRequired,
},
mixins: [State],
getInitialState() {
return {
year: null,
semester: null,
schedules: Immutable.List(),
}
},
render() {
// console.log('SemesterDetail#render')
const {year, semester} = this.getParams()
const schedules = this.props.student.schedules
.filter(isCurrentSemester(year, semester))
.map(sched => sched.toMap())
.map(sched => sched.delete('_courseData'))
.toJS()
return (
<DocumentTitle title={`${semesterName(semester)} ${year} • ${this.props.student.name} | Gobbldygook`}>
<div className={cx('semester-detail', this.props.className)}>
<pre>
{this.getPath()}{'\n'}
{JSON.stringify(schedules, null, 2)}
</pre>
</div>
</DocumentTitle>
)
},
})
export default SemesterDetail