import dayjs from "dayjs"; import { useEffect, useRef, useState } from "react"; import { Box, Button, Paper, Typography } from "@mui/material"; import { Virtuoso } from "react-virtuoso"; import LogItem from "../components/log-item"; import services from "../services"; let logCache: any[] = []; const LogPage = () => { const [logData, setLogData] = useState(logCache); useEffect(() => { const sourcePromise = services.getLogs((t) => { const time = dayjs().format("MM-DD HH:mm:ss"); const item = { ...t, time }; setLogData((l) => (logCache = [...l, item])); }); return () => { sourcePromise.then((src) => src.cancel("cancel")); }; }, []); return ( Logs { return ( {logItem.time} {logItem.type} {logItem.payload} ); }} followOutput={"smooth"} /> ); }; export default LogPage;