import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { ListOrdered, Check, X } from "lucide-react"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import Image from "next/image"; import type { Toy, RentalRequest } from "@/types"; import { getAllToys } from "@/data/operations"; import { Badge } from "@/components/ui/badge"; // This is still mock data. In a real app, this would come from the database. function getMockRequests(): RentalRequest[] { const allToys = getAllToys(); const myToys = allToys.filter(t => t.ownerId === 1); if (myToys.length === 0) return []; const rentalRequests: RentalRequest[] = [ { id: 'req1', toy: myToys[0], requesterName: 'Charlie Brown', requesterId: 4, requestedDates: 'August 10, 2024 - August 17, 2024', status: 'pending', message: 'My son would love to play with these for his birthday week!', dataAiHint: myToys[0]?.category.toLowerCase(), }, { id: 'req2', toy: myToys.length > 1 ? myToys[1] : myToys[0], requesterName: 'Diana Prince', requesterId: 5, requestedDates: 'September 1, 2024 - September 5, 2024', status: 'approved', dataAiHint: (myToys.length > 1 ? myToys[1] : myToys[0])?.category.toLowerCase(), }, { id: 'req3', toy: myToys[0], requesterName: 'Edward Nigma', requesterId: 6, requestedDates: 'July 20, 2024 - July 22, 2024', status: 'declined', message: 'Looking for a weekend rental.', dataAiHint: myToys[0]?.category.toLowerCase(), }, ]; return rentalRequests; } const currentUserToyRequests = getMockRequests(); export default function RentalRequestsPage() { return (

Rental Requests

Manage incoming rental requests for your toys.

{currentUserToyRequests.length === 0 ? ( No Rental Requests You currently have no pending rental requests for your toys.

When someone requests to rent one of your toys, it will appear here.

) : (
{currentUserToyRequests.map(request => ( ))}
)}
); } interface RequestItemCardProps { request: RentalRequest; } function RequestItemCard({ request }: RequestItemCardProps) { const placeholderHint = request.dataAiHint || request.toy.category.toLowerCase() || "toy"; const getStatusBadgeVariant = (status: RentalRequest['status']) => { if (status === 'approved') return 'default'; // default is primary if (status === 'declined') return 'destructive'; return 'secondary'; // pending }; return (
{request.toy.name}
{request.toy.name} {request.status}

Requested by: {request.requesterName}

Dates: {request.requestedDates}

{request.message && (

Message: "{request.message}"

)} {request.status === 'pending' && (
)} {request.status !== 'pending' && (
)}
); }