2019-08-06 10:09:10 +02:00
|
|
|
import React from 'react';
|
2019-08-06 14:04:27 +02:00
|
|
|
import ModalBox from './ModalBox.js';
|
2019-08-06 10:09:10 +02:00
|
|
|
import './App.css';
|
|
|
|
|
|
|
|
|
2019-08-06 14:04:27 +02:00
|
|
|
const Empty = <ModalBox title="Movements" data=<h3>Empty</h3> />;
|
|
|
|
const Error = <ModalBox title="Movements" data=<h3>Error</h3> />;
|
2019-08-06 10:09:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
class MovementsPage extends React.Component {
|
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
|
|
|
this.state = {loggedIn: props.loggedIn, movements: []};
|
|
|
|
}
|
|
|
|
|
|
|
|
componentDidMount() {
|
|
|
|
fetch(this.props.targetUrl + '/movements', {credentials: 'include'})
|
|
|
|
.then(response => response.json())
|
|
|
|
.then(data => this.setState({movements: data.movements, loggedIn: data.logged_in}))
|
|
|
|
.catch(error => {console.log(error); this.setState({error: true})});
|
|
|
|
}
|
|
|
|
|
|
|
|
componentWillUnmount() {
|
|
|
|
this.setState({error: false, movements: []});
|
|
|
|
}
|
|
|
|
|
|
|
|
handleTable() {
|
2019-08-06 14:04:27 +02:00
|
|
|
if (this.state.movements !== undefined) {
|
2019-08-06 10:09:10 +02:00
|
|
|
return <ul>{this.state.movements.map(movs => <li key={movs.time}>{movs.time} - {movs.type}</li>)}</ul>;
|
|
|
|
} else {
|
|
|
|
return Empty;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
2019-08-06 14:04:27 +02:00
|
|
|
const movements = <ModalBox title="Movements" data={this.handleTable()} />;
|
2019-08-06 10:09:10 +02:00
|
|
|
|
|
|
|
if (this.state.error) {
|
|
|
|
return Error;
|
|
|
|
}
|
|
|
|
if (this.state.loggedIn) {
|
|
|
|
return movements;
|
|
|
|
} else {
|
2019-08-06 14:04:27 +02:00
|
|
|
return (<ModalBox title="Movements" data=<h2>You have to login first!</h2> />);
|
2019-08-06 10:09:10 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default MovementsPage;
|