auto-save 2026-05-13 13:53 (+1, ~4)
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
import { ThemeToggle } from "@/components/theme-toggle"
|
||||
import { Dashboard, type DashboardHandle } from "@/components/dashboard"
|
||||
import { StoryboardBar } from "@/components/storyboard-bar"
|
||||
import { StoryboardEditor } from "@/components/storyboard-editor"
|
||||
import { addManualFrame, analyzeJob, createJob, getJob, uploadJob, deleteFrame, deleteGeneratedImage, type Job } from "@/lib/api"
|
||||
import { VideoLightbox } from "@/components/video-lightbox"
|
||||
|
||||
@@ -65,6 +66,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 [storyboardFrame, setStoryboardFrame] = useState<number | null>(null)
|
||||
const dashboardRef = useRef<DashboardHandle>(null)
|
||||
|
||||
// 把 setJob(prev=>...) 翻译成 setJobs 里更新当前 active
|
||||
@@ -259,6 +261,7 @@ export default function Home() {
|
||||
onOpenPanel: (key: string) => dashboardRef.current?.openPanel(key),
|
||||
onDeleteFrame: handleDeleteFrame,
|
||||
onDeleteGenerated: handleDeleteGenerated,
|
||||
onOpenStoryboard: (idx: number) => setStoryboardFrame(idx),
|
||||
}), [job, jobs, activeJobId, submitting, analyzing, selectedFrames, expandedFrame, handleSubmit, handleUpload, handleAnalyze, handleToggleFrame, handleAddManualFrame, handleSwitchJob, setJob, handleDeleteFrame, handleDeleteGenerated])
|
||||
|
||||
// 用 useNodesState 让 ReactFlow 自己管位置(避免轮询时重置 drag)
|
||||
@@ -323,7 +326,7 @@ export default function Home() {
|
||||
<StoryboardBar
|
||||
job={job}
|
||||
selectedFrames={selectedFrames}
|
||||
onExpandFrame={setExpandedFrame}
|
||||
onOpenStoryboard={setStoryboardFrame}
|
||||
/>
|
||||
<div className="relative flex-1 min-h-0">
|
||||
<ReactFlow
|
||||
@@ -357,6 +360,13 @@ export default function Home() {
|
||||
onClose={() => setVideoLightboxOpen(false)}
|
||||
onAddFrame={handleAddManualFrame}
|
||||
/>
|
||||
|
||||
{/* 分镜头编排专属面板 — imagegen 节点 / storyboard bar 缩略图点击进入 */}
|
||||
<StoryboardEditor
|
||||
job={job}
|
||||
frameIndex={storyboardFrame}
|
||||
onClose={() => setStoryboardFrame(null)}
|
||||
/>
|
||||
</main>
|
||||
</>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user