'use client'; import { useState, useTransition } from 'react'; import { exportJiraAnalytics, ExportFormat } from '@/actions/jira-export'; export function useJiraExport() { const [isExporting, startTransition] = useTransition(); const [error, setError] = useState(null); const exportAnalytics = (format: ExportFormat = 'csv') => { startTransition(async () => { try { setError(null); const result = await exportJiraAnalytics(format); if (result.success && result.data && result.filename) { // Créer un blob et déclencher le téléchargement const mimeType = format === 'json' ? 'application/json' : 'text/csv'; const blob = new Blob([result.data], { type: mimeType }); // Créer un lien temporaire pour le téléchargement const url = window.URL.createObjectURL(blob); const link = document.createElement('a'); link.href = url; link.download = result.filename; // Déclencher le téléchargement document.body.appendChild(link); link.click(); // Nettoyer document.body.removeChild(link); window.URL.revokeObjectURL(url); console.log(`✅ Export ${format.toUpperCase()} réussi: ${result.filename}`); } else { setError(result.error || 'Erreur lors de l\'export'); } } catch (err) { const errorMessage = err instanceof Error ? err.message : 'Erreur lors de l\'export'; setError(errorMessage); console.error('Erreur export analytics:', err); } }); }; const exportCSV = () => exportAnalytics('csv'); const exportJSON = () => exportAnalytics('json'); return { isExporting, error, exportCSV, exportJSON, exportAnalytics }; }