import { Tab, Tabs } from '@heroui/tabs' import { useRequest } from 'ahooks' import { useEffect, useState } from 'react' import toast from 'react-hot-toast' import HistoryLogs from '@/components/log_com/history' import RealTimeLogs from '@/components/log_com/realtime' import WebUIManager from '@/controllers/webui_manager' export default function LogsPage() { const { data: logList, loading: logListLoading, error: logListError, refresh: refreshLogList } = useRequest(WebUIManager.getLogList) const [selectedLog, setSelectedLog] = useState(null) const [logContent, setLogContent] = useState(null) const [logLoading, setLogLoading] = useState(false) const onLogSelect = (name: string) => { setSelectedLog(name) } const onLoadLog = async () => { if (!selectedLog) { return } setLogLoading(true) try { const result = await WebUIManager.getLogContent(selectedLog) setLogContent(result) } catch (error) { const msg = (error as Error).message toast.error(`加载日志失败: ${msg}`) } finally { setLogLoading(false) } } useEffect(() => { if (logList && logList.length > 0) { setSelectedLog(logList[0]) } }, [logList]) useEffect(() => { if (selectedLog) { onLoadLog() } }, [selectedLog]) return (
) }