Fix validation for moderation queue

This commit is contained in:
gpt-engineer-app[bot]
2025-10-10 19:49:06 +00:00
parent 96a961d95c
commit 351000c1ef
3 changed files with 38 additions and 8 deletions

View File

@@ -62,6 +62,12 @@ interface ModerationItem {
assigned_to?: string;
locked_until?: string;
_removing?: boolean;
submission_items?: Array<{
id: string;
item_type: string;
item_data: any;
status: string;
}>;
}
type EntityFilter = 'all' | 'reviews' | 'submissions' | 'photos';
@@ -255,7 +261,13 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
reviewer_notes,
escalated,
assigned_to,
locked_until
locked_until,
submission_items (
id,
item_type,
item_data,
status
)
`)
.order('escalated', { ascending: false })
.order('created_at', { ascending: true });
@@ -824,7 +836,13 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
.from('content_submissions')
.select(`
id, submission_type, status, content, created_at, user_id,
reviewed_at, reviewer_id, reviewer_notes, escalated, assigned_to, locked_until
reviewed_at, reviewer_id, reviewer_notes, escalated, assigned_to, locked_until,
submission_items (
id,
item_type,
item_data,
status
)
`)
.eq('id', newSubmission.id)
.single();
@@ -1004,7 +1022,13 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
.from('content_submissions')
.select(`
id, submission_type, status, content, created_at, user_id,
reviewed_at, reviewer_id, reviewer_notes, escalated, assigned_to, locked_until
reviewed_at, reviewer_id, reviewer_notes, escalated, assigned_to, locked_until,
submission_items (
id,
item_type,
item_data,
status
)
`)
.eq('id', updatedSubmission.id)
.single();

View File

@@ -39,6 +39,12 @@ interface ModerationItem {
assigned_to?: string;
locked_until?: string;
_removing?: boolean;
submission_items?: Array<{
id: string;
item_type: string;
item_data: any;
status: string;
}>;
}
import { ValidationSummary } from './ValidationSummary';
@@ -168,12 +174,12 @@ export const QueueItem = memo(({
Claimed by You
</Badge>
)}
{item.submission_type && (
{item.submission_items && item.submission_items.length > 0 && (
<ValidationSummary
item={{
item_type: item.submission_type,
item_data: item.content,
id: item.id,
item_type: item.submission_items[0].item_type,
item_data: item.submission_items[0].item_data,
id: item.submission_items[0].id,
}}
compact={true}
onValidationChange={handleValidationChange}

View File

@@ -98,7 +98,7 @@ export const rideValidationSchema = z.object({
export const companyValidationSchema = z.object({
name: z.string().trim().min(1, 'Company name is required').max(200, 'Name must be less than 200 characters'),
slug: z.string().trim().min(1, 'Slug is required').regex(/^[a-z0-9-]+$/, 'Slug must contain only lowercase letters, numbers, and hyphens'),
company_type: z.enum(['manufacturer', 'designer', 'operator', 'property_owner']).optional(),
company_type: z.enum(['manufacturer', 'designer', 'operator', 'property_owner']),
description: z.string().max(2000, 'Description must be less than 2000 characters').optional(),
person_type: z.enum(['company', 'individual', 'firm', 'organization']),
founded_year: z.number().min(1800, 'Founded year must be after 1800').max(currentYear, `Founded year cannot be in the future`).optional(),