import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; import { useAuth } from "../context/AuthContext"; function AuthForm({ isLogin, onToggle }: { isLogin: boolean; onToggle: () => void }) { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const { login, register } = useAuth(); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); if (!isLogin && password !== confirmPassword) { setError("Passwords do not match."); return; } setLoading(true); try { if (isLogin) await login(email, password); else await register(email, password); navigate("/"); } catch (err) { setError(err instanceof Error ? err.message : isLogin ? "Login failed" : "Registration failed"); } finally { setLoading(false); } }; return (

Cloud Reader

{isLogin ? "Sign In" : "Create Account"}

{error &&
{error}
}
setEmail(e.target.value)} placeholder="you@example.com" required style={{ padding: "10px 12px", borderRadius: 6, border: "1px solid #ddd", fontSize: 16, outline: "none" }} />
setPassword(e.target.value)} placeholder="At least 8 characters" required minLength={8} style={{ padding: "10px 12px", borderRadius: 6, border: "1px solid #ddd", fontSize: 16, outline: "none" }} />
{!isLogin &&
setConfirmPassword(e.target.value)} placeholder="Repeat your password" required minLength={8} style={{ padding: "10px 12px", borderRadius: 6, border: "1px solid #ddd", fontSize: 16, outline: "none" }} />
}

{isLogin ? "Don't have an account? " : "Already have an account? "}

); } export function LoginPage({ onToggle }: { onToggle: () => void }) { return ; } export function RegisterPage({ onToggle }: { onToggle: () => void }) { return ; }