import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import Axios from 'axios'; import { Container, Row, Table, Col, Collapse, Button } from 'react-bootstrap'; import TableRow from './TableRow'; export default class TestsTable extends Component { constructor(props) { super(props) this.state = { page: 1, lastPage: 1, data: [], showTable: false, refresh: true, interval: null } } componentDidMount() { this.getData(); var int = setInterval(this.getData, 10000); this.setState({ interval: int }); } componentWillUnmount() { clearInterval(this.state.interval); } getData = (page = this.state.page, refresh = true) => { var url = 'api/speedtest/?page=' + page; Axios.get(url) .then((resp) => { var data = resp.data.data.data; if(!refresh) { data = this.state.data.concat(data); } var page = resp.data.data.current_page; var lastPage = resp.data.data.last_page; this.setState({ data: data, page: page, lastPage: lastPage, refresh: refresh }); }) .catch((err) => { console.log(err); }) } getMoreData = () => { var page = this.state.page; page = page + 1; if(this.state.refresh) { clearInterval(this.state.interval); } this.getData(page, false); } toggleCollapse = () => { var show = this.state.showTable; if(show) { this.setState({ showTable: false }); } else { this.setState({ showTable: true }); } } render() { var page = this.state.page; var lastPage = this.state.lastPage; var data = this.state.data; var show = this.state.showTable; var refresh = this.state.refresh; if(data.length > 0) { return (

All tests

Auto refresh: {(refresh) ? 'On' : 'Off'}
{data.map((e,i) => { return ( ); })}
ID Time Download (Mbit/s) Upload (Mbit/s) Ping (ms) More
{page < lastPage && }
); } else { return ( <> ) } } } if (document.getElementById('TestsTable')) { ReactDOM.render(, document.getElementById('TestsTable')); }