import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { mockRentalRequests } from "@/lib/mockData"; import type { RentalRequest, MessageEntry } from "@/types"; import { getI18n } from "@/locales/server"; import type { Locale } from "@/locales/server"; import Link from "next/link"; import { MessageSquareQuote, ToyBrick } from "lucide-react"; import { format } from 'date-fns'; const currentUserId = 1; // Assume this is the logged-in user's ID // Helper function to get the other participant in a conversation const getOtherParticipant = (request: RentalRequest, currentUserId: number) => { if (request.toy.ownerId === currentUserId) { return { id: request.requesterId, name: request.requesterName }; } return { id: request.toy.ownerId, name: request.toy.ownerName }; }; export default async function MessagesPage({ params }: { params: { locale: Locale } }) { const t = await getI18n(); const locale = params.locale; const userConversations = mockRentalRequests.filter(req => (req.toy.ownerId === currentUserId || req.requesterId === currentUserId) && req.messages && req.messages.length > 0 ); return (

{t('dashboard.messages.title')}

{t('dashboard.messages.description')}

{userConversations.length === 0 ? ( {t('dashboard.messages.no_messages_title')} {t('dashboard.messages.no_messages_description')} ) : (
{userConversations.map(request => { const otherParticipant = getOtherParticipant(request, currentUserId); const lastMessage = request.messages![request.messages!.length - 1]; const formattedTimestamp = lastMessage ? format(new Date(lastMessage.timestamp), 'PPp') : ''; return ( {t('dashboard.messages.conversation_with', { name: otherParticipant.name })} {t('dashboard.messages.about_toy', { toyName: request.toy.name })} {lastMessage && (

{t('dashboard.messages.last_message_from', { senderName: lastMessage.senderName, text: lastMessage.text })}

{formattedTimestamp}

)}
); })}
)}
); }