From 2fc67ebf393c5bb9cbf3b91f7649dce2700d1175 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 17:59:34 +0000 Subject: [PATCH] Fix submission display issues --- src/components/admin/SystemActivityLog.tsx | 84 ++++++++++++++++++++++ src/lib/systemActivityService.ts | 54 ++++++++++++-- 2 files changed, 132 insertions(+), 6 deletions(-) diff --git a/src/components/admin/SystemActivityLog.tsx b/src/components/admin/SystemActivityLog.tsx index e5176a62..37a10c33 100644 --- a/src/components/admin/SystemActivityLog.tsx +++ b/src/components/admin/SystemActivityLog.tsx @@ -182,6 +182,90 @@ export const SystemActivityLog = forwardRef +
+ + {details.status} + + + Photo deletion + {details.entity_type && ( + + from {details.entity_type} + + )} +
+ +
+ {details.photo_title +
+ {details.photo_title && ( +

{details.photo_title}

+ )} + {details.photo_caption && ( +

{details.photo_caption}

+ )} + {details.deletion_reason && ( +
+ + + Reason: {details.deletion_reason} + +
+ )} +
+
+ + ); + } + + // Special handling for photo additions + if (details.submission_type === 'photo' && details.photo_url) { + return ( +
+
+ + {details.status} + + + Photo submission + {details.entity_type && ( + + to {details.entity_type} + + )} +
+ + {isExpanded && ( +
+ {details.photo_title +
+ {details.photo_title && ( +

{details.photo_title}

+ )} + {details.photo_caption && ( +

{details.photo_caption}

+ )} +
+
+ )} +
+ ); + } + + // Generic submission display return (
diff --git a/src/lib/systemActivityService.ts b/src/lib/systemActivityService.ts index 630e6a76..afeeed01 100644 --- a/src/lib/systemActivityService.ts +++ b/src/lib/systemActivityService.ts @@ -36,6 +36,13 @@ export interface SubmissionReviewDetails { submission_type: string; status: string; entity_name?: string; + // Photo-specific fields + photo_url?: string; + photo_caption?: string; + photo_title?: string; + entity_type?: string; + entity_id?: string; + deletion_reason?: string; } export interface ReportResolutionDetails { @@ -158,20 +165,55 @@ export async function fetchSystemActivities( .limit(limit); if (!submissionsError && submissions) { + // Fetch submission_items for photo submissions to get detailed info + const submissionIds = submissions.map(s => s.id); + const { data: submissionItems } = await supabase + .from('submission_items') + .select('submission_id, item_type, item_data') + .in('submission_id', submissionIds) + .in('item_type', ['photo', 'photo_delete', 'photo_edit']); + + const itemsMap = new Map(submissionItems?.map(item => [item.submission_id, item]) || []); + for (const submission of submissions) { const contentData = submission.content as any; + const submissionItem = itemsMap.get(submission.id); + const itemData = submissionItem?.item_data as any; + + // Build base details + const details: SubmissionReviewDetails = { + submission_id: submission.id, + submission_type: submission.submission_type, + status: submission.status, + entity_name: contentData?.name, + }; + + // Enrich with photo-specific data for photo submissions + if (submissionItem && itemData) { + if (submissionItem.item_type === 'photo_delete') { + details.photo_url = itemData.cloudflare_image_url; + details.photo_caption = itemData.caption; + details.photo_title = itemData.title; + details.entity_type = itemData.entity_type; + details.entity_id = itemData.entity_id; + details.deletion_reason = itemData.reason; + } else if (submissionItem.item_type === 'photo') { + // Photo additions + details.photo_url = itemData.cloudflare_image_url; + details.photo_caption = itemData.caption; + details.photo_title = itemData.title; + details.entity_type = itemData.entity_type; + details.entity_id = itemData.entity_id; + } + } + activities.push({ id: submission.id, type: 'submission_review', timestamp: submission.reviewed_at!, actor_id: submission.reviewer_id, action: `${submission.status} ${submission.submission_type} submission`, - details: { - submission_id: submission.id, - submission_type: submission.submission_type, - status: submission.status, - entity_name: contentData?.name, - } as SubmissionReviewDetails, + details, }); } }