import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import Axios from 'axios'; import { toast } from 'react-toastify'; import { Modal } from 'react-bootstrap'; export default class Version extends Component { constructor(props) { super(props) this.state = { version: document.querySelector('meta[name="version"]').content, update: false, modalShow: false, changelog: [], }; } componentDidMount() { this.checkForUpdates(); } checkForUpdates = () => { var url = '/api/update/check'; Axios.get(url) .then((resp) => { var update = resp.data.update; if(update !== false) { toast.info('A new version of Speedtest Tracker is available (v' + update.version + '). Go to the bottom of the page to update.'); this.setState({ update: update.version, changelog: update.changelog, }); } }) .catch((err) => { console.log(err); }); } showModal = () => { this.setState({ modalShow: true }); } hideModal = () => { this.setState({ modalShow: false }); } render() { var version = this.state.version; var update = this.state.update; var modalShow = this.state.modalShow; var changelog = this.state.changelog; if(update === false) { return (

Speedtest Tracker Version: {version}

); } else { return (

Speedtest Tracker Version: {version} -

New version available - v{update} Update to v{update}
Changelog:
    {changelog.map((e, i) => { if(e.link == '') { return (
  • {e.description}
  • ); } else {
  • {e.description}
  • } })}
); } } } if (document.getElementById('Version')) { ReactDOM.render(, document.getElementById('Version')); }