import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useAuthStore } from '../../stores/authStore'; export function RegisterPage() { const [username, setUsername] = useState(''); const [displayName, setDisplayName] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const register = useAuthStore((s) => s.register); const isLoading = useAuthStore((s) => s.isLoading); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (!username.trim()) { setError('Username is required'); return; } if (username.trim().length < 3 || username.trim().length > 32) { setError('Username must be between 3 and 32 characters'); return; } if (!/^[a-zA-Z0-9_]+$/.test(username.trim())) { setError('Username can only contain letters, numbers, and underscores'); return; } if (!password) { setError('Password is required'); return; } if (password.length < 6) { setError('Password must be at least 6 characters'); return; } try { await register(username.trim(), password, displayName.trim() || undefined); navigate('/channels/@me'); } catch (err) { setError(err instanceof Error ? err.message : 'Registration failed'); } }; return (