From 3ac2e7b86a81c18a03c3df4f582bf1ca02a788b9 Mon Sep 17 00:00:00 2001
From: Xavier Abad <77491413+xabg2@users.noreply.github.com>
Date: Thu, 25 Jun 2026 13:28:32 +0200
Subject: [PATCH] feat: tray messages for conversations
---
package.json | 2 +-
src/components/mail/cheaps/MessageCheap.tsx | 15 +++++++++++---
src/components/mail/tray/TrayList.tsx | 5 +++--
.../mail/tray/__test__/MessageCheap.test.tsx | 19 ++++++++++++++++++
.../mail/tray/__test__/TrayList.test.tsx | 20 +++++++++++--------
.../components/mail/tray/Tray.stories.tsx | 10 +++++-----
6 files changed, 52 insertions(+), 19 deletions(-)
diff --git a/package.json b/package.json
index de6e495..6787571 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@internxt/ui",
- "version": "0.1.24",
+ "version": "0.1.25",
"description": "Library of Internxt components",
"repository": {
"type": "git",
diff --git a/src/components/mail/cheaps/MessageCheap.tsx b/src/components/mail/cheaps/MessageCheap.tsx
index 50240f4..8aa1476 100644
--- a/src/components/mail/cheaps/MessageCheap.tsx
+++ b/src/components/mail/cheaps/MessageCheap.tsx
@@ -15,12 +15,15 @@ export interface MessageCheapProps {
};
active?: boolean;
selected?: boolean;
+ participants?: string[];
onClick: (id: string, isRead?: boolean) => void;
onSelect?: (id: string) => void;
}
-const MessageCheap = ({ email, active, selected, onClick, onSelect }: MessageCheapProps) => {
+const MessageCheap = ({ email, active, selected, participants, onClick, onSelect }: MessageCheapProps) => {
const isHighlighted = active || selected;
+ const isConversation = (participants?.length ?? 0) > 1;
+ const displayName = isConversation ? participants!.join(' & ') : email.from.name;
const handleSelect: React.MouseEventHandler = (e) => {
e.stopPropagation();
@@ -39,7 +42,13 @@ const MessageCheap = ({ email, active, selected, onClick, onSelect }: MessageChe
selected ? 'opacity-0' : 'opacity-100 group-hover:opacity-0'
}`}
>
-
{email.from.name}
+{displayName}
diff --git a/src/components/mail/tray/TrayList.tsx b/src/components/mail/tray/TrayList.tsx index 0f06e97..09ded8b 100644 --- a/src/components/mail/tray/TrayList.tsx +++ b/src/components/mail/tray/TrayList.tsx @@ -9,7 +9,7 @@ export interface TrayListProps { from: { name: string; avatar: string; - }; + }[]; subject: string; createdAt: string; body: string; @@ -95,7 +95,8 @@ const TrayList = ({ {mails.map((email) => (