43 lines
856 B
JavaScript
43 lines
856 B
JavaScript
|
import React, { Children, PropTypes } from 'react';
|
||
|
|
||
|
class ProfessorContext extends React.Component {
|
||
|
constructor(props) {
|
||
|
super(props);
|
||
|
this.professor = props.professor;
|
||
|
}
|
||
|
static displayName = 'ProfessorContext';
|
||
|
|
||
|
static propTypes = {
|
||
|
professor: PropTypes.object,
|
||
|
children: PropTypes.element.isRequired
|
||
|
};
|
||
|
|
||
|
static childContextTypes = {
|
||
|
professor: PropTypes.object
|
||
|
};
|
||
|
|
||
|
getChildContext() {
|
||
|
return { professor: this.professor };
|
||
|
}
|
||
|
|
||
|
render() {
|
||
|
return Children.only(this.props.children);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* eslint-disable react/display-name, react/prop-types */
|
||
|
ProfessorContext.wrap = function wrap(Component, professor) {
|
||
|
const props = {};
|
||
|
if (professor) {
|
||
|
props.professor = professor;
|
||
|
}
|
||
|
|
||
|
return React.createElement(
|
||
|
ProfessorContext,
|
||
|
props,
|
||
|
Component
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default ProfessorContext;
|