import { useQuery } from '@tanstack/react-query'; import { supabase } from '@/lib/supabaseClient'; import { queryKeys } from '@/lib/queryKeys'; /** * Hook to fetch park preview data for hover cards */ export function useParkPreview(slug: string | undefined, enabled = true) { return useQuery({ queryKey: queryKeys.parks.detail(slug || ''), queryFn: async () => { if (!slug) throw new Error('Slug is required'); const { data, error } = await supabase .from('parks') .select(` id, name, slug, park_type, status, card_image_url, ride_count, coaster_count, average_rating, review_count, location:locations(city, state_province, country) `) .eq('slug', slug) .maybeSingle(); if (error) throw error; return data; }, enabled: enabled && !!slug, staleTime: 5 * 60 * 1000, // 5 minutes gcTime: 15 * 60 * 1000, // 15 minutes }); }