auto-save 2026-05-13 20:45 (~6)
This commit is contained in:
@@ -17,7 +17,7 @@ import { StoryboardBar } from "@/components/storyboard-bar"
|
||||
import { StoryboardWorkbench } from "@/components/storyboard-workbench"
|
||||
import {
|
||||
addManualFrame, analyzeJob, createJob, getJob, uploadJob, deleteFrame, deleteGeneratedImage,
|
||||
generateStoryboardVideo,
|
||||
deleteGeneratedVideo, generateStoryboardVideo,
|
||||
type Job, type ImageRef, type StoryboardScene,
|
||||
} from "@/lib/api"
|
||||
import { VideoLightbox } from "@/components/video-lightbox"
|
||||
@@ -210,6 +210,17 @@ export default function Home() {
|
||||
}
|
||||
}, [activeJobId, setJob])
|
||||
|
||||
const handleDeleteVideo = useCallback(async (videoId: string) => {
|
||||
if (!activeJobId) return
|
||||
try {
|
||||
const updated = await deleteGeneratedVideo(activeJobId, videoId)
|
||||
setJob(updated)
|
||||
toast.success("视频任务已删除")
|
||||
} catch (e) {
|
||||
toast.error("删除失败:" + (e instanceof Error ? e.message : String(e)))
|
||||
}
|
||||
}, [activeJobId, setJob])
|
||||
|
||||
const handleCopyImage = useCallback((ref: ImageRef) => {
|
||||
setClipboard(ref)
|
||||
toast.success(`已复制:${ref.label || (ref.kind === "keyframe" ? "关键帧" : "元素")} · 到分镜头编排工作台粘贴`)
|
||||
@@ -348,13 +359,14 @@ export default function Home() {
|
||||
onJobUpdate: setJob as any,
|
||||
onDeleteFrame: handleDeleteFrame,
|
||||
onDeleteGenerated: handleDeleteGenerated,
|
||||
onDeleteVideo: handleDeleteVideo,
|
||||
onOpenStoryboard: (idx: number) => setStoryboardFrame(idx),
|
||||
onOpenWorkbench: (idx?: number) => {
|
||||
if (typeof idx === "number") setStoryboardFrame(idx)
|
||||
setWorkbenchOpen(true)
|
||||
},
|
||||
onCopyImage: handleCopyImage,
|
||||
}), [job, jobs, activeJobId, submitting, analyzing, selectedFrames, expandedFrame, framePanelScale, framePanelPinned, handleSubmit, handleUpload, handleAnalyze, handleToggleFrame, handleOpenFramePanel, handleFramePanelScaleChange, handleAddManualFrame, handleSwitchJob, setJob, handleDeleteFrame, handleDeleteGenerated, handleCopyImage])
|
||||
}), [job, jobs, activeJobId, submitting, analyzing, selectedFrames, expandedFrame, framePanelScale, framePanelPinned, handleSubmit, handleUpload, handleAnalyze, handleToggleFrame, handleOpenFramePanel, handleFramePanelScaleChange, handleAddManualFrame, handleSwitchJob, setJob, handleDeleteFrame, handleDeleteGenerated, handleDeleteVideo, handleCopyImage])
|
||||
|
||||
// 用 useNodesState 让 ReactFlow 自己管位置(避免轮询时重置 drag)
|
||||
const [nodes, setNodes, onNodesChange] = useNodesState<Node>(
|
||||
|
||||
Reference in New Issue
Block a user