/** * Composant Analytics pour AfriDataHub * Created by BlackBenAI Team - AfriDataHub Platform */ import { useState, useEffect } from 'react' import { motion, AnimatePresence } from 'framer-motion' import { Button } from '@/components/ui/button' import AfricaMap from './AfricaMap' import { CountryBarChart, TrendLineChart, DomainPieChart, ComparisonBarChart, MetricsChart } from './Charts' import { BarChart3, TrendingUp, Globe, Filter, Download, RefreshCw } from 'lucide-react' import { API_URL } from '../config' const Analytics = () => { const [loading, setLoading] = useState(true) const [selectedDataset, setSelectedDataset] = useState('') const [selectedCountry, setSelectedCountry] = useState('') const [datasets, setDatasets] = useState([]) const [analyticsData, setAnalyticsData] = useState(null) useEffect(() => { fetchDatasets() fetchAnalyticsData() }, []) useEffect(() => { if (selectedDataset) { fetchAnalyticsData(selectedDataset) } }, [selectedDataset]) const fetchDatasets = async () => { try { const response = await fetch(`${API_URL}datasets/`) const data = await response.json() setDatasets(data.results || []) } catch (error) { console.error('Erreur lors du chargement des datasets:', error) } } const fetchAnalyticsData = async (datasetRef = null) => { try { setLoading(true) let url = `${API_URL}analytics/comprehensive/` if (datasetRef) { url += `?dataset_id=${datasetRef}` } const response = await fetch(url) const data = await response.json() setAnalyticsData(data) } catch (error) { console.error('Erreur lors du chargement des données d\'analyse:', error) } finally { setLoading(false) } } const handleCountryClick = (countryCode, countryInfo) => { setSelectedCountry(countryCode) } const handleExportData = () => { // Logique d'export des données console.log('Export des données d\'analyse') } if (loading) { return (
) } return (
{/* En-tête */}

Intelligence Analytique

Visualisations avancées et corrélations stratégiques en temps réel.

{/* Filtres Glassmorphism */}
{/* Carte interactive et métriques */}

Distribution Géographique

Cliquez sur un pays pour isoler ses performances.

{/* Graphiques de données */}
{/* Tendances et comparaisons */}
{/* Insights automatiques */}

Insights Stratégiques IA

Généré par Gemini 2.5
{analyticsData?.global_trends && Object.entries(analyticsData.global_trends).length > 0 ? ( Object.entries(analyticsData.global_trends).map(([title, trend]) => (

{title}

{trend.trends_count} tendances analysées avec une variation moyenne de {trend.avg_change.toFixed(1)}%

)) ) : (

Analyse du flux de données en cours...

)}
) } export default Analytics