import React, { useState } from "react"; import { auth, googleProvider, signInWithPopup, signInWithEmailAndPassword, createUserWithEmailAndPassword, } from "../config/firebase.js"; import { Lock, Mail, LogIn, UserPlus, AlertCircle, X } from "lucide-react"; import { useLanguage } from "../context/LanguageContext.js"; interface AuthModalProps { isOpen: boolean; onClose: () => void; } export const AuthModal: React.FC = ({ isOpen, onClose }) => { const { language, t, isRtl } = useLanguage(); const [mode, setMode] = useState<"login" | "register">("login"); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); if (!isOpen) return null; const handleGoogleSignIn = async () => { setLoading(true); setError(""); try { await signInWithPopup(auth, googleProvider); onClose(); } catch (err: unknown) { const msg = err instanceof Error ? err.message : "Google Sign-In failed."; setError(msg); } finally { setLoading(false); } }; const handleEmailSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!email || !password) { setError(language === "ar" ? "يرجى إدخال البريد الإلكتروني وكلمة المرور." : "Please fill in both email and password."); return; } setLoading(true); setError(""); try { if (mode === "login") { await signInWithEmailAndPassword(auth, email, password); } else { await createUserWithEmailAndPassword(auth, email, password); } onClose(); } catch (err: unknown) { const msg = err instanceof Error ? err.message : "Authentication failed."; setError(msg); } finally { setLoading(false); } }; return (
GS

{mode === "login" ? t.auth.signInTitle : (language === "ar" ? "إنشاء حساب جديد" : "Create Your Account")}

{t.auth.signInSubtitle}

{error && (
{error}
)} {/* Google Registration & Sign In Button */}
{language === "ar" ? "أو عبر البريد الإلكتروني" : "Or with Email"}
{/* Email & Password Form */}
setEmail(e.target.value)} placeholder="analyst@sovereign-macro.org" className={`w-full bg-slate-950 border border-slate-800 rounded-lg ${isRtl ? "pr-9 pl-3 text-right" : "pl-9 pr-3 text-left"} py-2 text-xs text-slate-200 focus:outline-none focus:border-cyan-500`} />
setPassword(e.target.value)} placeholder="••••••••••••" className={`w-full bg-slate-950 border border-slate-800 rounded-lg ${isRtl ? "pr-9 pl-3 text-right" : "pl-9 pr-3 text-left"} py-2 text-xs text-slate-200 focus:outline-none focus:border-cyan-500`} />
{mode === "login" ? (language === "ar" ? "ليس لديك حساب؟" : "Don't have an account?") : (language === "ar" ? "لديك حساب بالفعل؟" : "Already registered?")}{" "}
); };