import { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; import { UserPlus, Mail, Lock, AlertCircle } from 'lucide-react'; export function Register() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); const { register } = useAuth(); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (password !== confirmPassword) { setError('Passwords do not match'); return; } if (password.length < 8) { setError('Password must be at least 8 characters'); return; } setIsLoading(true); try { await register(email, password); navigate('/analysis', { replace: true }); } catch (err) { setError(err instanceof Error ? err.message : 'Registration failed'); } finally { setIsLoading(false); } }; return (
{/* Brand */}

SPARC

Semiconductor Patent Analytics Dashboard

{/* Register Card */}

Create your account

{error && (
{error}
)}
setEmail(e.target.value)} required className="w-full bg-bg-dark/80 border border-primary/30 rounded-xl pl-10 pr-4 py-3 text-text-primary placeholder-text-secondary/50 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all" placeholder="you@example.com" />
setPassword(e.target.value)} required minLength={8} className="w-full bg-bg-dark/80 border border-primary/30 rounded-xl pl-10 pr-4 py-3 text-text-primary placeholder-text-secondary/50 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all" placeholder="At least 8 characters" />
setConfirmPassword(e.target.value)} required className="w-full bg-bg-dark/80 border border-primary/30 rounded-xl pl-10 pr-4 py-3 text-text-primary placeholder-text-secondary/50 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all" placeholder="Confirm your password" />
Already have an account? Sign in

The first registered user will automatically become an admin.

); }