diff --git a/apps/web/src/components/GenerationPreviewStage.module.css b/apps/web/src/components/GenerationPreviewStage.module.css index a0d55c212..8e650f338 100644 --- a/apps/web/src/components/GenerationPreviewStage.module.css +++ b/apps/web/src/components/GenerationPreviewStage.module.css @@ -257,20 +257,6 @@ } } -.meta { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: center; - gap: 8px; - font-size: 12px; - color: var(--text-faint); -} - -.metaDivider { - opacity: 0.6; -} - .retry { margin-top: 4px; min-height: 34px; diff --git a/apps/web/src/components/GenerationPreviewStage.tsx b/apps/web/src/components/GenerationPreviewStage.tsx index 4a67d8125..733ef5a79 100644 --- a/apps/web/src/components/GenerationPreviewStage.tsx +++ b/apps/web/src/components/GenerationPreviewStage.tsx @@ -1,7 +1,5 @@ -import { useEffect, useState } from 'react'; import { useT } from '../i18n'; import type { GenerationPreviewModel } from '../runtime/generation-preview'; -import { formatGenerationElapsed } from '../runtime/generation-preview'; import { Icon } from './Icon'; import styles from './GenerationPreviewStage.module.css'; @@ -12,19 +10,9 @@ type Props = { export function GenerationPreviewStage({ model, onRetry }: Props) { const t = useT(); - const [now, setNow] = useState(() => Date.now()); const generating = model.phase === 'generating'; - useEffect(() => { - if (!generating) return undefined; - const id = window.setInterval(() => setNow(Date.now()), 1000); - return () => window.clearInterval(id); - }, [generating, model.startedAt]); - - const elapsedSec = Math.max(0, Math.round((now - model.startedAt) / 1000)); - const elapsedLabel = formatGenerationElapsed(elapsedSec); - const stepLabels: Record = { understand: t('generationPreview.stepUnderstand'), generate: t('generationPreview.stepGenerate'), @@ -47,7 +35,7 @@ export function GenerationPreviewStage({ model, onRetry }: Props) { ? t('generationPreview.stoppedLead') : model.phase === 'awaiting-input' ? t('generationPreview.awaitingLead') - : model.activityLabel || t('generationPreview.footnote'); + : model.activityLabel; const markIcon = model.phase === 'failed' ? 'close' : model.phase === 'stopped' ? 'stop' : 'sparkles'; @@ -69,11 +57,11 @@ export function GenerationPreviewStage({ model, onRetry }: Props) {

{title}

- {showSubstatus ? null : ( + {!showSubstatus && lead ? (

{lead}

- )} + ) : null}
) : null} - {generating ? ( -
- - {t('generationPreview.elapsed', { elapsed: elapsedLabel })} - - - ยท - - {t('generationPreview.estimate')} -
- ) : null} {model.phase === 'failed' && onRetry ? (