import React from 'react'; import './App.scss'; import UserStatsMockService from "./mock/UserStatsMockService"; import UserStats from "./models/TableEntry"; import UserStatsService from "./services/UserStatsService"; import {findDOMNode} from "react-dom"; interface State { error?: any, isLoaded: boolean, users?: UserStats[], mock?: UserStats[] } export default class App extends React.Component { private apiService: UserStatsService = new UserStatsService(); private mockService: UserStatsService = new UserStatsMockService(); state: State = { error: null, isLoaded: false, users: undefined, mock: undefined } componentDidMount() { this.setState({isLoaded: false}) this.mockService.getStats() .then(data => this.setState({mock: data})); this.apiService.getStats() .then(data => this.setState({ isLoaded: true, users: data })) .catch(error => this.setState({ isLoaded: true, error: error })); } componentDidUpdate() { const element = findDOMNode(this); if (element != null) { window.scrollTo(0, 0); } } renderTableData() { const { error, isLoaded, users, mock } = this.state; console.log(`${users} + ${isLoaded} + ${error}`) if (users != null && isLoaded && error == null) { return users.map((entry, index) => { const placement = index + 1; const placementClassName = placement === 1 ? "first-place" : (placement === 2 ? "second-place" : (placement === 3 ? "third-place" : undefined)) return ( {placement} {entry.name} {entry.onlineTime} ) }); } else if (isLoaded && error != null && mock != null) { return mock.map((entry, index) => { const placement = index + 1; const placementClassName = placement === 1 ? "first-place" : (placement === 2 ? "second-place" : (placement === 3 ? "third-place" : undefined)) return ( {placement} {entry.name} {entry.onlineTime} ) }); } } render() { return (

Humenius' TeamSpeak 3-Ranking

{this.renderTableData()}
Placement Name Online time
); } } // const App = () => { // return ( //
// // // // // // // // // // // // // // // // // // // // // // // // // // //
PlacementNameOnline time
1Humen0d 1h 0m 0m
2Humen0d 1h 0m 0m
3Humen0d 1h 0m 0m
4Humen0d 1h 0m 0m
//
// ); // } // function App() { // return ( //
// // // // // // // // // // // // // // // // // // // // // // // // // // //
PlacementNameOnline time
1Humen0d 1h 0m 0m
2Humen0d 1h 0m 0m
3Humen0d 1h 0m 0m
4Humen0d 1h 0m 0m
//
// ); // } // export default App;