import { useState } from "react"; import { changePassword, requestPasswordChangeCode } from "../authApi"; export default function ChangePassword({ token, onClose, onSuccess }) { const [step, setStep] = useState(1); // 1: request code, 2: enter code & passwords const [verificationCode, setVerificationCode] = useState(""); const [currentPassword, setCurrentPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const [codeSent, setCodeSent] = useState(false); const handleRequestCode = async () => { setError(""); setLoading(true); try { await requestPasswordChangeCode(token); setCodeSent(true); setStep(2); } catch (err) { setError(err.message); } finally { setLoading(false); } }; const handleSubmit = async (e) => { e.preventDefault(); setError(""); // Validation if (!verificationCode || !currentPassword || !newPassword || !confirmPassword) { setError("נא למלא את כל השדות"); return; } if (verificationCode.length !== 6) { setError("קוד האימות חייב להכיל 6 ספרות"); return; } if (newPassword !== confirmPassword) { setError("הסיסמאות החדשות אינן תואמות"); return; } if (newPassword.length < 6) { setError("הסיסמה חייבת להכיל לפחות 6 תווים"); return; } setLoading(true); try { await changePassword(verificationCode, currentPassword, newPassword, token); onSuccess?.(); onClose(); } catch (err) { setError(err.message); } finally { setLoading(false); } }; return (
e.stopPropagation()}>

שינוי סיסמה

{error &&
{error}
} {step === 1 && (

קוד אימות יישלח לכתובת המייל שלך. הקוד תקף ל-10 דקות.

)} {step === 2 && (
{codeSent && (
✓ קוד אימות נשלח לכתובת המייל שלך
)}
setVerificationCode(e.target.value.replace(/\D/g, '').slice(0, 6))} disabled={loading} autoFocus placeholder="123456" maxLength={6} style={{ fontSize: "1.2rem", letterSpacing: "0.3rem", textAlign: "center" }} />
setCurrentPassword(e.target.value)} disabled={loading} />
setNewPassword(e.target.value)} disabled={loading} />
setConfirmPassword(e.target.value)} disabled={loading} />
)}
); }