11/**
2- * The banner above a wake narration.
2+ * The banner above a wake narration: the label, the icon and the tone frame, and
3+ * nothing else. The narration under it states the headline, the user's note and the
4+ * next step, and each of those is said once per wake — so the banner marks the
5+ * message as a wake rather than restating it.
36 *
4- * This component holds no kind-specific wording: tone, semantic icon and headline
5- * come from contracts and `app/presenters/v3/dashboardAgent`. All it decides is which glyph a
7+ * This component holds no kind-specific wording: tone and semantic icon come from
8+ * contracts and `app/presenters/v3/dashboardAgent`. All it decides is which glyph a
69 * semantic icon draws and which frame a tone paints.
710 *
811 * A wake is identified by its message id, `wake:watch:{watchId}:{fired|expired}`.
@@ -23,11 +26,7 @@ import type {
2326} from "@internal/dashboard-agent-contracts" ;
2427import { cn } from "~/utils/cn" ;
2528import { type AgentTone , TONE_ICON_COLOR } from "./agent-badges" ;
26- import {
27- presentResolvedWatch ,
28- watchSubline ,
29- WATCH_PRESENTATION_FALLBACK ,
30- } from "~/presenters/v3/dashboardAgent" ;
29+ import { presentResolvedWatch , WATCH_PRESENTATION_FALLBACK } from "~/presenters/v3/dashboardAgent" ;
3130
3231const WAKE_ID_PREFIX = "wake:watch:" ;
3332
@@ -137,20 +136,15 @@ export function WakeBanner({
137136 const presentation = wakePresentation ( outcome , watch ) ;
138137 const tone = presentation . tone as AgentTone ;
139138 const Icon = SEMANTIC_ICON [ presentation . semanticIcon ] ;
140- const note = watchSubline ( watch ) ;
141139
142140 return (
143141 < div
144- className = { cn ( "flex items-start gap-2 rounded-r-md border-l-2 px-3 py-2" , TONE_FRAME [ tone ] ) }
142+ className = { cn ( "flex items-center gap-2 rounded-r-md border-l-2 px-3 py-2" , TONE_FRAME [ tone ] ) }
145143 >
146- < Icon className = { cn ( "mt-0.5 size-4 shrink-0" , TONE_ICON_COLOR [ tone ] ) } />
147- < div className = "min-w-0" >
148- < p className = "text-xxs font-medium uppercase tracking-wider text-text-dimmed" >
149- { presentation . label }
150- </ p >
151- < p className = "text-sm font-medium text-text-bright" > { presentation . headline } </ p >
152- { note ? < p className = "truncate text-xs text-text-dimmed" > { note } </ p > : null }
153- </ div >
144+ < Icon className = { cn ( "size-4 shrink-0" , TONE_ICON_COLOR [ tone ] ) } />
145+ < p className = "text-xxs font-medium uppercase tracking-wider text-text-dimmed" >
146+ { presentation . label }
147+ </ p >
154148 </ div >
155149 ) ;
156150}
0 commit comments