/* eslint-disable no-array-constructor */ import React, { useState, useEffect } from 'react'; import { Row } from "antd"; import {LaptopOutlined, BulbOutlined, SaveOutlined} from "@ant-design/icons" import { HARDWARE_STATS, fetchData, FETCH_INTERVAL } from '../utils/apis'; import Chart from './components/chart'; import StatisticItem from "./components/statistic"; interface TimedValue { time: Date, value: Number } export default function HardwareInfo() { const [hardwareStatus, setHardwareStatus] = useState({ cpu: Array(), memory: Array(), disk: Array(), message: "", }); const getHardwareStatus = async () => { try { const result = await fetchData(HARDWARE_STATS); setHardwareStatus({ ...result }); } catch (error) { setHardwareStatus({ ...hardwareStatus, message: error.message }); } }; useEffect(() => { let getStatusIntervalId = null; getHardwareStatus(); getStatusIntervalId = setInterval(getHardwareStatus, FETCH_INTERVAL); // runs every 1 min. // returned function will be called on component unmount return () => { clearInterval(getStatusIntervalId); } }, []); if (!hardwareStatus.cpu) { return null; } const currentCPUUsage = hardwareStatus.cpu[hardwareStatus.cpu.length - 1]?.value; const currentRamUsage = hardwareStatus.memory[hardwareStatus.memory.length - 1]?.value; const currentDiskUsage = hardwareStatus.disk[hardwareStatus.disk.length - 1]?.value; const series = [ { name: "CPU", color: "#FF7700", data: hardwareStatus.cpu, }, { name: "Memory", color: "#004777", data: hardwareStatus.memory, }, { name: "Disk", color: "#A9E190", data: hardwareStatus.disk, }, ]; return (

Hardware Info

} /> } /> } />

cpu:[], disk: [], memory: []; value = %age.

the times should be the same for each, though milliseconds differ

{JSON.stringify(hardwareStatus)}
); }