"use client" import type React from "react" import { useState } from "react" import { useRouter } from "next/navigation" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Alert, AlertDescription } from "@/components/ui/alert" import { Loader2 } from "lucide-react" const API_BASE_URL = process.env.NEXT_PUBLIC_API_URL || "http://localhost:5000/api/v1" export default function LoginForm() { const [isLoading, setIsLoading] = useState(false) const [error, setError] = useState("") const [success, setSuccess] = useState("") const router = useRouter() const handleLogin = async (e: React.FormEvent) => { e.preventDefault() setIsLoading(true) setError("") const formData = new FormData(e.currentTarget) const email = formData.get("email") as string const password = formData.get("password") as string try { console.log(`${API_BASE_URL}/auth/login`) const response = await fetch(`${API_BASE_URL}/auth/login`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ email, password }), }) const data = await response.json() if (response.ok) { localStorage.setItem("access_token", data.access_token) router.push("/dashboard") } else { setError(data.message || "Erro ao fazer login") } } catch (err) { console.log("====> Erro de conexão com o servidor: ",err) setError("Erro de conexão com o servidor") } finally { setIsLoading(false) } } const handleSignup = async (e: React.FormEvent) => { e.preventDefault() setIsLoading(true) setError("") setSuccess("") const formData = new FormData(e.currentTarget) const email = formData.get("email") as string const password = formData.get("password") as string try { const response = await fetch(`${API_BASE_URL}/auth/signup`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ email, password }), }) const data = await response.json() if (response.ok) { setSuccess("Usuário criado com sucesso! Faça login para continuar.") } else { setError(data.message || "Erro ao criar usuário") } } catch (err) { console.log("====> Erro de conexão com o servidor: ", err) setError("Erro de conexão com o servidor") } finally { setIsLoading(false) } } return ( Login {/* Cadastro */} Login Entre com suas credenciais para acessar o sistema
{error && ( {error} )}
Cadastro Crie uma nova conta para acessar o sistema
{error && ( {error} )} {success && ( {success} )}
) }