MCPcopy Create free account
hub / github.com/HisMax/RedInk / useGenerationRunner

Function useGenerationRunner

frontend/src/composables/useGenerationRunner.ts:9–87  ·  view source on GitHub ↗
(
  hasFailedImages: ComputedRef<boolean>,
  setError: (error: AppError | null) => void
)

Source from the content-addressed store, hash-verified

7import { useGenerationRestore } from './useGenerationRestore'
8
9export function useGenerationRunner(
10 hasFailedImages: ComputedRef<boolean>,
11 setError: (error: AppError | null) => void
12) {
13 const router = useRouter()
14 const store = useGeneratorStore()
15 const { ensureRecord, restoreFromHistory } = useGenerationRestore()
16 const redirectTimer = ref<number | null>(null)
17 let isUnmounted = false
18
19 async function startGenerationFlow() {
20 if (store.outline.pages.length === 0) {
21 router.push('/')
22 return
23 }
24
25 if (await restoreFromHistory()) return
26
27 await ensureRecord()
28
29 store.startGeneration()
30
31 generateImagesPost(
32 store.outline.pages,
33 null,
34 store.outline.raw,
35 (event) => {
36 console.log('Progress:', event)
37 },
38 (event) => {
39 console.log('Complete:', event)
40 if (event.image_url) {
41 store.updateProgress(event.index, 'done', event.image_url)
42 }
43 },
44 (event) => {
45 console.error('Error:', event)
46 store.updateProgress(
47 event.index,
48 'error',
49 undefined,
50 formatErrorMessage(event.error || event.message || '图片生成失败', '图片生成失败')
51 )
52 },
53 (event) => {
54 console.log('Finish:', event)
55 store.finishGeneration(event.task_id)
56
57 if (!hasFailedImages.value) {
58 redirectTimer.value = window.setTimeout(() => {
59 if (!isUnmounted) {
60 router.push('/result')
61 }
62 }, 1000)
63 }
64 },
65 (err) => {
66 console.error('Stream Error:', err)

Callers

nothing calls this directly

Calls 1

useGenerationRestoreFunction · 0.90

Tested by

no test coverage detected