From 888355d0cb47c4f4cf38e7648538774811646d33 Mon Sep 17 00:00:00 2001 From: Indigo Tang Date: Tue, 10 Jun 2025 05:57:18 +0000 Subject: [PATCH] please add owner message box which receive message from rental toy user --- src/app/[locale]/dashboard/requests/page.tsx | 35 ++++++++++++-------- src/locales/en.ts | 2 +- src/locales/zh-TW.ts | 2 +- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/app/[locale]/dashboard/requests/page.tsx b/src/app/[locale]/dashboard/requests/page.tsx index cce916b..4c676ef 100644 --- a/src/app/[locale]/dashboard/requests/page.tsx +++ b/src/app/[locale]/dashboard/requests/page.tsx @@ -1,5 +1,6 @@ + import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; -import { ListOrdered, Check, X } from "lucide-react"; +import { ListOrdered, Check, X, MessageSquareText } from "lucide-react"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import Image from "next/image"; @@ -27,7 +28,7 @@ const rentalRequests: RentalRequest[] = [ requesterId: 'user4', requestedDates: 'August 10, 2024 - August 17, 2024', status: 'pending', - message: 'My son would love to play with these for his birthday week!', + message: 'My son would love to play with these for his birthday week! We are very careful with toys and will ensure it is returned in perfect condition. Could we possibly pick it up on the 9th evening?', dataAiHint: mockToys[0]?.category.toLowerCase(), }, { @@ -88,7 +89,7 @@ export default async function RentalRequestsPage() { interface RequestItemCardProps { request: RentalRequest; - t: (key: string) => string; + t: (key: string, params?: Record) => string; } function RequestItemCard({ request, t }: RequestItemCardProps) { @@ -100,10 +101,10 @@ function RequestItemCard({ request, t }: RequestItemCardProps) { return 'secondary'; }; - const getStatusText = (status: RentalRequest['status']) => { - if (status === 'approved') return t('dashboard.requests.status_approved'); - if (status === 'declined') return t('dashboard.requests.status_declined'); - return t('dashboard.requests.status_pending'); + const getStatusTextKey = (status: RentalRequest['status']): string => { + if (status === 'approved') return 'dashboard.requests.status_approved'; + if (status === 'declined') return 'dashboard.requests.status_declined'; + return 'dashboard.requests.status_pending'; } return ( @@ -122,7 +123,7 @@ function RequestItemCard({ request, t }: RequestItemCardProps) {
{request.toy.name} - {getStatusText(request.status)} + {t(getStatusTextKey(request.status))}

{t('dashboard.requests.requested_by')}: {request.requesterName} @@ -130,14 +131,19 @@ function RequestItemCard({ request, t }: RequestItemCardProps) {

{t('dashboard.requests.dates')}: {request.requestedDates}

+ {request.message && ( -

- {t('dashboard.requests.message')}: "{request.message}" -

+
+
+ +

{t('dashboard.requests.message_label')}

+
+

{request.message}

+
)} {request.status === 'pending' && ( -
+
@@ -150,7 +156,9 @@ function RequestItemCard({ request, t }: RequestItemCardProps) { {request.status !== 'pending' && (
- +
)} @@ -159,3 +167,4 @@ function RequestItemCard({ request, t }: RequestItemCardProps) { ); } + diff --git a/src/locales/en.ts b/src/locales/en.ts index bbf2eb1..b039d2a 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -154,7 +154,7 @@ export default { 'dashboard.requests.no_requests_content': 'When someone requests to rent one of your toys, it will appear here.', 'dashboard.requests.requested_by': 'Requested by', 'dashboard.requests.dates': 'Dates', - 'dashboard.requests.message': 'Message', + 'dashboard.requests.message_label': 'Message from Requester', 'dashboard.requests.approve_button': 'Approve', 'dashboard.requests.decline_button': 'Decline', 'dashboard.requests.message_requester_button': 'Message Requester', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 2aaa443..43afa26 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -154,7 +154,7 @@ export default { 'dashboard.requests.no_requests_content': '当有人请求租用您的玩具时,它会显示在此处。', 'dashboard.requests.requested_by': '請求者', 'dashboard.requests.dates': '日期', - 'dashboard.requests.message': '訊息', + 'dashboard.requests.message_label': '請求者訊息', 'dashboard.requests.approve_button': '批准', 'dashboard.requests.decline_button': '拒絕', 'dashboard.requests.message_requester_button': '傳訊息給請求者',