From a6a89b0bd3cafc5d972fa8b6fb5f9bada9525581 Mon Sep 17 00:00:00 2001 From: Nastya Date: Sat, 16 Aug 2025 07:02:07 +0300 Subject: [PATCH] fix changepwd --- src/pages/auth/RecoverPassword.tsx | 7 ++++++- src/utils/hooks/useAutoPay.ts | 27 ++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/pages/auth/RecoverPassword.tsx b/src/pages/auth/RecoverPassword.tsx index 4849d9e4..11ce9e72 100644 --- a/src/pages/auth/RecoverPassword.tsx +++ b/src/pages/auth/RecoverPassword.tsx @@ -54,6 +54,8 @@ export default function RecoverPassword() { initialValues, validationSchema, onSubmit: async (values, formikHelpers) => { + console.log("tokenUser", tokenUser); + if (tokenUser) { setAuthToken(tokenUser || ""); const [_, recoverError] = await recoverUser(values.password); @@ -74,9 +76,12 @@ export default function RecoverPassword() { }, }); useEffect(() => { + console.log("RecoverPassword useEffect - window.location.search:", window.location.search); + console.log("RecoverPassword useEffect - window.location.href:", window.location.href); const params = new URLSearchParams(window.location.search); const authToken = params.get("auth"); - setTokenUser(authToken); + console.log("RecoverPassword useEffect - authToken:", authToken); + setTokenUser(authToken || ""); history.pushState(null, document.title, "/changepwd"); return () => { diff --git a/src/utils/hooks/useAutoPay.ts b/src/utils/hooks/useAutoPay.ts index a78d88d8..6b2a0855 100644 --- a/src/utils/hooks/useAutoPay.ts +++ b/src/utils/hooks/useAutoPay.ts @@ -2,7 +2,7 @@ import { cartApi } from "@api/cart"; import { useUserStore } from "@/stores/user"; import { enqueueSnackbar } from "notistack"; import { useEffect } from "react"; -import { useNavigate, useSearchParams } from "react-router-dom"; +import { useNavigate, useSearchParams, useLocation } from "react-router-dom"; import { calcTimeOfReadyPayCart, cancelPayCartProcess, startPayCartProcess, useNotEnoughMoneyAmount } from "@/stores/notEnoughMoneyAmount"; import { startCC } from "@/stores/cc"; import { setEditQuizId, setCurrentStep } from "@root/quizes/actions"; @@ -17,6 +17,7 @@ import { setEditQuizId, setCurrentStep } from "@root/quizes/actions"; export const useAfterPay = () => { const navigate = useNavigate(); const [searchParams, setSearchParams] = useSearchParams(); + const location = useLocation(); const userId = useUserStore(store => store.userId) const userAccount = useUserStore(state => state.userAccount); @@ -28,8 +29,28 @@ export const useAfterPay = () => { let URLadditionalinformation = searchParams.get("additionalinformation");//его токен useEffect(() => { + // Проверяем, открыта ли модалка восстановления пароля + const isRecoverPasswordModal = location.state?.backgroundLocation?.pathname === "/changepwd"; - setSearchParams({}, { replace: true }); + // Проверяем, есть ли токен восстановления пароля в URL + const hasAuthToken = searchParams.get("auth") || window.location.search.includes("auth="); + + console.log("useAfterPay debug:", { + pathname: location.pathname, + backgroundLocation: location.state?.backgroundLocation, + isRecoverPasswordModal, + searchParams: window.location.search, + authToken: searchParams.get("auth"), + hasAuthToken + }); + + // НЕ очищаем параметры на странице восстановления пароля, когда открыты модалки или есть токен auth + if (location.pathname !== "/changepwd" && !location.state?.backgroundLocation && !isRecoverPasswordModal && !hasAuthToken) { + console.log("Очищаем параметры URL"); + setSearchParams({}, { replace: true }); + } else { + console.log("НЕ очищаем параметры URL"); + } if (userId && URLuserId && userId === URLuserId) { @@ -78,7 +99,7 @@ export const useAfterPay = () => { } } - }, []); + }, [location.pathname, location.state?.backgroundLocation]); //Обработка необходимости купить после пополнения useEffect(() => {