mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 06:51:13 -05:00
Refactor: Complete type safety migration
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { useRef, useCallback } from 'react';
|
||||
import { supabase } from '@/integrations/supabase/client';
|
||||
import { createTableQuery } from '@/lib/supabaseHelpers';
|
||||
import { logger } from '@/lib/logger';
|
||||
import { MODERATION_CONSTANTS } from '@/lib/moderation/constants';
|
||||
|
||||
@@ -104,32 +105,40 @@ export function useEntityCache() {
|
||||
return ids.map(id => getCached(type, id)).filter(Boolean);
|
||||
}
|
||||
|
||||
// Determine table name and select fields based on entity type
|
||||
let tableName: string;
|
||||
let selectFields: string;
|
||||
|
||||
switch (type) {
|
||||
case 'rides':
|
||||
tableName = 'rides';
|
||||
selectFields = 'id, name, park_id';
|
||||
break;
|
||||
case 'parks':
|
||||
tableName = 'parks';
|
||||
selectFields = 'id, name';
|
||||
break;
|
||||
case 'companies':
|
||||
tableName = 'companies';
|
||||
selectFields = 'id, name';
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unknown entity type: ${type}`);
|
||||
}
|
||||
|
||||
try {
|
||||
const { data, error } = await supabase
|
||||
.from(tableName as any)
|
||||
.select(selectFields)
|
||||
.in('id', uncachedIds);
|
||||
let data: any[] | null = null;
|
||||
let error: any = null;
|
||||
|
||||
// Use type-safe table queries
|
||||
switch (type) {
|
||||
case 'rides':
|
||||
const ridesResult = await createTableQuery('rides')
|
||||
.select('id, name, slug, park_id')
|
||||
.in('id', uncachedIds);
|
||||
data = ridesResult.data;
|
||||
error = ridesResult.error;
|
||||
break;
|
||||
|
||||
case 'parks':
|
||||
const parksResult = await createTableQuery('parks')
|
||||
.select('id, name, slug')
|
||||
.in('id', uncachedIds);
|
||||
data = parksResult.data;
|
||||
error = parksResult.error;
|
||||
break;
|
||||
|
||||
case 'companies':
|
||||
const companiesResult = await createTableQuery('companies')
|
||||
.select('id, name, slug, company_type')
|
||||
.in('id', uncachedIds);
|
||||
data = companiesResult.data;
|
||||
error = companiesResult.error;
|
||||
break;
|
||||
|
||||
default:
|
||||
logger.error(`Unknown entity type: ${type}`);
|
||||
return [];
|
||||
}
|
||||
|
||||
if (error) {
|
||||
logger.error(`Error fetching ${type}:`, error);
|
||||
|
||||
Reference in New Issue
Block a user