import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import Axios from 'axios'; import { Container, Row, Table, Col, Collapse, Button } from 'react-bootstrap'; export default class TestsTable extends Component { constructor(props) { super(props) this.state = { page: 1, lastPage: 1, data: [], showTable: false, } } componentDidMount() { this.getData(); } getData = (page = this.state.page) => { var url = 'api/speedtest/?page=' + page; Axios.get(url) .then((resp) => { var data = resp.data.data.data; 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, }); }) .catch((err) => { console.log(err); }) } getMoreData = () => { var page = this.state.page; page = page + 1; this.getData(page); } 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; if(data.length > 0) { return (

All tests

{(show) ? : }
{data.map((e,i) => { return ( ); })}
ID Time Download (Mbit/s) Upload (Mbit/s) Ping (ms)
{e.id} {new Date(e.created_at).toLocaleString()} {e.download} {e.upload} {e.ping}
{page < lastPage && }
); } else { return ( <> ) } } } if (document.getElementById('TestsTable')) { ReactDOM.render(, document.getElementById('TestsTable')); }