Merge branch 'staging' into 'main'

Staging

See merge request frontend/squiz!315
This commit is contained in:
Nastya 2024-05-12 02:45:46 +00:00
commit 516fd5649d
5 changed files with 487 additions and 441 deletions

@ -7,7 +7,7 @@
"@emotion/react": "^11.10.5", "@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5", "@emotion/styled": "^11.10.5",
"@frontend/kitui": "^1.0.82", "@frontend/kitui": "^1.0.82",
"@frontend/squzanswerer": "^1.0.37", "@frontend/squzanswerer": "^1.0.38",
"@mui/icons-material": "^5.10.14", "@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14", "@mui/material": "^5.10.14",
"@mui/x-charts": "^6.19.5", "@mui/x-charts": "^6.19.5",

@ -283,8 +283,8 @@ export default function App() {
path={"/qaz"} path={"/qaz"}
element={<LazyLoading children={<InfoPrivilege />} />} element={<LazyLoading children={<InfoPrivilege />} />}
/> />
<Route path={"/image/:srcImage"} element={<ChatImageNewWindow />} />
<Route element={<PrivateRoute />}> <Route element={<PrivateRoute />}>
<Route path={"/image/:srcImage"} element={<ChatImageNewWindow />} />
{routeslink.map((e, i) => ( {routeslink.map((e, i) => (
<Route <Route
key={i} key={i}

@ -122,6 +122,7 @@ export const DesignFilling = ({
width: "100%", width: "100%",
borderRadius: "12px", borderRadius: "12px",
height: "calc(100vh - 300px)", height: "calc(100vh - 300px)",
mb: "76px"
}} }}
> >
<Box <Box

@ -1,4 +1,4 @@
import { useEffect, useLayoutEffect, useState } from "react"; import {useEffect, useLayoutEffect, useRef, useState} from "react";
import { Box, Button, Modal, Typography } from "@mui/material"; import { Box, Button, Modal, Typography } from "@mui/material";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";
import { mutate } from "swr"; import { mutate } from "swr";
@ -6,24 +6,31 @@ import { mutate } from "swr";
import makeRequest from "@api/makeRequest"; import makeRequest from "@api/makeRequest";
import { getDiscounts } from "@api/discounts"; import { getDiscounts } from "@api/discounts";
import { useUserStore } from "@root/user"; import {clearUserData, OriginalUserAccount, setUserAccount, useUserStore} from "@root/user";
import { parseAxiosError } from "@utils/parse-error"; import { parseAxiosError } from "@utils/parse-error";
import { useUserAccountFetcher } from "../App";
import type { Discount } from "@model/discounts"; import type { Discount } from "@model/discounts";
import {clearAuthToken, createUserAccount, devlog, getMessageFromFetchError} from "@frontend/kitui";
import {useNavigate} from "react-router-dom";
import {isAxiosError} from "axios";
export function CheckFastlink() { export function CheckFastlink() {
const user = useUserStore();
const userId = useUserStore((state) => state.userId); const userId = useUserStore((state) => state.userId);
const navigate = useNavigate();
const [discounts, setDiscounts] = useState<Discount[]>([]); const [discounts, setDiscounts] = useState<Discount[]>([]);
const [askToChange, setAskToChange] = useState(false); const [askToChange, setAskToChange] = useState(false);
const [promocode, setPromocode] = useState(""); const [promocode, setPromocode] = useState("");
console.log(
user.userAccount,
user.customerAccount)
useEffect(() => { useEffect(() => {
const get = async () => { const get = async () => {
if (!userId) { if (!user.userId) {
return; return;
} }
const [discounts] = await getDiscounts(userId); const [discounts] = await getDiscounts(user.userId);
if (discounts?.length) { if (discounts?.length) {
setDiscounts(discounts); setDiscounts(discounts);
@ -48,6 +55,16 @@ export function CheckFastlink() {
}); });
enqueueSnackbar("Промокод успешно применён"); enqueueSnackbar("Промокод успешно применён");
localStorage.setItem("fl", ""); localStorage.setItem("fl", "");
const controller = new AbortController();
const responseAccount = await makeRequest<never, any>({
url: process.env.REACT_APP_DOMAIN + "/squiz/account/get",
contentType: true,
method: "GET",
useToken: true,
withCredentials: false,
signal: controller.signal,
})
setUserAccount(responseAccount)
mutate("discounts"); mutate("discounts");
return response.greetings; return response.greetings;
} catch (nativeError) { } catch (nativeError) {
@ -75,16 +92,20 @@ export function CheckFastlink() {
if (flLS !== null && flLS.length > 0) { if (flLS !== null && flLS.length > 0) {
setPromocode(flLS); setPromocode(flLS);
if (userId !== null) { if (user.userId !== null) {
//У нас есть промокод и юзер авторизован. Проверяем есть ли у него применённый промокод //У нас есть промокод и юзер авторизован. Проверяем есть ли у него применённый промокод
if (discounts?.find((e) => e.Condition.User === userId)) { //Проверяем были ли запросы на аккаунт и кастомер аккаунт
setAskToChange(true); if (user.userAccount !== null && user.customerAccount !== null) {
} else { if (discounts?.find((e) => e.Condition.User === user.userId)) {
fetchPromocode(); setAskToChange(true);
} else {
fetchPromocode();
}
} }
} }
} }
}, [userId, discounts]); }, [user.userId, discounts, user.customerAccount?.createdAt, user.userAccount?.created_at]);
return ( return (
<Modal <Modal

878
yarn.lock

File diff suppressed because it is too large Load Diff