mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 06:31:14 -05:00
Fix submission display issues
This commit is contained in:
@@ -1518,20 +1518,39 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
|
||||
item.submission_type === 'operator' ||
|
||||
item.submission_type === 'property_owner' ||
|
||||
item.submission_type === 'park' ||
|
||||
item.submission_type === 'ride') ? (
|
||||
item.submission_type === 'ride' ||
|
||||
item.submission_type === 'ride_model' ||
|
||||
item.submission_type === 'photo_delete' ||
|
||||
item.submission_type === 'photo_edit') ? (
|
||||
<SubmissionItemsList
|
||||
submissionId={item.id}
|
||||
view="detailed"
|
||||
showImages={true}
|
||||
/>
|
||||
) : (
|
||||
<div>
|
||||
<div className="text-sm text-muted-foreground mb-2">
|
||||
Type: {item.submission_type}
|
||||
<div className="rounded-md border border-amber-300 dark:border-amber-700 bg-amber-50 dark:bg-amber-950 p-4">
|
||||
<div className="flex items-center gap-2 mb-2">
|
||||
<AlertTriangle className="h-4 w-4 text-amber-600" />
|
||||
<span className="font-medium text-amber-900 dark:text-amber-100">
|
||||
Unknown Submission Type
|
||||
</span>
|
||||
</div>
|
||||
<pre className="text-sm whitespace-pre-wrap">
|
||||
{JSON.stringify(item.content, null, 2)}
|
||||
</pre>
|
||||
<div className="text-sm text-amber-800 dark:text-amber-200 mb-2">
|
||||
Type: <code className="bg-amber-100 dark:bg-amber-900 px-1 py-0.5 rounded">{item.submission_type}</code>
|
||||
</div>
|
||||
{item.content?.action && (
|
||||
<div className="text-sm text-amber-800 dark:text-amber-200 mb-2">
|
||||
Action: <span className="font-medium capitalize">{item.content.action}</span>
|
||||
</div>
|
||||
)}
|
||||
<details className="text-sm">
|
||||
<summary className="cursor-pointer text-amber-700 dark:text-amber-300 hover:text-amber-900 dark:hover:text-amber-100">
|
||||
View raw data (for developers)
|
||||
</summary>
|
||||
<pre className="mt-2 text-xs whitespace-pre-wrap bg-amber-100 dark:bg-amber-900 p-2 rounded overflow-x-auto">
|
||||
{JSON.stringify(item.content, null, 2)}
|
||||
</pre>
|
||||
</details>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -118,6 +118,9 @@ interface PhotoDeletionPreviewProps {
|
||||
url: string;
|
||||
title?: string;
|
||||
caption?: string;
|
||||
entity_type?: string;
|
||||
entity_name?: string;
|
||||
deletion_reason?: string;
|
||||
};
|
||||
compact?: boolean;
|
||||
}
|
||||
@@ -147,12 +150,20 @@ export function PhotoDeletionPreview({ photo, compact = false }: PhotoDeletionPr
|
||||
loading="lazy"
|
||||
/>
|
||||
|
||||
{(photo.title || photo.caption) && (
|
||||
<div className="flex-1 text-sm">
|
||||
{photo.title && <div className="font-medium">{photo.title}</div>}
|
||||
{photo.caption && <div className="text-muted-foreground">{photo.caption}</div>}
|
||||
</div>
|
||||
)}
|
||||
<div className="flex-1 text-sm space-y-2">
|
||||
{photo.title && <div className="font-medium">{photo.title}</div>}
|
||||
{photo.caption && <div className="text-muted-foreground">{photo.caption}</div>}
|
||||
{photo.entity_type && photo.entity_name && (
|
||||
<div className="text-xs text-muted-foreground">
|
||||
From: <span className="capitalize">{photo.entity_type}</span> - {photo.entity_name}
|
||||
</div>
|
||||
)}
|
||||
{photo.deletion_reason && (
|
||||
<div className="text-xs p-2 bg-destructive/5 rounded border border-destructive/20">
|
||||
<span className="font-medium">Reason:</span> {photo.deletion_reason}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -54,11 +54,14 @@ export function SubmissionChangesDisplay({
|
||||
switch (item.item_type) {
|
||||
case 'park': return <Building2 className={iconClass} />;
|
||||
case 'ride': return <Train className={iconClass} />;
|
||||
case 'ride_model': return <Train className={iconClass} />;
|
||||
case 'manufacturer':
|
||||
case 'operator':
|
||||
case 'property_owner':
|
||||
case 'designer': return <Building className={iconClass} />;
|
||||
case 'photo': return <ImageIcon className={iconClass} />;
|
||||
case 'photo':
|
||||
case 'photo_edit':
|
||||
case 'photo_delete': return <ImageIcon className={iconClass} />;
|
||||
default: return <MapPin className={iconClass} />;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user