Merge branch 'fix-account-logout-data-cleanup' into dev

This commit is contained in:
Nastya 2024-04-04 02:42:41 +03:00
commit ffda341e4b
7 changed files with 38 additions and 49 deletions

@ -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,15 +40,10 @@ 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 { useAfterpay } from "@utils/hooks/useAfterpay";
import type { OriginalUserAccount } from "@root/user";
import type { SuspenseProps } from "react";
const MyQuizzesFull = lazy(() => import("./pages/createQuize/MyQuizzesFull"));
const ViewPage = lazy(() => import("./pages/ViewPublicationPage"));
const Analytics = lazy(() => import("./pages/Analytics/Analytics"));

@ -1,39 +1,35 @@
import { Link, useLocation, useNavigate } from "react-router-dom";
import { makeRequest, useToken } from "@frontend/kitui";
import type { Tariff } from "@frontend/kitui";
import { clearAuthToken, makeRequest, useToken } from "@frontend/kitui";
import { useEffect, useState } from "react";
import type { GetTariffsResponse } from "@model/tariff";
import { clearAuthToken } from "@frontend/kitui";
import { logout } from "@api/auth";
import ArrowDown from "../../assets/icons/ArrowDownIcon";
import {
Box,
Button,
Container,
IconButton,
Modal,
Paper,
Typography,
useMediaQuery,
useTheme,
IconButton,
} from "@mui/material";
import { enqueueSnackbar } from "notistack";
import { getMessageFromFetchError } from "@frontend/kitui";
import { withErrorBoundary } from "react-error-boundary";
import { createTariffElements } from "./tariffsUtils/createTariffElements";
import HeaderFull from "@ui_kit/Header/HeaderFull";
import Logotip from "../../pages/Landing/images/icons/QuizLogo";
import { LogoutButton } from "@ui_kit/LogoutButton";
import { clearUserData, useUserStore } from "@root/user";
import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { currencyFormatter } from "./tariffsUtils/currencyFormatter";
import type { Tariff } from "@frontend/kitui";
import { Tabs } from "./Tabs";
import { cleanAuthTicketData } from "@root/ticket";
import { useDomainDefine } from "@utils/hooks/useDomainDefine";
import CollapsiblePromocodeField from "./CollapsiblePromocodeField";
import { activatePromocode } from "@api/promocode";
import { clearQuizData } from "@root/quizes/store";
const StepperText: Record<string, string> = {
count: "Тарифы на объём",
@ -179,6 +175,7 @@ function TariffPage() {
cleanAuthTicketData();
clearAuthToken();
clearUserData();
clearQuizData();
navigate("/");
}

@ -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 <HeaderFull isRequest={false} />;
}
return (
<>
<HeaderFull isRequest={false} />
@ -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}

@ -30,3 +30,5 @@ export const useQuizStore = create<QuizStore>()(
},
),
);
export const clearQuizData = () => useQuizStore.setState({ ...initialState });

@ -7,17 +7,13 @@ import {
Container,
FormControl,
IconButton,
TextField,
useMediaQuery,
useTheme,
} from "@mui/material";
import { updateQuiz } from "@root/quizes/actions";
import { useCurrentQuiz } from "@root/quizes/hooks";
import CustomAvatar from "@ui_kit/Header/Avatar";
import NavMenuItem from "@ui_kit/Header/NavMenuItem";
import { enqueueSnackbar } from "notistack";
import { useState } from "react";
import { Link, useNavigate } from "react-router-dom";
import Logotip from "../../pages/Landing/images/icons/QuizLogo";
@ -27,6 +23,7 @@ import { logout } from "@api/auth";
import { ToTariffsButton } from "@ui_kit/Toolbars/ToTariffsButton";
import CustomTextField from "@ui_kit/CustomTextField";
import { cleanAuthTicketData } from "@root/ticket";
import { clearQuizData } from "@root/quizes/store";
type HeaderProps = {
setMobileSidebar: (callback: (visible: boolean) => boolean) => void;
@ -50,6 +47,7 @@ export const Header = ({ setMobileSidebar, scrollDown }: HeaderProps) => {
cleanAuthTicketData();
clearAuthToken();
clearUserData();
clearQuizData();
navigate("/");
}

@ -2,17 +2,12 @@ import {
Box,
Container,
IconButton,
Typography,
useTheme,
useMediaQuery,
SxProps,
Theme,
useMediaQuery,
useTheme,
} from "@mui/material";
import NavMenuItem from "./NavMenuItem";
import Logotip from "../../pages/Landing/images/icons/QuizLogo";
import WalletIcon from "@icons/WalletIcon";
import CustomAvatar from "./Avatar";
import { Burger } from "@icons/Burger";
import { clearAuthToken } from "@frontend/kitui";
import { logout } from "@api/auth";
import { Link, useNavigate } from "react-router-dom";
@ -22,6 +17,7 @@ import { LogoutButton } from "@ui_kit/LogoutButton";
import { ToTariffsButton } from "@ui_kit/Toolbars/ToTariffsButton";
import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { cleanAuthTicketData } from "@root/ticket";
import { clearQuizData } from "@root/quizes/store";
interface HeaderFullProps {
isRequest: boolean;
@ -44,6 +40,7 @@ export default function HeaderFull({ isRequest = false, sx }: HeaderFullProps) {
cleanAuthTicketData();
clearAuthToken();
clearUserData();
clearQuizData();
navigate("/");
}

@ -1,48 +1,39 @@
import { FC, useEffect, useRef, useState } from "react";
import React, { FC, useEffect, useRef, useState } from "react";
import {
Box,
FormControl,
IconButton,
List,
Popper,
TextField,
Typography,
useMediaQuery,
useTheme,
} from "@mui/material";
import { People } from "@mui/icons-material";
import { SidebarModal } from "./SidebarModal";
import BackArrowIcon from "@icons/BackArrowIcon";
import { ChartLineUp } from "./icons/ChartLineUp";
import { ReturnTime } from "./icons/ReturnTime";
import { Question } from "./icons/Question";
import { Settings } from "./icons/Settings";
import { Pencil } from "./icons/Pencil";
import { ArrowDown } from "./icons/ArrowDown";
import Sidebar from "@ui_kit/Sidebar/Sidebar";
import { Link, useLocation, useNavigate } from "react-router-dom";
import { setCurrentStep, updateQuiz } from "@root/quizes/actions";
import { useCurrentQuiz } from "@root/quizes/hooks";
import { LogoutButton } from "@ui_kit/LogoutButton";
import { ToTariffsButton } from "@ui_kit/Toolbars/ToTariffsButton";
import { logout } from "@api/auth";
import { enqueueSnackbar } from "notistack";
import { clearAuthToken } from "@frontend/kitui";
import { clearUserData } from "@root/user";
import CustomTextField from "@ui_kit/CustomTextField";
import PencilCircleIcon from "@icons/PencilCircleIcon";
import { quizSetupSteps } from "@model/quizSettings";
import React from "react";
import { updateNextStep } from "@root/uiTools/actions";
import { cleanAuthTicketData } from "@root/ticket";
import { clearQuizData } from "@root/quizes/store";
interface SidebarIconProps {
height: string;
width: string;
color: string;
}
import { cleanAuthTicketData } from "@root/ticket";
interface Iprops {
open: boolean;
@ -93,6 +84,7 @@ export const SidebarMobile: FC<Iprops> = ({
cleanAuthTicketData();
clearAuthToken();
clearUserData();
clearQuizData();
navigate("/");
}