progress mdoal

This commit is contained in:
IGNY8 VPS (Salman)
2025-11-11 21:14:46 +00:00
parent 5638ea78df
commit 298b7bc625
2 changed files with 108 additions and 24 deletions

View File

@@ -73,7 +73,15 @@ const getSuccessMessage = (functionId?: string, title?: string, stepLogs?: any[]
}
return 'Article drafted successfully.';
}
if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Check for image generation from prompts FIRST (more specific)
if (funcName.includes('image') && funcName.includes('from')) {
// Image generation from prompts
const imageCount = extractCount(/(\d+)\s+image/i, stepLogs || []);
if (imageCount) {
return `${imageCount} image${imageCount !== '1' ? 's' : ''} generated successfully`;
}
return 'Images generated successfully';
} else if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Image prompt generation
// Try to extract from SAVE step message first (most reliable)
const saveStepLog = stepLogs?.find(log => log.stepName === 'SAVE');
@@ -120,13 +128,6 @@ const getSuccessMessage = (functionId?: string, title?: string, stepLogs?: any[]
// Default message
return 'Featured Image and X Inarticle Image Prompts ready for image generation';
} else if (funcName.includes('image') && funcName.includes('from')) {
// Image generation from prompts
const imageCount = extractCount(/(\d+)\s+image/i, stepLogs || []);
if (imageCount) {
return `${imageCount} image${imageCount !== '1' ? 's' : ''} generated successfully`;
}
return 'Images generated successfully';
}
return 'Task completed successfully.';
};
@@ -165,16 +166,8 @@ const getStepsForFunction = (functionId?: string, title?: string): Array<{phase:
];
}
if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Image prompt generation
return [
{ phase: 'INIT', label: 'Checking content and image slots' },
{ phase: 'PREP', label: 'Mapping Content for X Image Prompts' },
{ phase: 'AI_CALL', label: 'Writing Featured Image Prompts' },
{ phase: 'PARSE', label: 'Writing X Inarticle Image Prompts' },
{ phase: 'SAVE', label: 'Assigning Prompts to Dedicated Slots' },
];
} else if (funcName.includes('image') && funcName.includes('from')) {
// Check for image generation from prompts FIRST (more specific)
if (funcName.includes('image') && funcName.includes('from')) {
// Image generation from prompts
return [
{ phase: 'INIT', label: 'Validating image prompts' },
@@ -183,6 +176,15 @@ const getStepsForFunction = (functionId?: string, title?: string): Array<{phase:
{ phase: 'PARSE', label: 'Processing image URLs' },
{ phase: 'SAVE', label: 'Saving image URLs' },
];
} else if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Image prompt generation
return [
{ phase: 'INIT', label: 'Checking content and image slots' },
{ phase: 'PREP', label: 'Mapping Content for X Image Prompts' },
{ phase: 'AI_CALL', label: 'Writing Featured Image Prompts' },
{ phase: 'PARSE', label: 'Writing X Inarticle Image Prompts' },
{ phase: 'SAVE', label: 'Assigning Prompts to Dedicated Slots' },
];
}
// Default fallback
@@ -390,7 +392,57 @@ export default function ProgressModal({
return `${articleCount} article${articleCount !== '1' ? 's' : ''} created`;
}
}
} else if (funcName.includes('image')) {
} else if (funcName.includes('image') && funcName.includes('from')) {
// Image generation from prompts
if (stepPhase === 'PREP') {
// Extract image count from PREP step message
const imageCount = extractCount(/(\d+)\s+image/i);
if (imageCount) {
return `Preparing to generate ${imageCount} image${imageCount !== '1' ? 's' : ''}`;
}
if (stepLog?.message) {
const match = stepLog.message.match(/Preparing to generate (\d+)\s+image/i);
if (match && match[1]) {
return `Preparing to generate ${match[1]} image${match[1] !== '1' ? 's' : ''}`;
}
}
return 'Preparing image generation queue';
} else if (stepPhase === 'AI_CALL') {
// Extract current image number from message
const match = stepLog?.message?.match(/Generating.*image (\d+)/i);
if (match && match[1]) {
return `Generating image ${match[1]} with AI`;
}
return 'Generating images with AI';
} else if (stepPhase === 'PARSE') {
// Extract image count from PARSE step
const imageCount = extractCount(/(\d+)\s+image/i);
if (imageCount) {
return `${imageCount} image${imageCount !== '1' ? 's' : ''} generated successfully`;
}
if (stepLog?.message) {
const match = stepLog.message.match(/(\d+)\s+image.*generated/i);
if (match && match[1]) {
return `${match[1]} image${match[1] !== '1' ? 's' : ''} generated successfully`;
}
}
return 'Processing image URLs';
} else if (stepPhase === 'SAVE') {
// Extract image count from SAVE step
const imageCount = extractCount(/(\d+)\s+image/i);
if (imageCount) {
return `Saving ${imageCount} image${imageCount !== '1' ? 's' : ''}`;
}
if (stepLog?.message) {
const match = stepLog.message.match(/Saved image (\d+)/i);
if (match && match[1]) {
return `Saving image ${match[1]}`;
}
}
return 'Saving image URLs';
}
} else if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Image prompt generation
if (stepPhase === 'PREP') {
// Extract total image count from PREP step message
// Look for "Mapping Content for X Image Prompts"
@@ -606,17 +658,31 @@ export default function ProgressModal({
} else if (funcName.includes('idea')) {
// For idea generation, use fixed heading
return 'Generating Content Ideas & Outline';
} else if (funcName.includes('image')) {
// For image prompts, use fixed heading
} else if (funcName.includes('image') && funcName.includes('from')) {
// For image generation from prompts
return 'Generate Images';
} else if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// For image prompt generation
return 'Smart Image Prompts';
} else if (funcName.includes('image')) {
// Fallback for other image functions
return 'Generate Images';
}
return title;
})()}
</h3>
{/* Subtitle for image prompts */}
{/* Subtitle for image functions */}
{(() => {
const funcName = (functionId || title || '').toLowerCase();
if (funcName.includes('image')) {
if (funcName.includes('image') && funcName.includes('from')) {
// Image generation from prompts
return (
<p className="text-sm text-gray-500 dark:text-gray-400 text-center mt-1">
Generating images from prompts using AI
</p>
);
} else if (funcName.includes('image') && (funcName.includes('prompt') || funcName.includes('extract'))) {
// Image prompt generation
return (
<p className="text-sm text-gray-500 dark:text-gray-400 text-center mt-1">
Powered by Igny8 Visual Intelligence
@@ -626,7 +692,24 @@ export default function ProgressModal({
return null;
})()}
{!showSuccess && status !== 'completed' && (
<p className="text-sm text-gray-600 dark:text-gray-400 text-center">{message}</p>
<p className="text-sm text-gray-600 dark:text-gray-400 text-center">
{(() => {
const funcName = (functionId || title || '').toLowerCase();
// For image generation, show a more specific message
if (funcName.includes('image') && funcName.includes('from')) {
// Get current step message from step logs
const currentStepLog = stepLogs.find(log => log.stepName === currentPhase);
if (currentStepLog?.message) {
return currentStepLog.message;
}
// Fallback to step label
const currentStep = steps.find(s => s.phase === currentPhase);
return currentStep?.label || 'Generating images...';
}
// For other functions, use the message prop
return message;
})()}
</p>
)}
{status === 'completed' && !allStepsVisuallyCompleted && (
<p className="text-sm text-gray-600 dark:text-gray-400 text-center">Processing...</p>

View File

@@ -8,6 +8,7 @@ import React from 'react';
import Badge from '../../components/ui/badge/Badge';
import ContentImageCell, { ContentImageData } from '../../components/common/ContentImageCell';
import { ContentImagesGroup } from '../../services/api';
import { BoltIcon } from '../../icons';
export interface ColumnConfig {
key: string;