Neah version mail remove mail correction 7
This commit is contained in:
parent
2173232f67
commit
ca4d86f238
@ -1546,14 +1546,60 @@ export default function MailPage() {
|
||||
setPage(1);
|
||||
|
||||
try {
|
||||
const response = await fetch(`/api/mail?folder=${encodeURIComponent(newMailbox)}`);
|
||||
// Optimize the request by adding a timeout
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
|
||||
|
||||
const response = await fetch(`/api/mail?folder=${encodeURIComponent(newMailbox)}&page=1&limit=${emailsPerPage}`, {
|
||||
signal: controller.signal
|
||||
});
|
||||
|
||||
clearTimeout(timeoutId);
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch emails');
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
setEmails(data.emails);
|
||||
|
||||
// Process emails more efficiently
|
||||
const processedEmails = data.emails.map((email: any) => ({
|
||||
id: Number(email.id),
|
||||
accountId: 1,
|
||||
from: email.from || '',
|
||||
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 || newMailbox,
|
||||
cc: email.cc,
|
||||
bcc: email.bcc,
|
||||
flags: email.flags || []
|
||||
}));
|
||||
|
||||
setEmails(processedEmails);
|
||||
setHasMore(processedEmails.length === emailsPerPage);
|
||||
|
||||
// Only update unread count if we're in the Inbox folder
|
||||
if (newMailbox === 'INBOX') {
|
||||
const unreadInboxEmails = processedEmails.filter(
|
||||
(email: Email) => !email.read && email.folder === 'INBOX'
|
||||
).length;
|
||||
setUnreadCount(unreadInboxEmails);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err instanceof Error ? err.message : 'Failed to fetch emails');
|
||||
if (err instanceof Error) {
|
||||
if (err.name === 'AbortError') {
|
||||
setError('Request timed out. Please try again.');
|
||||
} else {
|
||||
setError(err.message);
|
||||
}
|
||||
} else {
|
||||
setError('Failed to fetch emails');
|
||||
}
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user