auto-save 2026-05-13 20:51 (~7)
This commit is contained in:
@@ -16,9 +16,9 @@ import { ThemeToggle } from "@/components/theme-toggle"
|
||||
import { StoryboardBar } from "@/components/storyboard-bar"
|
||||
import { StoryboardWorkbench } from "@/components/storyboard-workbench"
|
||||
import {
|
||||
addManualFrame, analyzeJob, createJob, getJob, uploadJob, deleteFrame, deleteGeneratedImage,
|
||||
addManualFrame, analyzeJob, createJob, getHealth, getJob, uploadJob, deleteFrame, deleteGeneratedImage,
|
||||
deleteGeneratedVideo, generateStoryboardVideo,
|
||||
type Job, type ImageRef, type StoryboardScene,
|
||||
type BackendHealth, type Job, type ImageRef, type StoryboardScene,
|
||||
} from "@/lib/api"
|
||||
import { VideoLightbox } from "@/components/video-lightbox"
|
||||
|
||||
@@ -77,6 +77,7 @@ export default function Home() {
|
||||
const [storyboardFrame, setStoryboardFrame] = useState<number | null>(null)
|
||||
const [workbenchOpen, setWorkbenchOpen] = useState(false)
|
||||
const [clipboard, setClipboard] = useState<ImageRef | null>(null)
|
||||
const [backendHealth, setBackendHealth] = useState<BackendHealth | null>(null)
|
||||
const flowRef = useRef<any>(null)
|
||||
|
||||
// 把 setJob(prev=>...) 翻译成 setJobs 里更新当前 active
|
||||
@@ -228,6 +229,10 @@ export default function Home() {
|
||||
|
||||
const handleQuickGenerateVideo = useCallback(async (frameIdx: number, scene: StoryboardScene, model: string) => {
|
||||
if (!job) return
|
||||
if (backendHealth?.models?.video_configured === false) {
|
||||
toast.error("当前 SKG ezlink 未开通生视频端点,不能提交视频任务")
|
||||
return
|
||||
}
|
||||
const frame = job.frames.find((f) => f.index === frameIdx)
|
||||
if (!frame) return
|
||||
|
||||
@@ -265,7 +270,13 @@ export default function Home() {
|
||||
} catch (e) {
|
||||
toast.error("提交视频失败:" + (e instanceof Error ? e.message : String(e)))
|
||||
}
|
||||
}, [job, setJob])
|
||||
}, [job, setJob, backendHealth?.models?.video_configured])
|
||||
|
||||
useEffect(() => {
|
||||
getHealth()
|
||||
.then(setBackendHealth)
|
||||
.catch(() => setBackendHealth(null))
|
||||
}, [])
|
||||
|
||||
// URL ?job=xxx,yyy 自动恢复多个 job
|
||||
useEffect(() => {
|
||||
@@ -487,6 +498,7 @@ export default function Home() {
|
||||
onJobUpdate={setJob as any}
|
||||
clipboard={clipboard}
|
||||
focusedFrame={storyboardFrame}
|
||||
videoConfigured={backendHealth?.models?.video_configured}
|
||||
onGenerateVideo={handleQuickGenerateVideo}
|
||||
/>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user