From 35f8d58c653e71b096ff9b25a615f59d4afb1566 Mon Sep 17 00:00:00 2001 From: Thomas Petersen Date: Thu, 14 May 2026 20:42:52 -0400 Subject: [PATCH] fix(ui): expand content width and align message metadata Co-authored-by: Cursor --- .../src/features/channels/ui/ChannelPane.tsx | 2 +- .../src/features/messages/ui/DayDivider.tsx | 2 +- .../features/messages/ui/MessageComposer.tsx | 2 +- .../src/features/messages/ui/MessageRow.tsx | 129 +++++++------- .../features/messages/ui/MessageTimeline.tsx | 2 +- .../features/messages/ui/MessageTimestamp.tsx | 4 +- .../features/messages/ui/SystemMessageRow.tsx | 161 +++++++++--------- .../messages/ui/TypingIndicatorRow.tsx | 1 - desktop/src/shared/ui/ViewLoadingFallback.tsx | 4 +- web/src/features/repos/ui/RepoDetailPage.tsx | 6 +- web/src/features/repos/ui/ReposPage.tsx | 4 +- 11 files changed, 164 insertions(+), 153 deletions(-) diff --git a/desktop/src/features/channels/ui/ChannelPane.tsx b/desktop/src/features/channels/ui/ChannelPane.tsx index 93060be3a3..90dd441cd3 100644 --- a/desktop/src/features/channels/ui/ChannelPane.tsx +++ b/desktop/src/features/channels/ui/ChannelPane.tsx @@ -401,7 +401,7 @@ export const ChannelPane = React.memo(function ChannelPane({ showTopBorder={false} />
-
+
{hasComposerBotActivity ? (
diff --git a/desktop/src/features/messages/ui/MessageComposer.tsx b/desktop/src/features/messages/ui/MessageComposer.tsx index 0f870985c1..9e08ff4be4 100644 --- a/desktop/src/features/messages/ui/MessageComposer.tsx +++ b/desktop/src/features/messages/ui/MessageComposer.tsx @@ -555,7 +555,7 @@ export function MessageComposer({ aria-hidden="true" className="absolute inset-x-0 bottom-0 h-5 bg-background" /> -
+
); - const metadataNode = ( -
-
-
- -
-
+ const actionBarNode = ( +
+ +
+ ); + + const inlineMetadataNode = ( +
+ {message.pending ? (

Sending @@ -211,7 +213,6 @@ export const MessageRow = React.memo( This message has been edited ) : null} -

); @@ -281,52 +282,64 @@ export const MessageRow = React.memo(
+ {actionBarNode} {isThreadReplyLayout ? ( - <> -
- {message.pubkey ? ( - + {message.pubkey ? ( + + - - ) : ( - <> -
- {avatarNode} -
- {authorNode} - - )} -
-
- {message.personaDisplayName && - message.personaDisplayName !== message.author ? ( - - {message.personaDisplayName} - - ) : null} - {metadataNode} -
+ + + ) : ( + authorNode + )} + {inlineMetadataNode} + {message.personaDisplayName && + message.personaDisplayName !== message.author ? ( + + {message.personaDisplayName} + + ) : null}
+
{messageBodyNode}
-
{messageBodyNode}
- +
) : ( <> {message.pubkey ? ( @@ -349,7 +362,7 @@ export const MessageRow = React.memo(
{avatarNode}
)}
-
+
{message.pubkey ? ( {message.personaDisplayName} ) : null} - {metadataNode}
{messageBodyNode}
diff --git a/desktop/src/features/messages/ui/MessageTimeline.tsx b/desktop/src/features/messages/ui/MessageTimeline.tsx index 7e223a2555..8f0500ed3b 100644 --- a/desktop/src/features/messages/ui/MessageTimeline.tsx +++ b/desktop/src/features/messages/ui/MessageTimeline.tsx @@ -135,7 +135,7 @@ export const MessageTimeline = React.memo(function MessageTimeline({ ref={scrollContainerRef} >
diff --git a/desktop/src/features/messages/ui/MessageTimestamp.tsx b/desktop/src/features/messages/ui/MessageTimestamp.tsx index fe6ff873bc..e8285d173f 100644 --- a/desktop/src/features/messages/ui/MessageTimestamp.tsx +++ b/desktop/src/features/messages/ui/MessageTimestamp.tsx @@ -11,7 +11,9 @@ export function MessageTimestamp({ return ( -

{time}

+

+ {time} +

{formatFullDateTime(createdAt)} diff --git a/desktop/src/features/messages/ui/SystemMessageRow.tsx b/desktop/src/features/messages/ui/SystemMessageRow.tsx index 05fea9bd73..0bd848a68d 100644 --- a/desktop/src/features/messages/ui/SystemMessageRow.tsx +++ b/desktop/src/features/messages/ui/SystemMessageRow.tsx @@ -200,7 +200,7 @@ export const SystemMessageRow = React.memo(function SystemMessageRow({ return (
@@ -211,9 +211,15 @@ export const SystemMessageRow = React.memo(function SystemMessageRow({ testId="system-message-avatar" />
-

- {description.title} -

+
+

+ {description.title} +

+ +

{description.action}

@@ -235,86 +241,77 @@ export const SystemMessageRow = React.memo(function SystemMessageRow({ ) : null}
-
-
-
- {canToggleReactions ? ( -
+ {canToggleReactions ? ( +
+
+ -
- - - - - - - - React - - - {reactionErrorMessage ? ( -
-

- {reactionErrorMessage} -

-
- ) : null} - { - void handleReactionSelect(emoji.native).finally( - () => { - setIsReactionPickerOpen(false); - }, - ); - }} - theme="auto" - previewPosition="none" - skinTonePosition="search" - set="native" - maxFrequentRows={2} - perLine={8} - /> -
-
-
-
- ) : null} + + + + + + + React + + + {reactionErrorMessage ? ( +
+

+ {reactionErrorMessage} +

+
+ ) : null} + { + void handleReactionSelect(emoji.native).finally(() => { + setIsReactionPickerOpen(false); + }); + }} + theme="auto" + previewPosition="none" + skinTonePosition="search" + set="native" + maxFrequentRows={2} + perLine={8} + /> +
+ +
-
- + ) : null}
diff --git a/desktop/src/features/messages/ui/TypingIndicatorRow.tsx b/desktop/src/features/messages/ui/TypingIndicatorRow.tsx index 2a843ad9fc..cb0278c7c7 100644 --- a/desktop/src/features/messages/ui/TypingIndicatorRow.tsx +++ b/desktop/src/features/messages/ui/TypingIndicatorRow.tsx @@ -91,7 +91,6 @@ export function TypingIndicatorRow({ className={cn( "flex w-full items-center gap-2", isActivityVariant && "h-full", - !isActivityVariant && "mx-auto max-w-4xl", )} >
diff --git a/desktop/src/shared/ui/ViewLoadingFallback.tsx b/desktop/src/shared/ui/ViewLoadingFallback.tsx index 491b5f8455..64dbc4f2c8 100644 --- a/desktop/src/shared/ui/ViewLoadingFallback.tsx +++ b/desktop/src/shared/ui/ViewLoadingFallback.tsx @@ -177,13 +177,13 @@ function ChannelLoadingBody() { return (
-
+
-
+
diff --git a/web/src/features/repos/ui/RepoDetailPage.tsx b/web/src/features/repos/ui/RepoDetailPage.tsx index 52bd17fcc2..8c86ffe4bc 100644 --- a/web/src/features/repos/ui/RepoDetailPage.tsx +++ b/web/src/features/repos/ui/RepoDetailPage.tsx @@ -60,7 +60,7 @@ function CopyableUrl({ url }: { url: string }) { function DetailSkeleton() { return ( -
+
@@ -181,7 +181,7 @@ export function RepoDetailPage() { if (!repo) { return ( -
+
+
{/* Main content */}
{/* Back link */} diff --git a/web/src/features/repos/ui/ReposPage.tsx b/web/src/features/repos/ui/ReposPage.tsx index 0cdadc108d..0e1ecdb853 100644 --- a/web/src/features/repos/ui/ReposPage.tsx +++ b/web/src/features/repos/ui/ReposPage.tsx @@ -101,7 +101,7 @@ export function ReposPage() { if (isLoading) { return ( -
+

Repositories @@ -122,7 +122,7 @@ export function ReposPage() { } return ( -
+
{/* Main content */}
{/* Mobile-only connect button */}