"use client"; import { useState, useEffect } from "react"; import Link from "next/link"; import { Button, Input, Checkbox } from "@/components/ui"; import toast, { Toaster } from 'react-hot-toast'; import { saveAuth, isAuthenticated } from '@/lib/auth'; import dynamic from 'next/dynamic'; const ThemeToggle = dynamic(() => import('@/components/ThemeToggle'), { ssr: false }); const DEFAULT_GRADIENT = 'linear-gradient(135deg, #ff3a05, #ff0080)'; const setGradientVariables = (gradient: string) => { document.documentElement.style.setProperty('--gradient-primary', gradient); document.documentElement.style.setProperty('--gradient', gradient); document.documentElement.style.setProperty('--gradient-text', gradient.replace('90deg', 'to right')); document.documentElement.style.setProperty('--color-gradient-brand', gradient.replace('90deg', 'to right')); }; export default function LoginPage() { const [isLoading, setIsLoading] = useState(false); const [isSuperAdmin, setIsSuperAdmin] = useState(false); const [subdomain, setSubdomain] = useState(''); const [formData, setFormData] = useState({ email: "", password: "", rememberMe: false, }); useEffect(() => { if (typeof window !== 'undefined') { setIsSuperAdmin(true); setGradientVariables(DEFAULT_GRADIENT); if (isAuthenticated()) { const userData = localStorage.getItem('user'); if (userData) { const user = JSON.parse(userData); if (user.role === 'SUPERADMIN') { window.location.href = '/superadmin'; } else { localStorage.removeItem('token'); localStorage.removeItem('user'); } } } } }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); 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('/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(); saveAuth(data.token, data.user); console.log('Login successful:', data.user); toast.success('Login realizado com sucesso! Redirecionando...'); setTimeout(() => { const target = isSuperAdmin ? '/superadmin' : '/dashboard'; window.location.href = target; }, 1000); } catch (error: any) { toast.error(error.message || 'Erro ao fazer login. Verifique suas credenciais.'); setIsLoading(false); } }; return ( <>
{/* Lado Esquerdo - Formulário */}
{/* Logo mobile */}

{isSuperAdmin ? 'aggios' : subdomain}

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

{isSuperAdmin ? 'Painel Administrativo' : 'Bem-vindo de volta'}

{isSuperAdmin ? 'Acesso exclusivo para administradores Aggios' : '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?
{/* Lado Direito - Branding */}

aggios

Gerencie todas as agências em um só lugar

Seguro

Proteção de dados

Rápido

Performance otimizada

Colaborativo

Trabalho em equipe

Insights

Relatórios detalhados

); }