From 0e62a92771e1781632e7df87977c637193e717c9 Mon Sep 17 00:00:00 2001 From: alma Date: Wed, 16 Apr 2025 18:55:59 +0200 Subject: [PATCH] Neah version mail design fix 5 bis b --- app/mail/page.tsx | 139 ++++++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 59 deletions(-) diff --git a/app/mail/page.tsx b/app/mail/page.tsx index 8f5d1f6..b549163 100644 --- a/app/mail/page.tsx +++ b/app/mail/page.tsx @@ -737,71 +737,90 @@ export default function MailPage() { } }; - // Update the email list header + // Update the email list header with better aligned checkbox and bulk actions const renderEmailListHeader = () => (
-
+
- 0 && selectedEmails.length === emails.length} - onCheckedChange={toggleSelectAll} - className="mt-0.5" - /> +
{/* Match height with email list items */} + 0 && selectedEmails.length === emails.length} + onCheckedChange={toggleSelectAll} + className="ml-1" + /> +

{currentView === 'INBOX' ? 'Inbox' : currentView === 'starred' ? 'Starred' : currentView.charAt(0).toUpperCase() + currentView.slice(1).toLowerCase()}

-
-
- {selectedEmails.length > 0 && ( - <> - - - - - )} - + {emails.length} emails
+ + {selectedEmails.length > 0 && ( +
+ + + +
+ )}
); - // Update the email list item checkbox + // Update sidebar items when available folders change + useEffect(() => { + if (availableFolders.length > 0) { + const newItems = [ + ...initialSidebarItems, + ...availableFolders + .filter(folder => !['INBOX'].includes(folder)) // Exclude folders already in initial items + .map(folder => ({ + view: folder as MailFolder, + label: folder.charAt(0).toUpperCase() + folder.slice(1).toLowerCase(), + icon: getFolderIcon(folder), + folder: folder + })) + ]; + setSidebarItems(newItems); + } + }, [availableFolders]); + + // Update the email list item to match header checkbox alignment const renderEmailListItem = (email: Email) => (
handleEmailSelect(email.id)} > - { - const e = { target: { checked }, stopPropagation: () => {} } as React.ChangeEvent; - handleEmailCheckbox(e, email.id); - }} - onClick={(e) => e.stopPropagation()} - className="mt-1" - /> +
{/* Match height with header */} + { + const e = { target: { checked }, stopPropagation: () => {} } as React.ChangeEvent; + handleEmailCheckbox(e, email.id); + }} + onClick={(e) => e.stopPropagation()} + className="ml-1" + /> +