mail page ui correction maj compose 20 bis 12
This commit is contained in:
parent
12cd7de9bd
commit
ca3d1d832b
@ -177,7 +177,7 @@ export async function GET() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort results in reverse order (newest first) and take last 20
|
// Sort results to get the most recent messages first
|
||||||
const messageNumbers = results
|
const messageNumbers = results
|
||||||
.sort((a, b) => b - a)
|
.sort((a, b) => b - a)
|
||||||
.slice(0, 20);
|
.slice(0, 20);
|
||||||
@ -195,7 +195,7 @@ export async function GET() {
|
|||||||
struct: true
|
struct: true
|
||||||
});
|
});
|
||||||
|
|
||||||
f.on('message', (msg, seqno) => {
|
f.on('message', (msg) => {
|
||||||
const email: any = {
|
const email: any = {
|
||||||
id: '',
|
id: '',
|
||||||
from: '',
|
from: '',
|
||||||
@ -205,7 +205,8 @@ export async function GET() {
|
|||||||
starred: false,
|
starred: false,
|
||||||
body: '',
|
body: '',
|
||||||
to: '',
|
to: '',
|
||||||
folder: folderMap[folderName] || folderName.toLowerCase()
|
folder: folderName, // Keep the original folder name
|
||||||
|
draft: false
|
||||||
};
|
};
|
||||||
|
|
||||||
msg.on('body', (stream, info) => {
|
msg.on('body', (stream, info) => {
|
||||||
@ -234,12 +235,10 @@ export async function GET() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
msg.once('end', () => {
|
msg.once('end', () => {
|
||||||
// Only add non-draft emails to INBOX
|
// Only add the email if it belongs in this folder
|
||||||
if (folderName === 'INBOX' && !email.draft) {
|
if (folderName === 'INBOX' && !email.draft) {
|
||||||
allEmails.push(email);
|
allEmails.push(email);
|
||||||
}
|
} else if (folderName !== 'INBOX') {
|
||||||
// Add all emails from other folders
|
|
||||||
else if (folderName !== 'INBOX') {
|
|
||||||
allEmails.push(email);
|
allEmails.push(email);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -51,6 +51,7 @@ interface Email {
|
|||||||
cc?: string;
|
cc?: string;
|
||||||
bcc?: string;
|
bcc?: string;
|
||||||
flags?: string[];
|
flags?: string[];
|
||||||
|
draft?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Attachment {
|
interface Attachment {
|
||||||
@ -477,12 +478,18 @@ export default function MailPage() {
|
|||||||
|
|
||||||
// Update the filteredEmails logic
|
// Update the filteredEmails logic
|
||||||
const filteredEmails = useMemo(() => {
|
const filteredEmails = useMemo(() => {
|
||||||
|
console.log('Filtering emails:', {
|
||||||
|
total: emails.length,
|
||||||
|
folders: emails.map(e => e.folder),
|
||||||
|
currentView
|
||||||
|
});
|
||||||
|
|
||||||
return emails.filter(email => {
|
return emails.filter(email => {
|
||||||
switch (currentView) {
|
switch (currentView) {
|
||||||
case 'inbox':
|
case 'inbox':
|
||||||
return email.folder === 'INBOX';
|
return email.folder === 'INBOX' && !email.draft;
|
||||||
case 'starred':
|
case 'starred':
|
||||||
return email.starred;
|
return Boolean(email.starred);
|
||||||
case 'sent':
|
case 'sent':
|
||||||
return email.folder === 'Sent';
|
return email.folder === 'Sent';
|
||||||
case 'trash':
|
case 'trash':
|
||||||
@ -527,13 +534,12 @@ export default function MailPage() {
|
|||||||
checkCredentials();
|
checkCredentials();
|
||||||
}, [router]);
|
}, [router]);
|
||||||
|
|
||||||
// Update the loadEmails function to handle different folders correctly
|
// Update the loadEmails function
|
||||||
const loadEmails = async () => {
|
const loadEmails = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
setError(null);
|
setError(null);
|
||||||
|
|
||||||
// Fetch emails based on the current view
|
|
||||||
const response = await fetch('/api/mail');
|
const response = await fetch('/api/mail');
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error('Failed to load emails');
|
throw new Error('Failed to load emails');
|
||||||
@ -553,13 +559,13 @@ export default function MailPage() {
|
|||||||
date: email.date || new Date().toISOString(),
|
date: email.date || new Date().toISOString(),
|
||||||
read: email.read || false,
|
read: email.read || false,
|
||||||
starred: email.starred || false,
|
starred: email.starred || false,
|
||||||
deleted: email.deleted || false,
|
folder: email.folder || 'INBOX', // Keep original folder name
|
||||||
folder: email.folder || 'inbox'
|
draft: email.draft || false
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Update unread count for inbox
|
// Update unread count for inbox
|
||||||
const unreadInboxEmails = processedEmails.filter(
|
const unreadInboxEmails = processedEmails.filter(
|
||||||
email => !email.read && !email.deleted && email.folder === 'inbox'
|
email => !email.read && email.folder === 'INBOX' && !email.draft
|
||||||
).length;
|
).length;
|
||||||
setUnreadCount(unreadInboxEmails);
|
setUnreadCount(unreadInboxEmails);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user