image generation function implementation

This commit is contained in:
Desktop
2025-11-12 04:32:42 +05:00
parent 854e4b2d0d
commit 19b4c9faa3
6 changed files with 607 additions and 5 deletions

View File

@@ -43,6 +43,7 @@ export default function Images() {
const [isQueueModalOpen, setIsQueueModalOpen] = useState(false);
const [imageQueue, setImageQueue] = useState<ImageQueueItem[]>([]);
const [currentContentId, setCurrentContentId] = useState<number | null>(null);
const [taskId, setTaskId] = useState<string | null>(null);
// Load images - wrapped in useCallback
const loadImages = useCallback(async () => {
@@ -225,7 +226,7 @@ export default function Images() {
setCurrentContentId(contentId);
setIsQueueModalOpen(true);
// Collect image IDs for API call (will be used in Stage 2)
// Collect image IDs for API call
const imageIds: number[] = queue
.map(item => item.imageId)
.filter((id): id is number => id !== null);
@@ -234,8 +235,18 @@ export default function Images() {
console.log('[Generate Images] Image IDs to generate:', imageIds);
console.log('[Generate Images] Max in-article images from settings:', maxInArticleImages);
// TODO: Stage 2 - Start actual generation
// This will be implemented in Stage 2
// STAGE 2: Start actual generation
const result = await generateImages(imageIds, contentId);
if (result.success && result.task_id) {
// Task started successfully - polling will be handled by ImageQueueModal
setTaskId(result.task_id);
console.log('[Generate Images] Stage 2: Task started with ID:', result.task_id);
} else {
toast.error(result.error || 'Failed to start image generation');
setIsQueueModalOpen(false);
setTaskId(null);
}
} catch (error: any) {
console.error('[Generate Images] Exception:', error);
@@ -333,11 +344,13 @@ export default function Images() {
setIsQueueModalOpen(false);
setImageQueue([]);
setCurrentContentId(null);
setTaskId(null);
// Reload images after closing if generation completed
loadImages();
}}
queue={imageQueue}
totalImages={imageQueue.length}
taskId={taskId}
onUpdateQueue={setImageQueue}
/>
</>