Skip to content

Commit a25ea61

Browse files
charliecreates[bot]CharlieHelpsmichaelmagan
authored
feat: improve ThreadContent component alignment and width TAM-141 (#447)
Co-authored-by: CharlieHelps <[email protected]> Co-authored-by: Michael Magan <[email protected]>
1 parent b09dbf1 commit a25ea61

File tree

4 files changed

+38
-28
lines changed

4 files changed

+38
-28
lines changed

cli/src/registry/message/message.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ const MessageContent = React.forwardRef<HTMLDivElement, MessageContentProps>(
227227
>
228228
{showLoading ? (
229229
<div
230-
className="flex items-center justify-center h-4 py-1"
230+
className="flex items-center justify-start h-4 py-1"
231231
data-slot="message-loading-indicator"
232232
>
233233
<LoadingIndicator />

cli/src/registry/thread-content/thread-content.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ const ThreadContent = React.forwardRef<HTMLDivElement, ThreadContentProps>(
9090
<ThreadContentContext.Provider value={contextValue}>
9191
<div
9292
ref={ref}
93-
className={cn(className)}
93+
className={cn("w-full", className)}
9494
data-slot="thread-content-container"
9595
{...props}
9696
>
@@ -128,42 +128,47 @@ const ThreadContentMessages = React.forwardRef<
128128
return (
129129
<div
130130
ref={ref}
131-
className={cn(className)}
131+
className={cn("w-full", className)}
132132
data-slot="thread-content-messages"
133133
{...props}
134134
>
135135
{messages.map((message, index) => {
136-
const showLoading = isGenerating && index === messages.length - 1;
137-
138136
return (
139137
<div
140138
key={
141139
message.id ??
142-
`${message.role}-${message.createdAt ?? Date.now()}-${message.content?.toString().substring(0, 10)}`
140+
`${message.role}-${
141+
message.createdAt ?? Date.now()
142+
}-${message.content?.toString().substring(0, 10)}`
143143
}
144144
data-slot="thread-content-item"
145145
>
146146
<Message
147147
role={message.role === "assistant" ? "assistant" : "user"}
148148
message={message}
149149
variant={variant}
150-
isLoading={showLoading}
151-
className={
150+
isLoading={isGenerating && index === messages.length - 1}
151+
className={cn(
152+
"flex w-full",
152153
message.role === "assistant"
153-
? "flex justify-start"
154-
: "flex justify-end"
155-
}
154+
? "justify-start"
155+
: "justify-end max-w-3xl",
156+
)}
156157
>
157-
<div className="flex flex-col">
158+
<div
159+
className={cn(
160+
"flex flex-col",
161+
message.role === "assistant" ? "w-full" : "",
162+
)}
163+
>
158164
<MessageContent
159165
className={
160166
message.role === "assistant"
161167
? "text-primary font-sans"
162168
: "text-primary bg-container hover:bg-backdrop font-sans"
163169
}
164170
/>
165-
{/* Rendered component area determines if the message is a canvas message */}
166-
<MessageRenderedComponentArea />
171+
<MessageRenderedComponentArea className="w-full" />
167172
</div>
168173
</Message>
169174
</div>

showcase/src/components/ui/message.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ const MessageContent = React.forwardRef<HTMLDivElement, MessageContentProps>(
227227
>
228228
{showLoading ? (
229229
<div
230-
className="flex items-center justify-center h-4 py-1"
230+
className="flex items-center justify-start h-4 py-1"
231231
data-slot="message-loading-indicator"
232232
>
233233
<LoadingIndicator />

showcase/src/components/ui/thread-content.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ const ThreadContent = React.forwardRef<HTMLDivElement, ThreadContentProps>(
9090
<ThreadContentContext.Provider value={contextValue}>
9191
<div
9292
ref={ref}
93-
className={cn(className)}
93+
className={cn("w-full", className)}
9494
data-slot="thread-content-container"
9595
{...props}
9696
>
@@ -128,42 +128,47 @@ const ThreadContentMessages = React.forwardRef<
128128
return (
129129
<div
130130
ref={ref}
131-
className={cn(className)}
131+
className={cn("w-full", className)}
132132
data-slot="thread-content-messages"
133133
{...props}
134134
>
135135
{messages.map((message, index) => {
136-
const showLoading = isGenerating && index === messages.length - 1;
137-
138136
return (
139137
<div
140138
key={
141139
message.id ??
142-
`${message.role}-${message.createdAt ?? Date.now()}-${message.content?.toString().substring(0, 10)}`
140+
`${message.role}-${
141+
message.createdAt ?? Date.now()
142+
}-${message.content?.toString().substring(0, 10)}`
143143
}
144144
data-slot="thread-content-item"
145145
>
146146
<Message
147147
role={message.role === "assistant" ? "assistant" : "user"}
148148
message={message}
149149
variant={variant}
150-
isLoading={showLoading}
151-
className={
150+
isLoading={isGenerating && index === messages.length - 1}
151+
className={cn(
152+
"flex w-full",
152153
message.role === "assistant"
153-
? "flex justify-start"
154-
: "flex justify-end"
155-
}
154+
? "justify-start"
155+
: "justify-end max-w-3xl",
156+
)}
156157
>
157-
<div className="flex flex-col">
158+
<div
159+
className={cn(
160+
"flex flex-col",
161+
message.role === "assistant" ? "w-full" : "",
162+
)}
163+
>
158164
<MessageContent
159165
className={
160166
message.role === "assistant"
161167
? "text-primary font-sans"
162168
: "text-primary bg-container hover:bg-backdrop font-sans"
163169
}
164170
/>
165-
{/* Rendered component area determines if the message is a canvas message */}
166-
<MessageRenderedComponentArea />
171+
<MessageRenderedComponentArea className="w-full" />
167172
</div>
168173
</Message>
169174
</div>

0 commit comments

Comments
 (0)