chore: 添加保存调试日志、修复 time-tracking 类型、简化首页

This commit is contained in:
2026-03-13 18:39:08 +08:00
parent 371d4ce327
commit 96390df254
4 changed files with 14 additions and 60 deletions

View File

@@ -1,62 +1,7 @@
import { useRef, useEffect, useState } from 'react'
import React from 'react'
export const HomePage = () => {
const webviewRef = useRef<HTMLWebViewElement>(null)
const [isLoading, setIsLoading] = useState(true)
const [error, setError] = useState<string | null>(null)
useEffect(() => {
const startOpencodeServer = async () => {
try {
const result = await window.electronAPI?.opencodeStartServer()
if (!result?.success) {
setError(result?.error || 'Failed to start opencode server')
}
} catch (err) {
setError(err instanceof Error ? err.message : 'Unknown error')
}
}
startOpencodeServer()
return () => {
window.electronAPI?.opencodeStopServer()
}
}, [])
useEffect(() => {
const webview = webviewRef.current
if (!webview) return
webview.addEventListener('did-fail-load', (e) => {
console.error('[HomePage] Failed to load:', e)
setIsLoading(false)
})
webview.addEventListener('did-finish-load', () => {
setIsLoading(false)
})
}, [])
return (
<div className="h-full w-full relative">
{isLoading && (
<div className="absolute inset-0 flex items-center justify-center bg-white dark:bg-gray-900 z-10">
<div className="text-gray-500 dark:text-gray-400"> opencode ...</div>
</div>
)}
{error && (
<div className="absolute inset-0 flex items-center justify-center bg-white dark:bg-gray-900 z-10">
<div className="text-red-500">: {error}</div>
</div>
)}
<webview
ref={webviewRef}
src="http://127.0.0.1:4096"
className="w-full h-full"
nodeintegration={false}
webpreferences="contextIsolation=yes"
/>
</div>
<div className="h-full w-full" />
)
}