/
main.jsx
40 lines (34 loc) · 929 Bytes
/
main.jsx
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
40
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { Route } from 'react-router-dom';
import Loader from './loader';
import Header from './header';
export default class Main extends Component {
static childContextTypes = {
setVideo: PropTypes.func.isRequired,
};
static displayName = 'Main';
state = {
open: false,
videoUri: null,
};
getChildContext() {
return {
setVideo: this.setVideo,
};
}
setVideo = async ({ uri }) => new Promise((resolve) => {
this.setState({ videoUri: uri }, resolve);
})
render() {
return (
<div>
<Header open={this.state.open} videoUri={this.state.videoUri} />
<main>
<Route exact path="/" render={props => <Loader name="home" {...props} />} />
<Route path="/player/" render={props => <Loader name="player" {...props} />} />
</main>
</div>
);
}
}