'use client'; import { useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardFooter, CardHeader, CardTitle, CardDescription } from '@/components/ui/card'; import { useSetupWizard } from '@/hooks/use-setup-wizard'; import { useSettingsStore } from '@/store/settings-store'; import { useRouter } from 'next/navigation'; import { CheckCircle2, ArrowRight, AlertCircle, Sparkles, Loader2 } from 'lucide-react'; import { startTransition } from 'react'; import { invoke } from '@tauri-apps/api/core'; export function SetupCompleteStep() { const { state, goToStep } = useSetupWizard(); const { setSetupCompleted } = useSettingsStore(); const router = useRouter(); const [integrityError, setIntegrityError] = useState(null); const [isVerifying, setIsVerifying] = useState(true); useEffect(() => { const verifyAndComplete = async () => { try { setIsVerifying(true); setIntegrityError(null); // Verificar integridade ANTES de marcar como completo const isOllamaIntact = await invoke('verify_ollama_integrity_command'); if (!isOllamaIntact) { // Redirecionar silenciosamente para o passo de instalação do Ollama setIsVerifying(false); goToStep(2); return; } // Só definir flag e redirecionar se Ollama estiver íntegro setSetupCompleted(true); setIsVerifying(false); const timer = setTimeout(() => { startTransition(() => { router.replace('/chat'); }); }, 2000); return () => clearTimeout(timer); } catch { // Em caso de erro na verificação, redirecionar para instalação setIsVerifying(false); goToStep(2); } }; verifyAndComplete(); }, [setSetupCompleted, router, goToStep]); const handleGoToChat = async () => { try { // Verificar integridade antes de redirecionar manualmente também const isOllamaIntact = await invoke('verify_ollama_integrity_command'); if (!isOllamaIntact) { // Redirecionar para o passo de instalação do Ollama goToStep(2); return; } setSetupCompleted(true); startTransition(() => { router.replace('/chat'); }); } catch { // Em caso de erro na verificação, redirecionar para instalação goToStep(2); } }; const handleGoToInstallation = () => { goToStep(2); }; return ( {isVerifying ? ( ) : integrityError ? ( ) : ( )} {isVerifying ? 'Verificando Integridade' : integrityError ? 'Erro na Configuração' : 'Configuração Completa'} {isVerifying ? 'Validando instalação do Ollama...' : integrityError ? 'Encontramos um problema.' : 'Tudo pronto para começar a usar o OllaHub.'} {isVerifying ? (

Estamos verificando se o serviço Ollama está respondendo corretamente antes de liberar o acesso.

) : integrityError ? (

Falha na Verificação

{integrityError}

) : ( <>

Ambiente Configurado

Seu assistente de IA local está pronto. Você pode começar a conversar, gerar códigos ou analisar documentos agora mesmo.

Resumo da Instalação:

  • Hardware compatível detectado
  • {state.ollamaInstalled &&
  • Ollama Engine instalado e ativo
  • } {state.modelDownloaded && (
  • Modelo de IA {state.modelName || 'padrão'} baixado
  • )}
)}
); }