"use client"; import { useState, useEffect, useCallback } from 'react'; import { DashboardMetrics } from '@/lib/types'; export function useMetrics() { const [metrics, setMetrics] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const fetchMetrics = useCallback(async () => { try { setLoading(true); const response = await fetch('/api/metrics'); if (!response.ok) throw new Error('Erreur lors du chargement des métriques'); const data = await response.json(); setMetrics(data); } catch (err) { setError(err instanceof Error ? err.message : 'Erreur inconnue'); } finally { setLoading(false); } }, []); useEffect(() => { fetchMetrics(); }, [fetchMetrics]); const refetch = useCallback(() => { return fetchMetrics(); }, [fetchMetrics]); return { metrics, loading, error, refetch }; }