"use client"; import { useState, useEffect } from "react"; import { Eye, EyeOff, Lock, Fingerprint, ArrowLeft, ArrowRight, CheckCircle } from "lucide-react"; import { useLanguage } from "@/components/language-provider"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; export default function ResetPasswordPage() { const { lang, dir } = useLanguage(); const [mounted, setMounted] = useState(false); const [token, setToken] = useState(""); useEffect(() => { setMounted(true); const params = new URLSearchParams(window.location.search); setToken(params.get("token") || ""); }, []); const Arrow = lang === "fa" ? ArrowRight : ArrowLeft; const [password, setPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [showPassword, setShowPassword] = useState(false); const [step, setStep] = useState<"set" | "success">("set"); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(""); if (password !== confirmPassword) { setError(lang === "fa" ? "رمزها مطابقت ندارند" : "Passwords do not match"); return; } if (password.length < 10) { setError(lang === "fa" ? "رمز باید حداقل ۱۰ کاراکتر باشد" : "Password must be at least 10 characters"); return; } if (!token) { setError(lang === "fa" ? "توکن نامعتبر است" : "Invalid token"); return; } setLoading(true); try { const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/auth/password/reset/confirm/`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ token, new_password: password }), }); const data = await res.json(); if (!res.ok) { throw new Error(data.detail || data.error || "Reset failed"); } setStep("success"); } catch (err) { setError(err instanceof Error ? err.message : "Reset failed"); } finally { setLoading(false); } }; return (
{lang === "fa" ? "رمز عبور جدید خود را وارد کنید" : "Enter your new password"}
> ) : ( <>{lang === "fa" ? "اکنون میتوانید با رمز جدید وارد شوید" : "You can now sign in with your new password"}
> )}