solve mail backend 7

This commit is contained in:
alma 2025-04-17 14:02:04 +02:00
parent 97068d5f6d
commit 69519dd8d1
2 changed files with 13 additions and 4 deletions

View File

@ -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 (
<div className="flex items-center justify-center h-64">
<p className="text-gray-500">No emails found</p>
</div>
);
}
return (
<div className="flex flex-col space-y-2">
{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)}
>
<div className="flex justify-between items-start">
<div className="flex-1">

View File

@ -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);
}