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"
+ />
+