diff --git a/components/email/email-list-item.tsx b/components/email/email-list-item.tsx
index 5f782fe4..07de2c88 100644
--- a/components/email/email-list-item.tsx
+++ b/components/email/email-list-item.tsx
@@ -51,7 +51,8 @@ export function EmailListItem({ email, selected, onClick, onContextMenu, onToggl
const sender = showRecipient ? (email.to?.[0] ?? email.from?.[0]) : email.from?.[0];
const isFocusedMailLayout = mailLayout === 'focus';
const hideJunkAvatarImages = currentMailboxRole === 'junk' && !showAvatarsInJunk;
- const inlinePreview = showPreview && email.preview ? ` ${email.preview}` : '';
+ const trimmedPreview = email.preview?.replace(/^\s+/, '') ?? '';
+ const inlinePreview = showPreview && trimmedPreview ? ` ${trimmedPreview}` : '';
// Resolve color tags using keyword definitions from settings; unknown tags fall back to gray
const colorTagIds = getEmailColorTags(email.keywords);
@@ -295,7 +296,7 @@ export function EmailListItem({ email, selected, onClick, onContextMenu, onToggl
? "text-muted-foreground"
: "text-muted-foreground/80"
)}>
- {email.preview || "No preview available"}
+ {trimmedPreview || "No preview available"}
)}
>
diff --git a/components/email/thread-list-item.tsx b/components/email/thread-list-item.tsx
index 3dfa42a2..9213ff16 100644
--- a/components/email/thread-list-item.tsx
+++ b/components/email/thread-list-item.tsx
@@ -71,7 +71,8 @@ const SingleEmailItem = React.forwardRef(
const accountColor = email.accountId ? getAccountById(email.accountId)?.avatarColor : undefined;
const isChecked = selectedEmailIds.has(email.id);
const isFocusedMailLayout = mailLayout === 'focus';
- const inlinePreview = showPreview && email.preview ? ` ${email.preview}` : '';
+ const trimmedPreview = email.preview?.replace(/^\s+/, '') ?? '';
+ const inlinePreview = showPreview && trimmedPreview ? ` ${trimmedPreview}` : '';
// Resolve color tags using keyword definitions; unknown tags fall back to gray
const tagIds = getEmailColorTags(email.keywords);
@@ -316,7 +317,7 @@ const SingleEmailItem = React.forwardRef(
? "text-muted-foreground"
: "text-muted-foreground/80"
)}>
- {email.preview || "No preview available"}
+ {trimmedPreview || "No preview available"}
)}
>
@@ -366,7 +367,8 @@ export const ThreadListItem = React.forwardRef state.isMobile);
const { latestEmail, participantNames, hasUnread, hasStarred, hasAttachment, hasAnswered, hasForwarded, emailCount } = thread;
const isFocusedMailLayout = mailLayout === 'focus';
- const inlinePreview = showPreview && latestEmail.preview ? ` ${latestEmail.preview}` : '';
+ const trimmedPreview = latestEmail.preview?.replace(/^\s+/, '') ?? '';
+ const inlinePreview = showPreview && trimmedPreview ? ` ${trimmedPreview}` : '';
const { selectedMailbox, mailboxes, selectedEmailIds, toggleEmailSelection, selectRangeEmails, clearSelection, isUnifiedView } = useEmailStore();
const getAccountById = useAccountStore((state) => state.getAccountById);
@@ -722,7 +724,7 @@ export const ThreadListItem = React.forwardRef
- {latestEmail.preview || "No preview available"}
+ {trimmedPreview || "No preview available"}
)}
>