import { useState } from 'react' import { Link, useNavigate } from 'react-router-dom' import { Disc3, Mail, Lock, User, Loader2 } from 'lucide-react' import { useAuth } from '../lib/auth' import { register as apiRegister } from '../lib/api' export default function Register() { const [name, setName] = useState('') const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) const { login } = useAuth() const navigate = useNavigate() const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError('') setLoading(true) try { const response = await apiRegister(email, name, password) await login(response.access_token) navigate('/dashboard') } catch (err: any) { setError(err.response?.data?.detail || 'Registration failed. Please try again.') } finally { setLoading(false) } } return (
{/* Header */}
Vynl
{/* Form */}

Create your account

Start discovering music you'll love

{error && (
{error}
)}
setName(e.target.value)} placeholder="Your name" required className="w-full pl-11 pr-4 py-3 bg-cream/50 border border-purple-100 rounded-xl text-charcoal placeholder:text-charcoal-muted/40 focus:outline-none focus:ring-2 focus:ring-purple/30 focus:border-purple transition-colors text-sm box-border" />
setEmail(e.target.value)} placeholder="you@example.com" required className="w-full pl-11 pr-4 py-3 bg-cream/50 border border-purple-100 rounded-xl text-charcoal placeholder:text-charcoal-muted/40 focus:outline-none focus:ring-2 focus:ring-purple/30 focus:border-purple transition-colors text-sm box-border" />
setPassword(e.target.value)} placeholder="Create a password" required minLength={8} className="w-full pl-11 pr-4 py-3 bg-cream/50 border border-purple-100 rounded-xl text-charcoal placeholder:text-charcoal-muted/40 focus:outline-none focus:ring-2 focus:ring-purple/30 focus:border-purple transition-colors text-sm box-border" />

Must be at least 8 characters

Already have an account?{' '} Sign in

) }