import { useEffect, useRef, useState } from "react"; import APIClient from "../api/APIClient"; type LogEvent = { time: string; level: string; message: string; }; export default function Logs() { const [logs, setLogs] = useState([]) const messagesEndRef: any = useRef(null) const scrollToBottom = () => { messagesEndRef.current?.scrollIntoView({ behavior: "auto" }) } useEffect(() => { const es = APIClient.events.logs() es.onmessage = (event) => { let d: LogEvent = JSON.parse(event.data) setLogs(prevState => ([...prevState, d])) scrollToBottom() } return () => { es.close() } }, [setLogs]); return (

Logs

{logs.map((a, idx) => (

{a.time} {a.level === "TRACE" && {a.level}} {a.level === "DEBUG" && {a.level}} {a.level === "INFO" && {a.level} } {a.level === "ERROR" && {a.level}} {a.message}

))}
) }