Fix: Try Inject useApiData in useIsHoliday.
This commit is contained in:
		| @@ -1,23 +1,21 @@ | ||||
| import { useState, useEffect } from 'react'; | ||||
| import apiClient from '../api/apiClient'; | ||||
| import { useApiData } from './useApiData'; | ||||
|  | ||||
| export function useIsHoliday(marketCode: 'BA' | 'US') { | ||||
|   const [isHoliday, setIsHoliday] = useState<boolean | null>(null); | ||||
|   // Reutilizamos el hook que ya sabe cómo obtener datos de nuestra API. | ||||
|   // Le pasamos el endpoint específico para los feriados. | ||||
|   const { data: isHoliday, loading, error } = useApiData<boolean>(`/mercados/es-feriado/${marketCode}`); | ||||
|  | ||||
|   useEffect(() => { | ||||
|     const checkHoliday = async () => { | ||||
|       try { | ||||
|         const response = await apiClient.get<boolean>(`/api/mercados/es-feriado/${marketCode}`); | ||||
|         setIsHoliday(response.data); | ||||
|       } catch (error) { | ||||
|         console.error(`Error al verificar feriado para ${marketCode}:`, error); | ||||
|         // Si la API de feriados falla, asumimos que no es feriado para no bloquear la UI. | ||||
|         setIsHoliday(false); | ||||
|       } | ||||
|     }; | ||||
|  | ||||
|     checkHoliday(); | ||||
|   }, [marketCode]); | ||||
|   // Si hay un error al cargar los feriados, por seguridad asumimos que no es feriado. | ||||
|   if (error) { | ||||
|     console.error(`Error al verificar feriado para ${marketCode}, asumiendo que no lo es.`, error); | ||||
|     return false; | ||||
|   } | ||||
|  | ||||
|   // Si está cargando, devolvemos null para que el componente sepa que debe esperar. | ||||
|   if (loading) { | ||||
|     return null; | ||||
|   } | ||||
|    | ||||
|   // Devolvemos el dato booleano que llegó de la API. | ||||
|   return isHoliday; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user