import { memo, useCallback } from 'react'; import { MessageSquare, Image, FileText, Calendar, Edit, Lock, AlertCircle, Code2 } from 'lucide-react'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { UserAvatar } from '@/components/ui/user-avatar'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; import { ValidationSummary } from '../ValidationSummary'; import { TransactionStatusIndicator, type TransactionStatus } from '../TransactionStatusIndicator'; import { format } from 'date-fns'; import type { ModerationItem } from '@/types/moderation'; import type { ValidationResult } from '@/lib/entityValidationSchemas'; interface QueueItemHeaderProps { item: ModerationItem; isMobile: boolean; hasModeratorEdits: boolean; isLockedByOther: boolean; currentLockSubmissionId?: string; validationResult: ValidationResult | null; transactionStatus?: TransactionStatus; transactionMessage?: string; onValidationChange: (result: ValidationResult) => void; onViewRawData?: () => void; } const getStatusBadgeVariant = (status: string): "default" | "secondary" | "destructive" | "outline" => { switch (status) { case 'pending': return 'default'; case 'approved': return 'secondary'; case 'rejected': return 'destructive'; case 'flagged': return 'destructive'; case 'partially_approved': return 'outline'; default: return 'outline'; } }; export const QueueItemHeader = memo(({ item, isMobile, hasModeratorEdits, isLockedByOther, currentLockSubmissionId, validationResult, transactionStatus = 'idle', transactionMessage, onValidationChange, onViewRawData }: QueueItemHeaderProps) => { const handleValidationChange = useCallback((result: ValidationResult) => { onValidationChange(result); }, [onValidationChange]); return ( <>
This submission has been modified by a moderator
View complete JSON data
Full timestamp:
{item.created_at}