diff --git a/app/mail/page.tsx b/app/mail/page.tsx index da6d397..8bb6bf1 100644 --- a/app/mail/page.tsx +++ b/app/mail/page.tsx @@ -431,10 +431,10 @@ export default function MailPage() { const [showBcc, setShowBcc] = useState(false); const [emails, setEmails] = useState([]); const [error, setError] = useState(null); - const [composeSubject, setComposeSubject] = useState(''); const [composeTo, setComposeTo] = useState(''); const [composeCc, setComposeCc] = useState(''); const [composeBcc, setComposeBcc] = useState(''); + const [composeSubject, setComposeSubject] = useState(''); const [composeBody, setComposeBody] = useState(''); const [selectedEmail, setSelectedEmail] = useState(null); const [sidebarOpen, setSidebarOpen] = useState(true); @@ -711,355 +711,368 @@ export default function MailPage() { } return ( -
- {/* Sidebar */} -
- {/* Courrier Title */} -
-
- - COURRIER -
-
- - {/* Compose button */} -
- -
- - {/* Accounts Section */} -
+ <> +
+ {/* Sidebar */} +
+ {/* Courrier Title */}
+
+ + COURRIER +
+
+ + {/* Compose button */} +
- - {foldersDropdownOpen && ( -
- {accounts.map(account => ( -
-
+ + {/* Accounts Section */} +
+
+ + + {foldersDropdownOpen && ( +
+ {accounts.map(account => ( +
- - - {/* Account Actions Dropdown */} - {showAccountActions === account.id && ( -
- - -
- )} -
- ))} - - {/* Add Account Button */} - -
- )} -
- - {/* Navigation */} - -
-
- - {/* Main content area */} -
- {/* Email list */} -
- {/* Email list header */} -
-
- {emails.length > 0 && ( - - )} -

- {currentView === 'starred' ? 'Starred' : currentView} -

-
-
- {emails.length} emails -
-
- - {/* Bulk Actions Bar */} - {showBulkActions && selectedEmails.length > 0 && ( -
- {selectedEmails.length} selected -
- -
-
- )} - - {/* Email List */} - {loading ? ( -
-
-
- ) : ( -
    - {emails.map((email) => ( -
  • handleEmailSelect(email.id)} - > -
    -
    -
    - e.stopPropagation()} - onCheckedChange={(checked) => { - if (checked) { - setSelectedEmails([...selectedEmails, email.id.toString()]); - } else { - setSelectedEmails(selectedEmails.filter(id => id !== email.id.toString())); - } - }} - /> -
    -

    - {email.fromName || email.from} -

    -

    {email.subject}

    +
    +
    +
    + {account.name} +
    + {account.email}
    -
    -
    - {formatDate(email.date)} -
    + + + {/* Account Actions Dropdown */} + {showAccountActions === account.id && ( +
    + + +
    + )}
    -
    + ))} + + {/* Add Account Button */} + +
    + )} +
+ + {/* Navigation */} + +
- {/* Email preview panel */} -
- {selectedEmail ? ( -
-
-

{selectedEmail.subject}

+ {/* Main content area */} +
+ {/* Email list */} +
+ {/* Email list header */} +
+
+ {emails.length > 0 && ( + + )} +

+ {currentView === 'starred' ? 'Starred' : currentView} +

+
+
+ {emails.length} emails +
+
+ + {/* Bulk Actions Bar */} + {showBulkActions && selectedEmails.length > 0 && ( +
+ {selectedEmails.length} selected
- - -
+ )} -
- - - {selectedEmail.fromName?.charAt(0) || selectedEmail.from.charAt(0)} - - -
-

- {selectedEmail.fromName || selectedEmail.from} -

-

- to {selectedEmail.to} -

-
-
- {formatDate(selectedEmail.date)} -
+ {/* Email List */} + {loading ? ( +
+
- -
- {(() => { - try { - const parsed = parseFullEmail(selectedEmail.body); - return ( -
- {/* Display HTML content if available, otherwise fallback to text */} -
- - {/* Display attachments if present */} - {parsed.attachments && parsed.attachments.length > 0 && ( -
-

Attachments

-
- {parsed.attachments.map((attachment, index) => ( -
- - - {attachment.filename} - -
- ))} -
+ ) : ( +
    + {emails.map((email) => ( +
  • handleEmailSelect(email.id)} + > +
    +
    +
    + e.stopPropagation()} + onCheckedChange={(checked) => { + if (checked) { + setSelectedEmails([...selectedEmails, email.id.toString()]); + } else { + setSelectedEmails(selectedEmails.filter(id => id !== email.id.toString())); + } + }} + /> +
    +

    + {email.fromName || email.from} +

    +

    {email.subject}

    - )} +
    +
    + {formatDate(email.date)} + +
    - ); - } catch (e) { - console.error('Error parsing email:', e); - return selectedEmail.body; - } - })()} +
    +
  • + ))} +
+ )} +
+ + {/* Email preview panel */} +
+ {selectedEmail ? ( +
+
+

{selectedEmail.subject}

+
+ + + + +
+
+ +
+ + + {selectedEmail.fromName?.charAt(0) || selectedEmail.from.charAt(0)} + + +
+

+ {selectedEmail.fromName || selectedEmail.from} +

+

+ to {selectedEmail.to} +

+
+
+ {formatDate(selectedEmail.date)} +
+
+ +
+ {(() => { + try { + const parsed = parseFullEmail(selectedEmail.body); + return ( +
+ {/* Display HTML content if available, otherwise fallback to text */} +
+ + {/* Display attachments if present */} + {parsed.attachments && parsed.attachments.length > 0 && ( +
+

Attachments

+
+ {parsed.attachments.map((attachment, index) => ( +
+ + + {attachment.filename} + +
+ ))} +
+
+ )} +
+ ); + } catch (e) { + console.error('Error parsing email:', e); + return selectedEmail.body; + } + })()} +
-
- ) : ( -
- -

Select an email to view its contents

-
- )} + ) : ( +
+ +

Select an email to view its contents

+
+ )} +
@@ -1068,16 +1081,13 @@ export default function MailPage() {
-

- {composeSubject.startsWith('Re:') ? 'Reply' : - composeSubject.startsWith('Fwd:') ? 'Forward' : - 'New Message'} -

+

New Message

-
+ ); } \ No newline at end of file