stlyes fixes
This commit is contained in:
@@ -51,7 +51,7 @@ const ActivityLog: React.FC<ActivityLogProps> = ({ runId }) => {
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-gray-900 dark:bg-gray-950 text-green-400 p-4 rounded-lg font-mono text-xs overflow-auto max-h-96 border border-gray-700">
|
||||
<div className="bg-gray-900 dark:bg-gray-950 text-success-400 p-4 rounded-lg font-mono text-xs overflow-auto max-h-96 border border-gray-700">
|
||||
<pre className="whitespace-pre-wrap">{logs || 'No logs available'}</pre>
|
||||
</div>
|
||||
</ComponentCard>
|
||||
|
||||
@@ -58,8 +58,8 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
|
||||
if (error) {
|
||||
return (
|
||||
<div className="bg-red-50 dark:bg-red-900/20 border-2 border-red-500 rounded-lg p-4 mb-6">
|
||||
<p className="text-red-700 dark:text-red-300 text-sm">{error}</p>
|
||||
<div className="bg-error-50 dark:bg-error-900/20 border-2 border-error-500 rounded-lg p-4 mb-6">
|
||||
<p className="text-error-700 dark:text-error-300 text-sm">{error}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -71,13 +71,13 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
const percentage = processingState.percentage;
|
||||
|
||||
return (
|
||||
<div className="bg-blue-50 dark:bg-blue-900/20 border-2 border-blue-500 rounded-lg p-6 mb-6">
|
||||
<div className="bg-brand-50 dark:bg-brand-900/20 border-2 border-brand-500 rounded-lg p-6 mb-6">
|
||||
{/* Header */}
|
||||
<div className="flex items-center justify-between mb-4">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="animate-pulse">
|
||||
<svg
|
||||
className="w-8 h-8 text-blue-600 dark:text-blue-400"
|
||||
className="w-8 h-8 text-brand-600 dark:text-brand-400"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
@@ -96,14 +96,14 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
</h2>
|
||||
<p className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Stage {currentStage}: {processingState.stage_name}
|
||||
<span className="ml-2 px-2 py-0.5 bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300 rounded text-xs">
|
||||
<span className="ml-2 px-2 py-0.5 bg-brand-100 dark:bg-brand-900 text-brand-700 dark:text-brand-300 rounded text-xs">
|
||||
{processingState.stage_type}
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-right">
|
||||
<div className="text-4xl font-bold text-blue-600 dark:text-blue-400">
|
||||
<div className="text-4xl font-bold text-brand-600 dark:text-brand-400">
|
||||
{percentage}%
|
||||
</div>
|
||||
<div className="text-sm text-gray-600 dark:text-gray-400">
|
||||
@@ -116,7 +116,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div className="mb-6">
|
||||
<div className="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-3">
|
||||
<div
|
||||
className="bg-blue-600 dark:bg-blue-500 h-3 rounded-full transition-all duration-500"
|
||||
className="bg-brand-600 dark:bg-brand-500 h-3 rounded-full transition-all duration-500"
|
||||
style={{ width: `${Math.min(percentage, 100)}%` }}
|
||||
/>
|
||||
</div>
|
||||
@@ -133,7 +133,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
{processingState.currently_processing.length > 0 ? (
|
||||
processingState.currently_processing.map((item, idx) => (
|
||||
<div key={idx} className="flex items-start gap-2 text-sm">
|
||||
<span className="text-blue-600 dark:text-blue-400 mt-1">•</span>
|
||||
<span className="text-brand-600 dark:text-brand-400 mt-1">•</span>
|
||||
<span className="text-gray-800 dark:text-gray-200 font-medium line-clamp-2">
|
||||
{item.title}
|
||||
</span>
|
||||
|
||||
@@ -240,12 +240,12 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
|
||||
if (error) {
|
||||
return (
|
||||
<div className="bg-red-50 dark:bg-red-900/20 border-2 border-red-500 rounded-lg p-4 mb-6">
|
||||
<div className="bg-error-50 dark:bg-error-900/20 border-2 border-error-500 rounded-lg p-4 mb-6">
|
||||
<div className="flex items-center justify-between">
|
||||
<p className="text-red-700 dark:text-red-300 text-sm">{error}</p>
|
||||
<p className="text-error-700 dark:text-error-300 text-sm">{error}</p>
|
||||
<button
|
||||
onClick={onClose}
|
||||
className="text-red-500 hover:text-red-700 dark:hover:text-red-300"
|
||||
className="text-error-500 hover:text-error-700 dark:hover:text-error-300"
|
||||
>
|
||||
<XMarkIcon className="w-5 h-5" />
|
||||
</button>
|
||||
@@ -321,21 +321,21 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
|
||||
// Choose stage accent color (simple map matching AutomationPage STAGE_CONFIG)
|
||||
const stageColors = [
|
||||
'from-blue-500 to-blue-600',
|
||||
'from-brand-500 to-brand-600',
|
||||
'from-purple-500 to-purple-600',
|
||||
'from-indigo-500 to-indigo-600',
|
||||
'from-green-500 to-green-600',
|
||||
'from-amber-500 to-amber-600',
|
||||
'from-pink-500 to-pink-600',
|
||||
'from-teal-500 to-teal-600',
|
||||
'from-purple-500 to-purple-600',
|
||||
'from-success-500 to-success-600',
|
||||
'from-warning-500 to-warning-600',
|
||||
'from-purple-500 to-purple-600',
|
||||
'from-success-500 to-success-600',
|
||||
];
|
||||
const stageColorClass = stageColors[(currentRun.current_stage || 1) - 1] || 'from-blue-500 to-blue-600';
|
||||
const stageColorClass = stageColors[(currentRun.current_stage || 1) - 1] || 'from-brand-500 to-brand-600';
|
||||
|
||||
return (
|
||||
<div className={`border-2 rounded-lg p-6 mb-6 ${
|
||||
isPaused
|
||||
? 'bg-yellow-50 dark:bg-yellow-900/20 border-yellow-500'
|
||||
: 'bg-blue-50 dark:bg-blue-900/20 border-blue-500'
|
||||
? 'bg-warning-50 dark:bg-warning-900/20 border-warning-500'
|
||||
: 'bg-brand-50 dark:bg-brand-900/20 border-brand-500'
|
||||
}`}>
|
||||
{/* Header Row with Main Info and Close */}
|
||||
<div className="flex items-start justify-between mb-4">
|
||||
@@ -344,9 +344,9 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div className="flex items-center gap-3 mb-4">
|
||||
<div className={isPaused ? '' : 'animate-pulse'}>
|
||||
{isPaused ? (
|
||||
<PauseIcon className="w-8 h-8 text-yellow-600 dark:text-yellow-400" />
|
||||
<PauseIcon className="w-8 h-8 text-warning-600 dark:text-warning-400" />
|
||||
) : (
|
||||
<BoltIcon className="w-8 h-8 text-blue-600 dark:text-blue-400" />
|
||||
<BoltIcon className="w-8 h-8 text-brand-600 dark:text-brand-400" />
|
||||
)}
|
||||
</div>
|
||||
<div className="flex-1">
|
||||
@@ -361,8 +361,8 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
Stage {currentRun.current_stage}: {displayState.stage_name}
|
||||
<span className={`ml-2 px-2 py-0.5 rounded text-xs ${
|
||||
isPaused
|
||||
? 'bg-yellow-100 dark:bg-yellow-900 text-yellow-700 dark:text-yellow-300'
|
||||
: 'bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300'
|
||||
? 'bg-warning-100 dark:bg-warning-900 text-warning-700 dark:text-warning-300'
|
||||
: 'bg-brand-100 dark:bg-brand-900 text-brand-700 dark:text-brand-300'
|
||||
}`}>
|
||||
{displayState.stage_type}
|
||||
</span>
|
||||
@@ -396,7 +396,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<>
|
||||
<div className="mb-4">
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<div className="text-3xl font-bold text-blue-600 dark:text-blue-400">
|
||||
<div className="text-3xl font-bold text-brand-600 dark:text-brand-400">
|
||||
{percentage}%
|
||||
</div>
|
||||
<div className="text-sm text-gray-600 dark:text-gray-400">
|
||||
@@ -408,8 +408,8 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div
|
||||
className={`h-3 rounded-full transition-all duration-500 ${
|
||||
isPaused
|
||||
? 'bg-yellow-600 dark:bg-yellow-500'
|
||||
: 'bg-blue-600 dark:bg-blue-500'
|
||||
? 'bg-warning-600 dark:bg-warning-500'
|
||||
: 'bg-brand-600 dark:bg-brand-500'
|
||||
}`}
|
||||
style={{ width: `${Math.min(percentage, 100)}%` }}
|
||||
/>
|
||||
@@ -427,7 +427,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
{((displayState.currently_processing && displayState.currently_processing.length > 0) ? displayState.currently_processing : fetchedCurrently).length > 0 ? (
|
||||
((displayState.currently_processing && displayState.currently_processing.length > 0) ? displayState.currently_processing : fetchedCurrently).map((item, idx) => (
|
||||
<div key={idx} className="flex items-start gap-2 text-sm">
|
||||
<span className={isPaused ? 'text-yellow-600 dark:text-yellow-400 mt-1' : 'text-blue-600 dark:text-blue-400 mt-1'}>•</span>
|
||||
<span className={isPaused ? 'text-warning-600 dark:text-warning-400 mt-1' : 'text-brand-600 dark:text-brand-400 mt-1'}>•</span>
|
||||
<span className="text-gray-800 dark:text-gray-200 font-medium line-clamp-2">
|
||||
{item.title}
|
||||
</span>
|
||||
@@ -536,10 +536,10 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg p-3 border border-gray-200 dark:border-gray-700">
|
||||
<div className="flex items-center justify-between mb-0">
|
||||
<div className="flex items-center gap-2">
|
||||
<BoltIcon className="w-4 h-4 text-amber-500" />
|
||||
<BoltIcon className="w-4 h-4 text-warning-500" />
|
||||
<div className="text-xs text-gray-500 dark:text-gray-400 uppercase font-semibold">Credits Used</div>
|
||||
</div>
|
||||
<div className="text-sm font-bold text-amber-600 dark:text-amber-400">{currentRun.total_credits_used}</div>
|
||||
<div className="text-sm font-bold text-warning-600 dark:text-warning-400">{currentRun.total_credits_used}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -555,7 +555,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg p-3 border border-gray-200 dark:border-gray-700">
|
||||
<div className="flex items-center justify-between mb-0">
|
||||
<div className="text-xs text-gray-500 dark:text-gray-400 uppercase font-semibold">Status</div>
|
||||
<div className={`text-sm font-semibold ${isPaused ? 'text-yellow-600 dark:text-yellow-400' : 'text-blue-600 dark:text-blue-400'}`}>
|
||||
<div className={`text-sm font-semibold ${isPaused ? 'text-warning-600 dark:text-warning-400' : 'text-brand-600 dark:text-brand-400'}`}>
|
||||
{isPaused ? 'Paused' : 'Running'}
|
||||
</div>
|
||||
</div>
|
||||
@@ -567,7 +567,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setShowDebugTable(!showDebugTable)}
|
||||
className="text-xs text-slate-600 hover:underline"
|
||||
className="text-xs text-gray-600 hover:underline"
|
||||
>
|
||||
{showDebugTable ? 'Hide' : 'Show'} debug table
|
||||
</button>
|
||||
|
||||
@@ -193,16 +193,16 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
return (
|
||||
<div className={`rounded-xl p-5 mb-6 border-2 transition-all ${
|
||||
isPaused
|
||||
? 'bg-gradient-to-r from-amber-50 to-amber-100 dark:from-amber-900/20 dark:to-amber-800/20 border-amber-400'
|
||||
: 'bg-gradient-to-r from-blue-50 to-blue-100 dark:from-blue-900/20 dark:to-blue-800/20 border-blue-400'
|
||||
? 'bg-gradient-to-r from-warning-50 to-warning-100 dark:from-warning-900/20 dark:to-warning-800/20 border-warning-400'
|
||||
: 'bg-gradient-to-r from-brand-50 to-brand-100 dark:from-brand-900/20 dark:to-brand-800/20 border-brand-400'
|
||||
}`}>
|
||||
{/* Header Row */}
|
||||
<div className="flex items-start justify-between mb-4">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className={`size-10 rounded-lg flex items-center justify-center shadow-md ${
|
||||
isPaused
|
||||
? 'bg-gradient-to-br from-amber-500 to-amber-600'
|
||||
: 'bg-gradient-to-br from-blue-500 to-blue-600'
|
||||
? 'bg-gradient-to-br from-warning-500 to-warning-600'
|
||||
: 'bg-gradient-to-br from-brand-500 to-brand-600'
|
||||
}`}>
|
||||
{isPaused ? (
|
||||
<PauseIcon className="w-5 h-5 text-white" />
|
||||
@@ -217,7 +217,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Stage {currentRun.current_stage}: {stageName}
|
||||
<span className={`ml-2 px-1.5 py-0.5 rounded text-xs ${
|
||||
isPaused ? 'bg-amber-200 text-amber-800' : 'bg-blue-200 text-blue-800'
|
||||
isPaused ? 'bg-warning-200 text-warning-800' : 'bg-brand-200 text-brand-800'
|
||||
}`}>
|
||||
{stageOverview?.type || 'AI'}
|
||||
</span>
|
||||
@@ -241,7 +241,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
{/* Progress Text */}
|
||||
<div className="flex items-baseline justify-between mb-2">
|
||||
<div className="flex items-baseline gap-3">
|
||||
<span className={`text-4xl font-bold ${isPaused ? 'text-amber-600' : 'text-blue-600'}`}>
|
||||
<span className={`text-4xl font-bold ${isPaused ? 'text-warning-600' : 'text-brand-600'}`}>
|
||||
{displayPercent}%
|
||||
</span>
|
||||
<span className="text-sm text-gray-500">
|
||||
@@ -258,8 +258,8 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<div
|
||||
className={`h-3 rounded-full transition-all duration-300 ${
|
||||
isPaused
|
||||
? 'bg-gradient-to-r from-amber-400 to-amber-600'
|
||||
: 'bg-gradient-to-r from-blue-400 to-blue-600'
|
||||
? 'bg-gradient-to-r from-warning-400 to-warning-600'
|
||||
: 'bg-gradient-to-r from-brand-400 to-brand-600'
|
||||
} ${!isPaused && displayPercent < 100 ? 'animate-pulse' : ''}`}
|
||||
style={{ width: `${Math.min(displayPercent, 100)}%` }}
|
||||
/>
|
||||
@@ -292,7 +292,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
<button
|
||||
onClick={handleCancel}
|
||||
disabled={isCancelling}
|
||||
className="text-sm text-gray-500 hover:text-red-600 transition-colors"
|
||||
className="text-sm text-gray-500 hover:text-error-600 transition-colors"
|
||||
>
|
||||
<XMarkIcon className="w-4 h-4 inline mr-1" />
|
||||
{isCancelling ? 'Cancelling...' : 'Cancel'}
|
||||
@@ -312,10 +312,10 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg px-3 py-2 border border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
||||
<div className="flex items-center gap-1.5">
|
||||
<BoltIcon className="w-4 h-4 text-amber-500" />
|
||||
<BoltIcon className="w-4 h-4 text-warning-500" />
|
||||
<span className="text-xs text-gray-500 uppercase">Credits</span>
|
||||
</div>
|
||||
<span className="text-sm font-bold text-amber-600">{currentRun.total_credits_used}</span>
|
||||
<span className="text-sm font-bold text-warning-600">{currentRun.total_credits_used}</span>
|
||||
</div>
|
||||
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg px-3 py-2 border border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
||||
@@ -325,7 +325,7 @@ const CurrentProcessingCard: React.FC<CurrentProcessingCardProps> = ({
|
||||
|
||||
<div className="bg-white dark:bg-gray-800 rounded-lg px-3 py-2 border border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
||||
<span className="text-xs text-gray-500 uppercase">Status</span>
|
||||
<span className={`text-sm font-bold ${isPaused ? 'text-amber-600' : 'text-green-600'}`}>
|
||||
<span className={`text-sm font-bold ${isPaused ? 'text-warning-600' : 'text-success-600'}`}>
|
||||
{isPaused ? 'Paused' : 'Running'}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -9,13 +9,13 @@ import { BoltIcon, CheckCircleIcon, PauseIcon } from '../../icons';
|
||||
|
||||
// Stage colors matching AutomationPage STAGE_CONFIG
|
||||
const STAGE_COLORS = [
|
||||
'from-blue-500 to-blue-600', // Stage 1: Keywords → Clusters
|
||||
'from-brand-500 to-brand-600', // Stage 1: Keywords → Clusters
|
||||
'from-purple-500 to-purple-600', // Stage 2: Clusters → Ideas
|
||||
'from-indigo-500 to-indigo-600', // Stage 3: Ideas → Tasks
|
||||
'from-green-500 to-green-600', // Stage 4: Tasks → Content
|
||||
'from-amber-500 to-amber-600', // Stage 5: Content → Image Prompts
|
||||
'from-pink-500 to-pink-600', // Stage 6: Image Prompts → Images
|
||||
'from-teal-500 to-teal-600', // Stage 7: Manual Review Gate
|
||||
'from-purple-500 to-purple-600', // Stage 3: Ideas → Tasks
|
||||
'from-success-500 to-success-600', // Stage 4: Tasks → Content
|
||||
'from-warning-500 to-warning-600', // Stage 5: Content → Image Prompts
|
||||
'from-purple-500 to-purple-600', // Stage 6: Image Prompts → Images
|
||||
'from-success-500 to-success-600', // Stage 7: Manual Review Gate
|
||||
];
|
||||
|
||||
const STAGE_NAMES = [
|
||||
@@ -141,7 +141,7 @@ const GlobalProgressBar: React.FC<GlobalProgressBarProps> = ({
|
||||
<div className={`
|
||||
rounded-xl p-4 mb-6 border-2 transition-all
|
||||
${isPaused
|
||||
? 'bg-gradient-to-r from-amber-50 to-amber-100 dark:from-amber-900/20 dark:to-amber-800/20 border-amber-300 dark:border-amber-700'
|
||||
? 'bg-gradient-to-r from-warning-50 to-warning-100 dark:from-warning-900/20 dark:to-warning-800/20 border-warning-300 dark:border-warning-700'
|
||||
: 'bg-gradient-to-r from-brand-50 to-brand-100 dark:from-brand-900/20 dark:to-brand-800/20 border-brand-300 dark:border-brand-700'
|
||||
}
|
||||
`}>
|
||||
@@ -151,7 +151,7 @@ const GlobalProgressBar: React.FC<GlobalProgressBarProps> = ({
|
||||
<div className={`
|
||||
size-10 rounded-lg flex items-center justify-center shadow-md
|
||||
${isPaused
|
||||
? 'bg-gradient-to-br from-amber-500 to-amber-600'
|
||||
? 'bg-gradient-to-br from-warning-500 to-warning-600'
|
||||
: 'bg-gradient-to-br from-brand-500 to-brand-600'
|
||||
}
|
||||
`}>
|
||||
@@ -164,7 +164,7 @@ const GlobalProgressBar: React.FC<GlobalProgressBarProps> = ({
|
||||
)}
|
||||
</div>
|
||||
<div>
|
||||
<div className={`font-bold ${isPaused ? 'text-amber-800 dark:text-amber-200' : 'text-brand-800 dark:text-brand-200'}`}>
|
||||
<div className={`font-bold ${isPaused ? 'text-warning-800 dark:text-warning-200' : 'text-brand-800 dark:text-brand-200'}`}>
|
||||
{isPaused ? 'Pipeline Paused' : 'Full Pipeline Progress'}
|
||||
</div>
|
||||
<div className="text-xs text-gray-600 dark:text-gray-400">
|
||||
@@ -172,7 +172,7 @@ const GlobalProgressBar: React.FC<GlobalProgressBarProps> = ({
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={`text-3xl font-bold ${isPaused ? 'text-amber-600 dark:text-amber-400' : 'text-brand-600 dark:text-brand-400'}`}>
|
||||
<div className={`text-3xl font-bold ${isPaused ? 'text-warning-600 dark:text-warning-400' : 'text-brand-600 dark:text-brand-400'}`}>
|
||||
{percentage}%
|
||||
</div>
|
||||
</div>
|
||||
@@ -216,8 +216,8 @@ const GlobalProgressBar: React.FC<GlobalProgressBarProps> = ({
|
||||
<span
|
||||
key={stageNum}
|
||||
className={`
|
||||
${status === 'completed' ? 'text-green-600 dark:text-green-400 font-medium' : ''}
|
||||
${status === 'active' ? `${isPaused ? 'text-amber-600 dark:text-amber-400' : 'text-brand-600 dark:text-brand-400'} font-bold` : ''}
|
||||
${status === 'completed' ? 'text-success-600 dark:text-success-400 font-medium' : ''}
|
||||
${status === 'active' ? `${isPaused ? 'text-warning-600 dark:text-warning-400' : 'text-brand-600 dark:text-brand-400'} font-bold` : ''}
|
||||
${status === 'pending' ? 'text-gray-400 dark:text-gray-500' : ''}
|
||||
`}
|
||||
>
|
||||
|
||||
@@ -32,10 +32,10 @@ const RunHistory: React.FC<RunHistoryProps> = ({ siteId }) => {
|
||||
|
||||
const getStatusBadge = (status: string) => {
|
||||
const colors: Record<string, string> = {
|
||||
completed: 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400',
|
||||
running: 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400',
|
||||
paused: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400',
|
||||
failed: 'bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400',
|
||||
completed: 'bg-success-100 text-success-800 dark:bg-success-900/30 dark:text-success-400',
|
||||
running: 'bg-brand-100 text-brand-800 dark:bg-brand-900/30 dark:text-brand-400',
|
||||
paused: 'bg-warning-100 text-warning-800 dark:bg-warning-900/30 dark:text-warning-400',
|
||||
failed: 'bg-error-100 text-error-800 dark:bg-error-900/30 dark:text-error-400',
|
||||
};
|
||||
return colors[status] || 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300';
|
||||
};
|
||||
|
||||
@@ -25,8 +25,8 @@ const StageCard: React.FC<StageCardProps> = ({
|
||||
const isComplete = stageNumber < currentStage || (result !== null && stageNumber <= 7);
|
||||
|
||||
const getStatusColor = () => {
|
||||
if (isActive) return 'border-blue-500 bg-blue-50 dark:bg-blue-900/20 dark:border-blue-400';
|
||||
if (isComplete) return 'border-green-500 bg-green-50 dark:bg-green-900/20 dark:border-green-400';
|
||||
if (isActive) return 'border-brand-500 bg-brand-50 dark:bg-brand-900/20 dark:border-brand-400';
|
||||
if (isComplete) return 'border-success-500 bg-success-50 dark:bg-success-900/20 dark:border-success-400';
|
||||
if (pipelineData && pipelineData.pending > 0) return 'border-purple-400 bg-purple-50 dark:bg-purple-900/20 dark:border-purple-400';
|
||||
return 'border-gray-300 bg-gray-50 dark:bg-gray-800 dark:border-gray-600';
|
||||
};
|
||||
@@ -78,8 +78,8 @@ const StageCard: React.FC<StageCardProps> = ({
|
||||
|
||||
{/* Show processing indicator when active */}
|
||||
{isActive && !result && (
|
||||
<div className="mt-2 pt-2 border-t border-blue-200 dark:border-blue-600">
|
||||
<div className="text-xs text-blue-600 dark:text-blue-400 animate-pulse">Processing...</div>
|
||||
<div className="mt-2 pt-2 border-t border-brand-200 dark:border-brand-600">
|
||||
<div className="text-xs text-brand-600 dark:text-brand-400 animate-pulse">Processing...</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user