diff --git a/components/mail/mail-list.tsx b/components/mail/mail-list.tsx index 84c11792..9c5e7598 100644 --- a/components/mail/mail-list.tsx +++ b/components/mail/mail-list.tsx @@ -2,10 +2,18 @@ import { Mail } from '@/hooks/use-mail'; interface MailListProps { mails: Mail[]; - onMailClick: (mail: Mail) => void; + onMailClick?: (mail: Mail) => void; } -export const MailList = ({ mails, onMailClick }: MailListProps) => { +export const MailList = ({ mails = [], onMailClick }: MailListProps) => { + if (!mails || mails.length === 0) { + return ( +
+

No emails found

+
+ ); + } + return (
{mails.map((mail) => ( @@ -14,7 +22,7 @@ export const MailList = ({ mails, onMailClick }: MailListProps) => { className={`p-4 border rounded-lg cursor-pointer hover:bg-gray-50 ${ !mail.read ? 'font-semibold' : '' }`} - onClick={() => onMailClick(mail)} + onClick={() => onMailClick?.(mail)} >
diff --git a/hooks/use-mail.ts b/hooks/use-mail.ts index c3412913..37f0c1ad 100644 --- a/hooks/use-mail.ts +++ b/hooks/use-mail.ts @@ -29,9 +29,10 @@ export const useMail = () => { throw new Error('Failed to fetch mails'); } const data = await response.json(); - setMails(data.emails); + setMails(data.emails || []); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to fetch mails'); + setMails([]); } finally { setIsLoading(false); }