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 (
קוד אימות יישלח לכתובת המייל שלך. הקוד תקף ל-10 דקות.