import React, { useState, useEffect } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Progress } from '@/components/ui/progress'; import { Plus, Play, Pause, Download, Trash2, Eye } from 'lucide-react'; import '../App.css'; const Dashboard = ({ onCreateProject, onViewProject }) => { const [projects, setProjects] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetchProjects(); }, []); const fetchProjects = async () => { try { const response = await fetch('/api/projects'); const data = await response.json(); setProjects(data); } catch (error) { console.error('Erro ao buscar projetos:', error); } finally { setLoading(false); } }; const getStatusColor = (status) => { switch (status) { case 'completed': return 'bg-green-500'; case 'running': return 'bg-blue-500'; case 'failed': return 'bg-red-500'; case 'pending': return 'bg-yellow-500'; default: return 'bg-gray-500'; } }; const getStatusText = (status) => { switch (status) { case 'completed': return 'Concluído'; case 'running': return 'Treinando'; case 'failed': return 'Falhou'; case 'pending': return 'Pendente'; case 'cancelled': return 'Cancelado'; default: return 'Desconhecido'; } }; const handleStartTraining = async (projectId) => { try { await fetch(`/api/projects/${projectId}/start-training`, { method: 'POST', }); fetchProjects(); // Refresh projects } catch (error) { console.error('Erro ao iniciar treinamento:', error); } }; const handleStopTraining = async (projectId) => { try { await fetch(`/api/projects/${projectId}/stop-training`, { method: 'POST', }); fetchProjects(); // Refresh projects } catch (error) { console.error('Erro ao parar treinamento:', error); } }; const handleDeleteProject = async (projectId) => { if (window.confirm('Tem certeza que deseja excluir este projeto?')) { try { await fetch(`/api/projects/${projectId}`, { method: 'DELETE', }); fetchProjects(); // Refresh projects } catch (error) { console.error('Erro ao excluir projeto:', error); } } }; if (loading) { return (
Gerencie seus projetos de treinamento LoRA
Crie seu primeiro projeto LoRA para começar