Refactor: Database and UI updates

This commit is contained in:
gpt-engineer-app[bot]
2025-11-03 21:32:04 +00:00
parent 63d9d8890c
commit 22f4a68bd8
9 changed files with 349 additions and 34 deletions

View File

@@ -304,10 +304,15 @@ export const SystemActivityLog = forwardRef<SystemActivityLogRef, SystemActivity
</span>
)}
</div>
{isExpanded && details.details && (
<pre className="text-xs bg-muted p-2 rounded overflow-auto">
{JSON.stringify(details.details, null, 2)}
</pre>
{isExpanded && details.admin_audit_details && details.admin_audit_details.length > 0 && (
<div className="space-y-1 text-xs bg-muted p-2 rounded">
{details.admin_audit_details.map((detail: any) => (
<div key={detail.id} className="flex gap-2">
<strong className="text-muted-foreground min-w-[100px]">{detail.detail_key}:</strong>
<span>{detail.detail_value}</span>
</div>
))}
</div>
)}
</div>
);

View File

@@ -179,29 +179,30 @@ export const QueueItem = memo(({
)}
</div>
)}
{item.content.photos && item.content.photos.length > 0 && (() => {
const reviewPhotos: PhotoItem[] = normalizePhotoData({
type: 'review',
photos: item.content.photos
});
return (
<div className="mt-3">
<div className="text-sm font-medium mb-2">Attached Photos:</div>
<PhotoGrid
photos={reviewPhotos}
onPhotoClick={(photos, index) => onOpenPhotos(photos as any, index)}
maxDisplay={isMobile ? 3 : 4}
className="grid-cols-2 md:grid-cols-3"
/>
{item.content.photos[0]?.caption && (
<p className="text-sm text-muted-foreground mt-2">
{item.content.photos[0].caption}
</p>
)}
</div>
);
})()}
{/* Review photos are now in relational review_photos table, not JSONB */}
{item.review_photos && item.review_photos.length > 0 && (
<div className="mt-3">
<div className="text-sm font-medium mb-2">Attached Photos:</div>
<PhotoGrid
photos={item.review_photos.map(photo => ({
id: photo.id,
url: photo.url,
filename: photo.url.split('/').pop() || 'photo.jpg',
caption: photo.caption || undefined,
title: undefined,
order: photo.order_index
}))}
onPhotoClick={(photos, index) => onOpenPhotos(photos as any, index)}
maxDisplay={isMobile ? 3 : 4}
className="grid-cols-2 md:grid-cols-3"
/>
{item.review_photos[0]?.caption && (
<p className="text-sm text-muted-foreground mt-2">
{item.review_photos[0].caption}
</p>
)}
</div>
)}
</div>
) : item.submission_type === 'photo' ? (
<PhotoSubmissionDisplay