/** * 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 (
Visualisations avancées et corrélations stratégiques en temps réel.
Cliquez sur un pays pour isoler ses performances.
{trend.trends_count} tendances analysées avec une variation moyenne de {trend.avg_change.toFixed(1)}%
Analyse du flux de données en cours...