import React, { useState, useEffect } from 'react'; import { Row, Skeleton, Empty, Typography } 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"; export default function HardwareInfo() { const [hardwareStatus, setHardwareStatus] = useState({ cpu: 0, memory: 0, disk: 0, 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 (
cpu:[], disk: [], memory: []; value = %age.
the times should be the same for each, though milliseconds differ