diff --git a/app/courrier/page.tsx b/app/courrier/page.tsx index baafd4cc..7ef80ff7 100644 --- a/app/courrier/page.tsx +++ b/app/courrier/page.tsx @@ -507,24 +507,26 @@ export default function CourrierPage() { setAvailableFolders(data.folders); } - // Process emails keeping exact folder names - const processedEmails = (data.emails || []).map((email: any) => ({ - id: Number(email.id), - accountId: 1, - from: email.from || '', - fromName: email.fromName || email.from?.split('@')[0] || '', - to: email.to || '', - subject: email.subject || '(No subject)', - body: email.body || '', - date: email.date || new Date().toISOString(), - read: email.read || false, - starred: email.starred || false, - folder: email.folder || currentView, - cc: email.cc, - bcc: email.bcc, - flags: email.flags || [], - raw: email.body || '' - })); + // Process emails keeping exact folder names and sort by date + const processedEmails = (data.emails || []) + .map((email: any) => ({ + id: Number(email.id), + accountId: 1, + from: email.from || '', + fromName: email.fromName || email.from?.split('@')[0] || '', + to: email.to || '', + subject: email.subject || '(No subject)', + body: email.body || '', + date: email.date || new Date().toISOString(), + read: email.read || false, + starred: email.starred || false, + folder: email.folder || currentView, + cc: email.cc, + bcc: email.bcc, + flags: email.flags || [], + raw: email.body || '' + })) + .sort((a: Email, b: Email) => new Date(b.date).getTime() - new Date(a.date).getTime()); // Only update unread count if we're in the Inbox folder if (currentView === 'INBOX') { @@ -535,7 +537,9 @@ export default function CourrierPage() { } if (isLoadMore) { - setEmails(prev => [...prev, ...processedEmails]); + setEmails(prev => [...prev, ...processedEmails].sort((a: Email, b: Email) => + new Date(b.date).getTime() - new Date(a.date).getTime() + )); setPage(prev => prev + 1); } else { setEmails(processedEmails);