'use client'; import { useState, useTransition } from 'react'; import { Card, CardHeader, CardContent } from '@/components/ui/Card'; import { syncTfsPullRequests } from '@/actions/tfs'; export function TfsSync() { const [isPending, startTransition] = useTransition(); const [lastSync, setLastSync] = useState<{ success: boolean; message: string; stats?: { created: number; updated: number; skipped: number; deleted: number; } } | null>(null); const handleSync = () => { startTransition(async () => { setLastSync(null); const result = await syncTfsPullRequests(); if (result.success) { setLastSync({ success: true, message: result.message || 'Synchronisation réussie', stats: result.data ? { created: result.data.pullRequestsCreated, updated: result.data.pullRequestsUpdated, skipped: result.data.pullRequestsSkipped, deleted: result.data.pullRequestsDeleted } : undefined }); } else { setLastSync({ success: false, message: result.error || 'Erreur lors de la synchronisation' }); } }); }; return (

🔄 Synchronisation TFS

Synchronise manuellement les Pull Requests depuis Azure DevOps

{/* Résultat de la dernière synchronisation */} {lastSync && (
{lastSync.success ? '✅' : '❌'} {lastSync.message}
{lastSync.stats && (
Créées: {lastSync.stats.created} | Mises à jour: {lastSync.stats.updated} | Ignorées: {lastSync.stats.skipped} | Supprimées: {lastSync.stats.deleted}
)}
)}
Les Pull Requests seront importées comme tâches dans le tableau Kanban
); }