'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import { motion, AnimatePresence } from 'framer-motion'; import { register as registerAPI } from '@/lib/api'; import { showToast } from '@/lib/toast'; import { Eye, EyeOff, Loader2, Check, X, AlertCircle, Mail, Lock, User, ChevronRight } from 'lucide-react'; export default function RegisterForm() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const [showPassword, setShowPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const [acceptedTerms, setAcceptedTerms] = useState(false); const router = useRouter(); const hasMinLength = password.length >= 8; const hasNumber = /\d/.test(password); const hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(password); const passwordsMatch = password === confirmPassword; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (!acceptedTerms) { setError('Neural Protocol agreement required'); return; } if (password !== confirmPassword) { setError('Cipher mismatch detected'); return; } setLoading(true); try { await registerAPI({ email, password }); showToast.success('Entity Identity Registered'); router.push('/tasks'); router.refresh(); } catch (err: any) { setError(err.message || 'Initialization failed.'); } finally { setLoading(false); } }; return (
{error && (

{error}

)}
setEmail(e.target.value)} className="w-full bg-white/[0.03] border border-white/5 rounded-2xl py-4 pl-12 pr-4 text-white placeholder-white/10 focus:outline-none focus:border-emerald-500/50 focus:bg-white/[0.05] transition-all font-bold" placeholder="operator@matrix.net" />
setPassword(e.target.value)} className="w-full bg-white/[0.03] border border-white/5 rounded-2xl py-4 pl-12 pr-12 text-white placeholder-white/10 focus:outline-none focus:border-emerald-500/50 focus:bg-white/[0.05] transition-all font-bold" placeholder="••••••••" />
{password && (
)}
setConfirmPassword(e.target.value)} className={`w-full bg-white/[0.03] border ${confirmPassword ? (passwordsMatch ? 'border-emerald-500/50' : 'border-red-500/50') : 'border-white/5'} rounded-2xl py-4 pl-12 pr-12 text-white placeholder-white/10 focus:outline-none focus:bg-white/[0.05] transition-all font-bold`} placeholder="••••••••" />
setAcceptedTerms(!acceptedTerms)} >
{acceptedTerms && }

I accept the Terms & Conditions and Privacy Policy.

{loading ? ( ) : ( <> Register )} ); }