import React, { useEffect, useState } from "react"; import { Button, Grid, Link, Paper } from "@material-ui/core"; import CreateIcon from "@material-ui/icons/Create"; import api from "../../../services/grafanaAPI"; import { useStatusContext } from "../../Contexts/StatusContext"; import useStyles from "../../useStyles"; import ResponsiveIFrame from "../../Controls/ResponsiveIFrame"; import { logger } from "../../../services/monitoring"; const Datascope = () => { const classes = useStyles(); const { setTitle, setSitePath } = useStatusContext(); const REQUEST_INTERVAL = 10000; useEffect(() => { setTitle("Datascope"); setSitePath([]); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const [carsCount, setCarsCount] = useState(0); useEffect(() => { api .getCarsCount() .then((result) => setCarsCount(result)) .catch((error) => logger.warn(error.stack)); }, []); const [signalsCount, setSignalsCount] = useState("0"); useEffect(() => { storeSignals(); const id = setInterval(function () { storeSignals(); }, REQUEST_INTERVAL); return () => { clearInterval(id); }; }, []); const storeSignals = () => { api .getSignalsCount() .then((result) => { let num = result.toLocaleString(); setSignalsCount(num); }) .catch((error) => logger.warn(error.stack)); }; return (