"use client"; import { useState } from "react"; import Link from "next/link"; import { Button, Input, Checkbox } from "@/components/ui"; import toast, { Toaster } from 'react-hot-toast'; import { saveAuth } from '@/lib/auth'; import { API_ENDPOINTS, apiRequest } from '@/lib/api'; import dynamic from 'next/dynamic'; const ThemeToggle = dynamic(() => import('@/components/ThemeToggle'), { ssr: false }); export default function LoginPage() { const [isLoading, setIsLoading] = useState(false); const [formData, setFormData] = useState({ email: "", password: "", rememberMe: false, }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); // Validações básicas if (!formData.email) { toast.error('Por favor, insira seu email'); return; } if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.email)) { toast.error('Por favor, insira um email válido'); return; } if (!formData.password) { toast.error('Por favor, insira sua senha'); return; } setIsLoading(true); try { const response = await fetch('http://localhost:3000/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: formData.email, password: formData.password, }), }); if (!response.ok) { const error = await response.json(); throw new Error(error.message || 'Credenciais inválidas'); } const data = await response.json(); // Salvar token e dados do usuário localStorage.setItem('token', data.token); localStorage.setItem('user', JSON.stringify(data.user)); toast.success('Login realizado com sucesso! Redirecionando...'); setTimeout(() => { window.location.href = '/painel'; }, 1000); } catch (error: any) { toast.error(error.message || 'Erro ao fazer login. Verifique suas credenciais.'); setIsLoading(false); } }; return ( <>
{/* Lado Esquerdo - Formulário */}
{/* Logo mobile */}

aggios

{/* Theme Toggle */}
{/* Header */}

Bem-vindo de volta

Entre com suas credenciais para acessar o painel

{/* Form */}
setFormData({ ...formData, email: e.target.value })} required /> setFormData({ ...formData, password: e.target.value }) } required />
setFormData({ ...formData, rememberMe: e.target.checked }) } /> Esqueceu a senha?
{/* Divider */}
ou continue com
{/* Social Login */}
{/* Sign up link */}

Não tem uma conta?{" "} Criar conta

{/* Lado Direito - Branding */}
{/* Logo */}

aggios

{/* Conteúdo */}

Gerencie seus projetos com facilidade

Tenha controle total sobre seus projetos, equipe e clientes em um só lugar.

{/* Features */}

Gestão Completa

Controle projetos, tarefas e prazos em tempo real

Relatórios Detalhados

Análises e métricas para tomada de decisão

Colaboração em Equipe

Trabalhe junto com sua equipe de forma eficiente

{/* Círculos decorativos */}
); }