import { memo } from 'react';
import { PhotoGrid } from '@/components/common/PhotoGrid';
import { normalizePhotoData } from '@/lib/photoHelpers';
import type { PhotoItem } from '@/types/photos';
import type { PhotoForDisplay, ModerationItem } from '@/types/moderation';
interface ReviewDisplayProps {
item: ModerationItem;
isMobile: boolean;
onOpenPhotos: (photos: PhotoForDisplay[], index: number) => void;
}
export const ReviewDisplay = memo(({ item, isMobile, onOpenPhotos }: ReviewDisplayProps) => {
return (
{item.content.title && (
{item.content.title}
)}
{item.content.content && (
{item.content.content}
)}
Rating: {item.content.rating}/5
{/* Entity Names for Reviews */}
{(item.entity_name || item.park_name) && (
{item.entity_name && (
{item.park_name ? 'Ride:' : 'Park:'}
{item.entity_name}
)}
{item.park_name && (
Park:
{item.park_name}
)}
)}
{item.content.photos && item.content.photos.length > 0 && (() => {
const reviewPhotos: PhotoItem[] = normalizePhotoData({
type: 'review',
photos: item.content.photos
});
return (
Attached Photos:
onOpenPhotos(photos as any, index)}
maxDisplay={isMobile ? 3 : 4}
className="grid-cols-2 md:grid-cols-3"
/>
{item.content.photos[0]?.caption && (
{item.content.photos[0].caption}
)}
);
})()}
);
});
ReviewDisplay.displayName = 'ReviewDisplay';