|
1 | 1 | import { StarRating } from "@/components/atoms" |
2 | 2 | import { SingleProductReview } from "@/types/product" |
3 | 3 | import { Divider } from "@medusajs/ui" |
| 4 | +import clsx from "clsx" |
4 | 5 | import { formatDistanceToNow } from "date-fns" |
5 | 6 |
|
6 | 7 | export const SellerReview = ({ review }: { review: SingleProductReview }) => { |
7 | 8 | return ( |
8 | | - <div className="mb-4 border-b pb-4 flex gap-4"> |
9 | | - <div className="mb-4 w-1/6 items-center"> |
10 | | - <p className="label-md text-secondary mb-2 truncate"> |
11 | | - {review.customer.first_name} {review.customer.last_name} |
12 | | - </p> |
13 | | - <StarRating starSize={12} rate={Number(review.rating.toFixed(1))} /> |
14 | | - <p className="text-sm text-secondary mt-2"> |
15 | | - {formatDistanceToNow(new Date(review.created_at), { |
16 | | - addSuffix: true, |
17 | | - })} |
18 | | - </p> |
| 9 | + <div className={clsx("gap-2 flex flex-col justify-center", review.seller_note && "border-b pb-4 mb-4")}> |
| 10 | + <div className="items-center flex gap-3"> |
| 11 | + <StarRating starSize={14} rate={Number(review.rating.toFixed(1))} /> |
| 12 | + <div className="flex gap-2 items-center"> |
| 13 | + <p className="label-md text-primary truncate"> |
| 14 | + {review.customer.first_name} {review.customer.last_name} |
| 15 | + </p> |
| 16 | + <Divider |
| 17 | + orientation="vertical" |
| 18 | + className="h-[10px] border-disabled" |
| 19 | + /> |
| 20 | + <p className="label-md text-secondary"> |
| 21 | + {formatDistanceToNow(new Date(review.created_at), { |
| 22 | + addSuffix: true, |
| 23 | + })} |
| 24 | + </p> |
| 25 | + </div> |
19 | 26 | </div> |
20 | 27 | <div className="w-5/6"> |
21 | | - <p className="text-md whitespace-pre-line break-words"> |
| 28 | + <p className="text-md whitespace-pre-line break-words text-primary"> |
22 | 29 | {review.customer_note} |
23 | 30 | </p> |
24 | 31 | {review.seller_note && ( |
25 | | - <div className="mt-4 flex gap-4 relative"> |
| 32 | + <div className="mt-4 flex gap-4"> |
26 | 33 | <Divider orientation="vertical" className="h-auto" /> |
27 | | - <div> |
28 | | - <p className="label-md text-primary"> |
29 | | - Reply from {review.seller.name}{" "} |
30 | | - <span className="text-secondary"> |
31 | | - |{" "} |
| 34 | + <div className="flex flex-col gap-2"> |
| 35 | + <div className="flex gap-2 items-center"> |
| 36 | + <p className="label-md text-primary"> |
| 37 | + Reply from {review.seller.name} |
| 38 | + </p> |
| 39 | + <Divider |
| 40 | + orientation="vertical" |
| 41 | + className="h-[10px] border-disabled" |
| 42 | + /> |
| 43 | + |
| 44 | + <p className="label-md text-secondary"> |
32 | 45 | {formatDistanceToNow(new Date(review.updated_at), { |
33 | 46 | addSuffix: true, |
34 | 47 | })} |
35 | | - </span> |
36 | | - </p> |
37 | | - <p className="label-sm mt-2">{review.seller_note}</p> |
| 48 | + </p> |
| 49 | + </div> |
| 50 | + <p className="label-sm">{review.seller_note}</p> |
38 | 51 | </div> |
39 | 52 | </div> |
40 | 53 | )} |
|
0 commit comments