forked from rage/java-programming
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOnlyForCourseVariant.js
More file actions
39 lines (35 loc) · 976 Bytes
/
OnlyForCourseVariant.js
File metadata and controls
39 lines (35 loc) · 976 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import React, { Component } from "react"
import withSimpleErrorBoundary from "../util/withSimpleErrorBoundary"
import { getCourseVariant, loggedIn } from "../services/moocfi"
import LoginStateContext from "../contexes/LoginStateContext"
class OnlyForCourseVariant extends Component {
static contextType = LoginStateContext
state = {
render: false,
}
async componentDidMount() {
this.setState({
render: true,
})
if (!(await loggedIn())) {
return
}
const variant = await getCourseVariant()
this.setState({
currentCourseVariant: variant,
})
}
render() {
if (!this.state.render && !this.state.currentCourseVariant) {
return <div>Loading...</div>
}
if (!this.context.loggedIn) {
return <div />
}
if (this.props.variant === this.state.currentCourseVariant) {
return this.props.children
}
return <div />
}
}
export default withSimpleErrorBoundary(OnlyForCourseVariant)