diff --git a/components/email.tsx b/components/email.tsx index edffb35..557ebb8 100644 --- a/components/email.tsx +++ b/components/email.tsx @@ -39,26 +39,23 @@ export function Email() { try { const response = await fetch('/api/mail'); - const data = await response.json(); + const rawData = await response.json(); - console.log('Raw API response:', data); // Debug log + console.log('Raw API response:', rawData); if (!response.ok) { if (response.status === 401) { signIn(); return; } - throw new Error(data.error || 'Failed to fetch emails'); + throw new Error(rawData.error || 'Failed to fetch emails'); } - // Make sure we're accessing the emails array from the response - if (!Array.isArray(data.emails)) { - console.error('Expected emails array in response, got:', data); - throw new Error('Invalid response format: emails array not found'); - } + // Handle both array and object responses + const emailsArray = Array.isArray(rawData) ? rawData : (rawData.emails || []); // Transform the emails array into the expected format - const transformedEmails = data.emails.map((email: any) => ({ + const transformedEmails = emailsArray.map((email: any) => ({ id: String(email.id), subject: email.subject || '(No subject)', sender: { @@ -69,10 +66,10 @@ export function Email() { isUnread: !email.read })); - console.log('Transformed emails:', transformedEmails); // Debug log + console.log('Transformed emails:', transformedEmails); setEmails(transformedEmails); - setMailUrl(data.mailUrl); + setMailUrl(rawData.mailUrl || 'https://espace.slm-lab.net/apps/mail/'); // Fallback URL setError(null); } catch (err) { console.error('Error fetching emails:', err);