diff --git a/spa/src/components/review-card.tsx b/spa/src/components/review-card.tsx
index d795fbd..83ee277 100644
--- a/spa/src/components/review-card.tsx
+++ b/spa/src/components/review-card.tsx
@@ -17,9 +17,10 @@ type ReviewCardProps = {
isFederated?: boolean
actorUrl?: string
onEdit?: () => void
+ onShowDetail?: () => void
}
-export function ReviewCard({ movie, review, userName, userId, isFederated, actorUrl, onEdit }: ReviewCardProps) {
+export function ReviewCard({ movie, review, userName, userId, isFederated, actorUrl, onEdit, onShowDetail }: ReviewCardProps) {
const card = (
@@ -59,7 +60,17 @@ export function ReviewCard({ movie, review, userName, userId, isFederated, actor
{review.watch_medium && }
- {review.comment && {review.comment}
}
+ {review.comment && (
+ e.key === "Enter" && onShowDetail() : undefined}
+ >
+ {review.comment}
+
+ )}
diff --git a/spa/src/components/review-detail-sheet.tsx b/spa/src/components/review-detail-sheet.tsx
new file mode 100644
index 0000000..3b3388c
--- /dev/null
+++ b/spa/src/components/review-detail-sheet.tsx
@@ -0,0 +1,51 @@
+import { VisuallyHidden } from "radix-ui"
+import { Drawer, DrawerContent, DrawerTitle } from "@/components/ui/drawer"
+import { StarDisplay } from "@/components/star-display"
+import { WatchMediumBadge } from "@/components/watch-medium-badge"
+import { shortDate } from "@/lib/date"
+import { posterUrl } from "@/lib/api/client"
+import type { MovieDto, ReviewDto } from "@/lib/api/common"
+
+type ReviewDetailSheetProps = {
+ open: boolean
+ onOpenChange: (open: boolean) => void
+ movie: MovieDto
+ review: ReviewDto
+ userName?: string
+}
+
+export function ReviewDetailSheet({ open, onOpenChange, movie, review, userName }: ReviewDetailSheetProps) {
+ return (
+
+
+ {movie.title}
+
+
+
+ {movie.poster_path &&
})
}
+
+
+
{movie.title}
+
+ {movie.release_year}{movie.director && ` ยท ${movie.director}`}
+
+ {userName &&
{userName}
}
+
+
+
+
+
+ {review.watch_medium && }
+ {shortDate(review.watched_at)}
+
+
+ {review.comment && (
+
+ {review.comment}
+
+ )}
+
+
+
+ )
+}
diff --git a/spa/src/components/review-form-fields.tsx b/spa/src/components/review-form-fields.tsx
index 6c62246..0d6f846 100644
--- a/spa/src/components/review-form-fields.tsx
+++ b/spa/src/components/review-form-fields.tsx
@@ -1,3 +1,4 @@
+import { useCallback, useRef } from "react"
import { useTranslation } from "react-i18next"
import { CalendarIcon } from "lucide-react"
import { format } from "date-fns"
@@ -38,7 +39,7 @@ export function ReviewFormFields({
-