diff --git a/src/App.tsx b/src/App.tsx
index 00332eb7..18d63c21 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,4 +1,5 @@
-import { Suspense, lazy } from "react";
+import type { SuspenseProps } from "react";
+import { lazy, Suspense, useEffect, useLayoutEffect, useRef } from "react";
import { lazily } from "react-lazily";
import ContactFormModal from "@ui_kit/ContactForm";
import dayjs from "dayjs";
@@ -6,29 +7,30 @@ import "dayjs/locale/ru";
import SigninDialog from "./pages/auth/Signin";
import SignupDialog from "./pages/auth/Signup";
import {
+ Navigate,
Route,
Routes,
useLocation,
useNavigate,
- Navigate,
} from "react-router-dom";
import "./index.css";
import Landing from "./pages/Landing/Landing";
import Main from "./pages/main";
import {
clearAuthToken,
- getMessageFromFetchError,
- useUserFetcher,
- UserAccount,
- makeRequest,
- devlog,
createUserAccount,
+ devlog,
+ getMessageFromFetchError,
+ makeRequest,
+ UserAccount,
+ useUserFetcher,
} from "@frontend/kitui";
+import type { OriginalUserAccount } from "@root/user";
import {
clearUserData,
+ setCustomerAccount,
setUser,
setUserAccount,
- setCustomerAccount,
useUserStore,
} from "@root/user";
import { enqueueSnackbar } from "notistack";
@@ -38,13 +40,9 @@ import FloatingSupportChat from "@ui_kit/FloatingSupportChat";
import { Restore } from "./pages/auth/Restore";
import { isAxiosError } from "axios";
-import { useEffect, useLayoutEffect, useRef } from "react";
import RecoverPassword from "./pages/auth/RecoverPassword";
import OutdatedLink from "./pages/auth/OutdatedLink";
-
-import type { OriginalUserAccount } from "@root/user";
-
-import type { SuspenseProps } from "react";
+import { clearQuizData } from "@root/quizes/store";
const MyQuizzesFull = lazy(() => import("./pages/createQuize/MyQuizzesFull"));
const ViewPage = lazy(() => import("./pages/ViewPublicationPage"));
@@ -139,6 +137,10 @@ export default function App() {
const location = useLocation();
const navigate = useNavigate();
+ useEffect(() => {
+ return clearQuizData();
+ }, [userId]);
+
useUserFetcher({
url: process.env.REACT_APP_DOMAIN + `/user/${userId}`,
userId,
diff --git a/src/pages/createQuize/MyQuizzesFull.tsx b/src/pages/createQuize/MyQuizzesFull.tsx
index cb6e9752..212a5c58 100644
--- a/src/pages/createQuize/MyQuizzesFull.tsx
+++ b/src/pages/createQuize/MyQuizzesFull.tsx
@@ -31,7 +31,7 @@ export default function MyQuizzesFull({
outerContainerSx: sx,
children,
}: Props) {
- const { quizes } = useQuizes();
+ const { quizes, isValidating } = useQuizes();
const navigate = useNavigate();
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down(500));
@@ -40,6 +40,10 @@ export default function MyQuizzesFull({
copyQuiz(value);
};
+ if (isValidating) {
+ return ;
+ }
+
return (
<>
@@ -100,10 +104,12 @@ export default function MyQuizzesFull({
applicationCount={quiz.passed_count}
conversionPercent={
quiz.session_count
- ? (
- (quiz.passed_count / quiz.session_count) *
- 100
- ).toFixed(1)
+ ? parseFloat(
+ (
+ (quiz.passed_count / quiz.session_count) *
+ 100
+ ).toFixed(1),
+ )
: 0
}
onClickCopy={onClickCopy}
diff --git a/src/stores/quizes/store.ts b/src/stores/quizes/store.ts
index e3667d16..bc21ee3c 100644
--- a/src/stores/quizes/store.ts
+++ b/src/stores/quizes/store.ts
@@ -30,3 +30,5 @@ export const useQuizStore = create()(
},
),
);
+
+export const clearQuizData = () => useQuizStore.setState({ ...initialState });