From 757c587b17a287bd546e5bfb9eac4039ca567668 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Mon, 1 Dec 2025 22:41:30 +0000 Subject: [PATCH] Simplify message header markup --- packages/ui/src/components/message-item.tsx | 58 +++++++++++-------- .../ui/src/styles/messaging/message-base.css | 32 ++++++++++ 2 files changed, 65 insertions(+), 25 deletions(-) diff --git a/packages/ui/src/components/message-item.tsx b/packages/ui/src/components/message-item.tsx index fb8e5c5a..8c26c7ca 100644 --- a/packages/ui/src/components/message-item.tsx +++ b/packages/ui/src/components/message-item.tsx @@ -21,12 +21,15 @@ interface MessageItemProps { export default function MessageItem(props: MessageItemProps) { const isUser = () => props.record.role === "user" + const createdTimestamp = () => props.messageInfo?.time?.created ?? props.record.createdAt + const timestamp = () => { - const createdTime = props.messageInfo?.time?.created ?? props.record.createdAt - const date = new Date(createdTime) + const date = new Date(createdTimestamp()) return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) } + const timestampIso = () => new Date(createdTimestamp()).toISOString() + type FilePart = Extract & { url?: string mime?: string @@ -149,6 +152,8 @@ interface MessageItemProps { ? "message-item-base bg-[var(--message-user-bg)] border-l-4 border-[var(--message-user-border)]" : "message-item-base assistant-message bg-[var(--message-assistant-bg)] border-l-4 border-[var(--message-assistant-border)]" + const speakerLabel = () => (isUser() ? "You" : "Assistant") + const agentIdentifier = () => { if (isUser()) return "" const info = props.messageInfo @@ -166,29 +171,31 @@ interface MessageItemProps { return modelID } + const agentMeta = () => { + if (isUser() || !props.showAgentMeta) return "" + const segments: string[] = [] + const agent = agentIdentifier() + const model = modelIdentifier() + if (agent) { + segments.push(`Agent: ${agent}`) + } + if (model) { + segments.push(`Model: ${model}`) + } + return segments.join(" • ") + } + return ( - -
-
-
- - You - - -
- Assistant - - - {(value) => Agent: {value()}} - {(value) => Model: {value()}} - - -
-
-
-
- +
+
+
+ + {speakerLabel()} + + {(meta) => {meta()}} +
+
-
+
+
QUEUED
diff --git a/packages/ui/src/styles/messaging/message-base.css b/packages/ui/src/styles/messaging/message-base.css index 3f7f11ca..8cb31b5f 100644 --- a/packages/ui/src/styles/messaging/message-base.css +++ b/packages/ui/src/styles/messaging/message-base.css @@ -3,6 +3,38 @@ @apply flex flex-col gap-2 p-3 w-full; } +.message-item-header { + @apply flex justify-between items-start gap-2.5; +} + +.message-speaker { + @apply flex flex-col gap-0.5 text-xs; +} + +.message-speaker-label { + font-weight: var(--font-weight-semibold); +} + +.message-speaker-label[data-role="user"] { + color: var(--message-user-border); +} + +.message-speaker-label[data-role="assistant"] { + color: var(--message-assistant-border); +} + +.message-agent-meta { + @apply text-xs text-[var(--message-assistant-border)]; +} + +.message-item-actions { + @apply flex items-center gap-2; +} + +.message-timestamp { + @apply text-[11px] text-[var(--text-muted)]; +} + .assistant-message { /* gap: 0.25rem; */ padding: 0.6rem 0.65rem;