mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 06:51:13 -05:00
Refactor: Implement full error logging
This commit is contained in:
@@ -96,7 +96,11 @@ export function ItemEditDialog({ item, items, open, onOpenChange, onComplete }:
|
||||
|
||||
const handlePhotoSubmit = async (caption: string, credit: string) => {
|
||||
if (!item?.item_data) {
|
||||
logger.error('No item data available for photo submission');
|
||||
toast({
|
||||
title: 'Error',
|
||||
description: 'No photo data available',
|
||||
variant: 'destructive',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,7 @@ import { AlertCircle, Loader2 } from 'lucide-react';
|
||||
import { format } from 'date-fns';
|
||||
import type { SubmissionItemData } from '@/types/submissions';
|
||||
import type { ParkSubmissionData, RideSubmissionData, CompanySubmissionData, RideModelSubmissionData } from '@/types/submission-data';
|
||||
import { logger } from '@/lib/logger';
|
||||
import { getErrorMessage } from '@/lib/errorHandler';
|
||||
import { getErrorMessage, handleNonCriticalError } from '@/lib/errorHandler';
|
||||
import { ModerationErrorBoundary } from '@/components/error/ModerationErrorBoundary';
|
||||
|
||||
interface SubmissionItemsListProps {
|
||||
@@ -71,13 +70,19 @@ export const SubmissionItemsList = memo(function SubmissionItemsList({
|
||||
.eq('submission_id', submissionId);
|
||||
|
||||
if (photoError) {
|
||||
logger.warn('Error checking photo submissions:', photoError);
|
||||
handleNonCriticalError(photoError, {
|
||||
action: 'Check photo submissions',
|
||||
metadata: { submissionId }
|
||||
});
|
||||
}
|
||||
|
||||
setItems(transformedItems as SubmissionItemData[]);
|
||||
setHasPhotos(!!(photoData && photoData.length > 0));
|
||||
} catch (err) {
|
||||
logger.error('Failed to fetch submission items', { error: getErrorMessage(err) });
|
||||
handleNonCriticalError(err, {
|
||||
action: 'Fetch submission items',
|
||||
metadata: { submissionId }
|
||||
});
|
||||
setError('Failed to load submission details');
|
||||
} finally {
|
||||
setLoading(false);
|
||||
|
||||
@@ -439,7 +439,11 @@ export function SubmissionReviewManager({
|
||||
);
|
||||
|
||||
if (error) {
|
||||
logger.error('Edge function failed', { error: getErrorMessage(error) });
|
||||
handleError(error, {
|
||||
action: 'Send escalation notification',
|
||||
userId: user.id,
|
||||
metadata: { submissionId }
|
||||
});
|
||||
// Fallback to direct database update if email fails
|
||||
await escalateSubmission(submissionId, reason, user.id);
|
||||
toast({
|
||||
|
||||
@@ -5,7 +5,7 @@ import { RefreshButton } from '@/components/ui/refresh-button';
|
||||
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert';
|
||||
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';
|
||||
import { validateEntityData, ValidationResult } from '@/lib/entityValidationSchemas';
|
||||
import { logger } from '@/lib/logger';
|
||||
import { handleNonCriticalError } from '@/lib/errorHandler';
|
||||
|
||||
import type { SubmissionItemData } from '@/types/moderation';
|
||||
|
||||
@@ -92,10 +92,9 @@ export function ValidationSummary({ item, onValidationChange, compact = false, v
|
||||
setValidationResult(result);
|
||||
onValidationChange?.(result);
|
||||
} catch (error: unknown) {
|
||||
logger.error('Entity validation failed', {
|
||||
action: 'validate_entity',
|
||||
entityType: item.item_type,
|
||||
error: error instanceof Error ? error.message : String(error)
|
||||
handleNonCriticalError(error, {
|
||||
action: 'Validate entity',
|
||||
metadata: { entityType: item.item_type }
|
||||
});
|
||||
setValidationResult({
|
||||
isValid: false,
|
||||
|
||||
Reference in New Issue
Block a user