auto-save 2026-05-13 10:16 (~4)

This commit is contained in:
2026-05-13 10:16:36 +08:00
parent 7db74cfc32
commit 6ec8af6274
4 changed files with 24 additions and 7 deletions

View File

@@ -13,7 +13,7 @@ import {
type NodeData,
} from "@/components/nodes"
import { ThemeToggle } from "@/components/theme-toggle"
import { Dashboard } from "@/components/dashboard"
import { Dashboard, type DashboardHandle } from "@/components/dashboard"
import { addManualFrame, analyzeJob, createJob, getJob, uploadJob, type Job } from "@/lib/api"
import { VideoLightbox } from "@/components/video-lightbox"
@@ -64,6 +64,7 @@ export default function Home() {
const [selectedFrames, setSelectedFrames] = useState<Set<number>>(new Set())
const [expandedFrame, setExpandedFrame] = useState<number | null>(null)
const [videoLightboxOpen, setVideoLightboxOpen] = useState(false)
const dashboardRef = useRef<DashboardHandle>(null)
// 把 setJob(prev=>...) 翻译成 setJobs 里更新当前 active
const setJob = useCallback((updater: Job | ((prev: Job | null) => Job | null) | null) => {
@@ -225,6 +226,7 @@ export default function Home() {
onOpenVideoLightbox: () => setVideoLightboxOpen(true),
onSwitchJob: handleSwitchJob,
onJobUpdate: setJob as any,
onOpenPanel: (key: string) => dashboardRef.current?.openPanel(key),
}), [job, jobs, activeJobId, submitting, analyzing, selectedFrames, expandedFrame, handleSubmit, handleUpload, handleAnalyze, handleToggleFrame, handleAddManualFrame, handleSwitchJob, setJob])
// 用 useNodesState 让 ReactFlow 自己管位置(避免轮询时重置 drag
@@ -281,7 +283,7 @@ export default function Home() {
className="relative z-10 flex-shrink-0 border-r border-white/5 bg-black/20 backdrop-blur-xl overflow-y-auto"
style={{ width: 88 }}
>
<Dashboard data={nodeData} />
<Dashboard ref={dashboardRef} data={nodeData} />
</aside>
{/* 右区:紧凑 DAG 节点流图(撑满剩余宽度) */}