Implement complete roadmap

This commit is contained in:
gpt-engineer-app[bot]
2025-11-02 21:22:03 +00:00
parent 665918741e
commit 41560d9c42
16 changed files with 770 additions and 144 deletions

View File

@@ -201,68 +201,12 @@ export const QueueItem = memo(({
})()}
</div>
) : item.submission_type === 'photo' ? (
<div>
<div className="text-sm text-muted-foreground mb-3">
Photo Submission
</div>
{/* Submission Title */}
{item.content.title && (
<div className="mb-3">
<div className="text-sm font-medium mb-1">Title:</div>
<p className="text-sm">{item.content.title}</p>
</div>
)}
{/* Photos from relational table */}
{photosLoading ? (
<div className="text-sm text-muted-foreground">Loading photos...</div>
) : photoItems.length > 0 ? (
<div className="space-y-2">
<div className="text-sm font-medium flex items-center justify-between">
<span>Photos ({photoItems.length}):</span>
{import.meta.env.DEV && photoItems[0] && (
<span className="text-xs text-muted-foreground">
URL: {photoItems[0].cloudflare_image_url?.slice(0, 30)}...
</span>
)}
</div>
<PhotoGrid
photos={photoItems.map(photo => ({
id: photo.id,
url: photo.cloudflare_image_url,
filename: photo.filename || `Photo ${photo.order_index + 1}`,
caption: photo.caption,
title: photo.title,
date_taken: photo.date_taken,
}))}
onPhotoClick={onOpenPhotos}
/>
</div>
) : (
<Alert variant="destructive" className="mt-4">
<AlertTriangle className="h-4 w-4" />
<AlertTitle>No Photos Found</AlertTitle>
<AlertDescription>
This photo submission has no photos attached. This may be a data integrity issue.
</AlertDescription>
</Alert>
)}
{/* Context Information */}
{item.entity_name && (
<div className="mt-3 pt-3 border-t text-sm">
<span className="text-muted-foreground">For: </span>
<span className="font-medium">{item.entity_name}</span>
{item.park_name && (
<>
<span className="text-muted-foreground"> at </span>
<span className="font-medium">{item.park_name}</span>
</>
)}
</div>
)}
</div>
<PhotoSubmissionDisplay
item={item}
photoItems={photoItems}
loading={photosLoading}
onOpenPhotos={onOpenPhotos}
/>
) : (
<>
{/* Main content area - spans 1st column on all layouts */}