import React, { useState } from "react"; import { useParams, useNavigate } from "react-router-dom"; import axios from "axios"; import { Form, Button, Card, Alert, Spinner, Row, Col, } from "react-bootstrap"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faKey } from "@fortawesome/free-solid-svg-icons"; const CreateNewPassoword = () => { const { uidb64, token } = useParams(); const navigate = useNavigate(); const [newPassword, setNewPassword] = useState(""); const [reNewPassword, setReNewPassword] = useState(""); const [status, setStatus] = useState("idle"); // idle | loading | success | error const [error, setError] = useState(""); const handleSubmit = async (e) => { e.preventDefault(); setStatus("loading"); setError(""); if (newPassword !== reNewPassword) { setStatus("error"); setError("Hesla se neshodují."); return; } try { const response = await axios.post( `/api/account/reset-password/${uidb64}/${token}/`, { new_password: newPassword, re_new_password: reNewPassword, } ); if (response.status === 200) { setStatus("success"); setTimeout(() => { navigate("/"); // přesměrování na login page }, 3000); } } catch (err) { setStatus("error"); setError( err.response?.data?.detail || "Nepodařilo se resetovat heslo. Token může být neplatný nebo expirovaný." ); } }; return (

Reset hesla

{status === "success" ? ( Heslo bylo úspěšně změněno. Přesměrování na přihlášení... ) : (
{/* Nové heslo */} setNewPassword(e.target.value)} value={newPassword} /> {/* Potvrzení hesla */} setReNewPassword(e.target.value)} value={reNewPassword} /> {/* Submit */} {/* Chyba */} {status === "error" && ( {error} )}
)}
Zpět na přihlášení
); }; export default CreateNewPassoword;