Added auto-refresh on all tests table

This commit is contained in:
Henry Whitaker
2020-06-20 19:57:53 +01:00
parent 0027de2f4b
commit b8210e871f
6 changed files with 32 additions and 8 deletions

View File

@@ -13,26 +13,35 @@ export default class TestsTable extends Component {
lastPage: 1,
data: [],
showTable: false,
refresh: true,
interval: null
}
}
componentDidMount() {
this.getData();
var int = setInterval(this.getData, 10000);
this.setState({
interval: int
});
}
getData = (page = this.state.page) => {
getData = (page = this.state.page, refresh = true) => {
var url = 'api/speedtest/?page=' + page;
Axios.get(url)
.then((resp) => {
var data = resp.data.data.data;
data = this.state.data.concat(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) => {
@@ -44,7 +53,11 @@ export default class TestsTable extends Component {
var page = this.state.page;
page = page + 1;
this.getData(page);
if(this.state.refresh) {
clearInterval(this.state.interval);
}
this.getData(page, false);
}
toggleCollapse = () => {
@@ -66,6 +79,7 @@ export default class TestsTable extends Component {
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 (
@@ -80,6 +94,11 @@ export default class TestsTable extends Component {
<span className="ti-angle-down"></span>
}
</div>
{(show) &&
<div className="my-1">
<span className="text-muted">Auto refresh: {(refresh) ? 'On' : 'Off'}</span>
</div>
}
</Col>
</Row>
<Collapse in={show}>