diff --git a/src/StatsTab.js b/src/StatsTab.js index 27a2dca..717ce5b 100644 --- a/src/StatsTab.js +++ b/src/StatsTab.js @@ -1,5 +1,7 @@ import React, { Component } from 'react'; import CardStats from './CardStats'; +import ServerBar from './serverBar'; + import { PageHeader, Panel} from 'react-bootstrap'; @@ -14,6 +16,7 @@ export default class StatsTab extends Component { componentDidMount = () => { this.getStats(); + this.getServerState(); } getStats = async () => { @@ -38,6 +41,29 @@ export default class StatsTab extends Component { }); } + getServerState = async () => { + let serverState; + const homeServer = this.props.server; + const accessToken = this.props.token; + + try { + const serverStateRequest = await fetch(homeServer+ '_matrix/client/r0/watcha_server_state', { + method: 'GET', + headers: { + 'Authorization': 'Bearer '+accessToken, + }, + }); + + serverState = JSON.parse(await serverStateRequest.text()); + } catch (e) { + console.log('error: ' + e); + return; + } + this.setState({ + serverState: serverState, + }); + } + render() { let membersData; @@ -45,6 +71,7 @@ export default class StatsTab extends Component { let bigRoomsData; let oneOnOneData; let activeRooms; + let serverState; const usersLines = []; const roomsLines = []; if (this.state.stats) { @@ -59,6 +86,14 @@ export default class StatsTab extends Component { {label: 'One on One', data: oneOnOneData}, {label: 'Inactive', data: bigRoomsData-activeRooms}); } + if (this.state.serverState) { + serverState = +