Merge branch 'fix-account-logout-data-cleanup' into dev
This commit is contained in:
commit
ffda341e4b
23
src/App.tsx
23
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,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("/");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user