Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 29 additions & 30 deletions packages/compass-assistant/src/assistant-chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ const messageFeedFixesStyles = css({
gap: spacing[400],

// TODO(COMPASS-9751): We're setting the font weight to 600 here as the LG styling for the Assistant header isn't set
'& > div > div:has(svg[aria-label="Sparkle Icon"]) p': {
'& > div > div > div:has(svg[aria-label="Sparkle Icon"]) p': {
fontWeight: 600,
},
});
Expand Down Expand Up @@ -174,20 +174,17 @@ export const AssistantChat: React.FunctionComponent<AssistantChatProps> = ({
}
}, [hasNonGenuineConnections, chat, setMessages]);

// Transform AI SDK messages to LeafyGreen chat format and reverse the order of the messages
// for displaying it correctly with flex-direction: column-reverse.
const lgMessages = messages
.map((message) => ({
id: message.id,
messageBody:
message.metadata?.displayText ||
message.parts
?.filter((part) => part.type === 'text')
.map((part) => part.text)
.join(''),
isSender: message.role === 'user',
}))
.reverse();
// Transform AI SDK messages to LeafyGreen chat format
const lgMessages = messages.map((message) => ({
id: message.id,
messageBody:
message.metadata?.displayText ||
message.parts
?.filter((part) => part.type === 'text')
.map((part) => part.text)
.join(''),
isSender: message.role === 'user',
}));

const handleMessageSend = useCallback(
(messageBody: string) => {
Expand Down Expand Up @@ -249,21 +246,23 @@ export const AssistantChat: React.FunctionComponent<AssistantChatProps> = ({
data-testid="assistant-chat-messages"
className={messageFeedFixesStyles}
>
{lgMessages.map((messageFields) => (
<Message
key={messageFields.id}
sourceType="markdown"
{...messageFields}
data-testid={`assistant-message-${messageFields.id}`}
>
{messageFields.isSender === false && (
<MessageActions
onRatingChange={handleFeedback}
onSubmitFeedback={handleFeedback}
/>
)}
</Message>
))}
<div>
{lgMessages.map((messageFields) => (
<Message
key={messageFields.id}
sourceType="markdown"
{...messageFields}
data-testid={`assistant-message-${messageFields.id}`}
>
{messageFields.isSender === false && (
<MessageActions
onRatingChange={handleFeedback}
onSubmitFeedback={handleFeedback}
/>
)}
</Message>
))}
</div>
<DisclaimerText className={disclaimerTextStyles}>
This feature is powered by generative AI. See our{' '}
<Link
Expand Down
Loading