diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index a72a5638..9f978732 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -1499,9 +1499,12 @@ export default function Home() { } else { selectAllEmails(); } - } else { - // Enter selection mode by selecting the first email - if (emails.length > 0) toggleEmailSelection(emails[0].id); + } else if (emails.length > 0) { + const currentId = selectedEmail?.id; + const target = currentId && emails.some((e) => e.id === currentId) + ? currentId + : emails[0].id; + toggleEmailSelection(target); } }} className={cn( diff --git a/components/contacts/contact-list.tsx b/components/contacts/contact-list.tsx index c8445fe6..b34e7287 100644 --- a/components/contacts/contact-list.tsx +++ b/components/contacts/contact-list.tsx @@ -274,7 +274,10 @@ export function ContactList({ if (allSelected) onClearSelection(); else onSelectAll(sortedIds); } else if (sortedIds.length > 0) { - onToggleSelection(sortedIds[0]); + const target = selectedContactId && sortedIds.includes(selectedContactId) + ? selectedContactId + : sortedIds[0]; + onToggleSelection(target); } }} className={cn( diff --git a/components/email/email-list-item.tsx b/components/email/email-list-item.tsx index f12b5a6d..54e35320 100644 --- a/components/email/email-list-item.tsx +++ b/components/email/email-list-item.tsx @@ -99,7 +99,8 @@ export function EmailListItem({ email, selected, onClick, onContextMenu, onToggl : "bg-background" ), selected && !colorTag && "shadow-sm", - !colorTag && !selected && "hover:bg-muted hover:shadow-sm", + !colorTag && !selected && !isChecked && "hover:bg-muted hover:shadow-sm", + !colorTag && (selected || isChecked) && "hover:bg-accent hover:shadow-sm", colorTag && "hover:brightness-95 dark:hover:brightness-110", isUnread && !selected && !colorTag && "bg-warning/10", // Add visual feedback for checked state @@ -302,7 +303,7 @@ export function EmailListItem({ email, selected, onClick, onContextMenu, onToggl {/* Hover Quick Actions */} ( : "bg-background" ), selected && !resolvedColorTag && "shadow-sm", - !resolvedColorTag && !selected && "hover:bg-muted hover:shadow-sm", + !resolvedColorTag && !selected && !isChecked && "hover:bg-muted hover:shadow-sm", + !resolvedColorTag && (selected || isChecked) && "hover:bg-accent hover:shadow-sm", resolvedColorTag && "hover:brightness-95 dark:hover:brightness-110", isUnread && !resolvedColorTag && "bg-accent/30", isChecked && "ring-2 ring-primary/20 bg-accent/40", @@ -323,7 +324,7 @@ const SingleEmailItem = React.forwardRef( {/* Hover Quick Actions */} onToggleStar(latestEmail) : undefined} onMarkAsRead={onMarkAsRead ? (read) => onMarkAsRead(latestEmail, read) : undefined} onDelete={onDelete ? () => onDelete(latestEmail) : undefined}