/** * Register Page * Cyberpunk Terminal Aesthetic */ import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { apiClient } from '@/shared/api/serverClient'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { toast } from 'sonner'; import { User, Mail, Lock, Terminal, Shield, Cpu } from 'lucide-react'; import { version } from '../../package.json'; export default function Register() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [fullName, setFullName] = useState(''); const [loading, setLoading] = useState(false); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { await apiClient.post('/auth/register', { email, password, full_name: fullName, }); toast.success('注册成功,请登录'); navigate('/login'); } catch (error: any) { const detail = error.response?.data?.detail; if (Array.isArray(detail)) { const messages = detail.map((err: any) => err.msg || err.message || JSON.stringify(err)).join('; '); toast.error(messages || '注册失败'); } else if (typeof detail === 'object') { toast.error(detail.msg || detail.message || JSON.stringify(detail)); } else { toast.error(detail || '注册失败'); } } finally { setLoading(false); } }; return (
{/* Scanline overlay */}
{/* Vignette effect */}
{/* Grid background */}
{/* Corner Decorations */}
REG_MODULE: ACTIVE
ENCRYPT: AES-256
NEW_USER: INIT
SECURE_CONN: TRUE
VALIDATION: ENABLED
HASH: SHA-256
DEEPAUDIT_REG_v3
{new Date().toISOString().split("T")[0]}
{/* Main Card */}
{/* Logo & Title */}
DeepAudit
DEEP AUDIT

// Create New Account

{/* Register Form Card */}
{/* Card Header */}
register@deepaudit
setFullName(e.target.value)} required className="h-12 pl-11 font-mono cyber-bg-elevated border-border/50 text-foreground placeholder:text-muted-foreground focus:border-primary/50 focus:ring-0" />
setEmail(e.target.value)} required className="h-12 pl-11 font-mono cyber-bg-elevated border-border/50 text-foreground placeholder:text-muted-foreground focus:border-primary/50 focus:ring-0" />
setPassword(e.target.value)} required className="h-12 pl-11 font-mono cyber-bg-elevated border-border/50 text-foreground placeholder:text-muted-foreground focus:border-primary/50 focus:ring-0" />
{/* Footer */}

已有账号?{" "} navigate('/login')} > 直接登录

{/* Version Info */}

Version {version} · Secure Registration

); }