diff --git a/package.json b/package.json
index 3208fa17..43f2c04c 100755
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@craco/craco": "^7.0.0",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
- "@frontend/kitui": "^1.0.54",
+ "@frontend/kitui": "^1.0.55",
"@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14",
"@mui/x-date-pickers": "^6.16.1",
diff --git a/src/App.tsx b/src/App.tsx
index 81c5ada5..7136bf2e 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -16,8 +16,8 @@ import { ResultSettings } from "./pages/ResultPage/ResultSettings";
import MyQuizzesFull from "./pages/createQuize/MyQuizzesFull";
import Main from "./pages/main";
import EditPage from "./pages/startPage/EditPage";
-import { clearAuthToken, getMessageFromFetchError, useUserFetcher } from "@frontend/kitui";
-import { clearUserData, setUser, useUserStore } from "@root/user";
+import { clearAuthToken, getMessageFromFetchError, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui";
+import { clearUserData, setUser, setUserAccount, useUserStore } from "@root/user";
import { enqueueSnackbar } from "notistack";
import PrivateRoute from "@ui_kit/PrivateRoute";
@@ -26,59 +26,75 @@ import { Restore } from "./pages/startPage/Restore";
dayjs.locale("ru");
const routeslink = [
- { path: "/list", page: , header: false, sidebar: false },
- { path: "/questions/:quizId", page: , header: true, sidebar: true },
- { path: "/contacts", page: , header: true, sidebar: true },
- { path: "/result", page: , header: true, sidebar: true },
- { path: "/settings", page: , header: true, sidebar: true },
+ { path: "/list", page: , header: false, sidebar: false },
+ { path: "/questions/:quizId", page: , header: true, sidebar: true },
+ { path: "/contacts", page: , header: true, sidebar: true },
+ { path: "/result", page: , header: true, sidebar: true },
+ { path: "/settings", page: , header: true, sidebar: true },
] as const;
export default function App() {
- const userId = useUserStore((state) => state.userId);
- const location = useLocation();
- const navigate = useNavigate();
+ const userId = useUserStore((state) => state.userId);
+ const location = useLocation();
+ const navigate = useNavigate();
- useUserFetcher({
- url: `https://hub.pena.digital/user/${userId}`,
- userId,
- onNewUser: setUser,
- onError: (error) => {
- const errorMessage = getMessageFromFetchError(error);
- if (errorMessage) {
- enqueueSnackbar(errorMessage);
- clearUserData();
- clearAuthToken();
- }
- },
- });
- if (location.state?.redirectTo)
- return ;
+ useUserFetcher({
+ url: `https://hub.pena.digital/user/${userId}`,
+ userId,
+ onNewUser: setUser,
+ onError: (error) => {
+ const errorMessage = getMessageFromFetchError(error);
+ if (errorMessage) {
+ enqueueSnackbar(errorMessage);
+ clearUserData();
+ clearAuthToken();
+ }
+ },
+ });
- return (
- <>
-
- {location.state?.backgroundLocation && (
-
- } />
- } />
- } />
-
- )}
-
- } />
- } />
- } />
- } />
- }>
- {routeslink.map((e, i) => (
- } />
- ))}
+ useUserAccountFetcher({
+ url: "https://squiz.pena.digital/customer/account",
+ userId,
+ onNewUserAccount: setUserAccount,
+ onError: (error) => {
+ const errorMessage = getMessageFromFetchError(error);
+ if (errorMessage) {
+ enqueueSnackbar(errorMessage);
+ clearUserData();
+ clearAuthToken();
+ navigate("/signin");
+ }
+ },
+ });
- } />
- } />
- } />
-
-
- >
- );
+ if (location.state?.redirectTo)
+ return ;
+
+ return (
+ <>
+
+ {location.state?.backgroundLocation && (
+
+ } />
+ } />
+ } />
+
+ )}
+
+ } />
+ } />
+ } />
+ } />
+ }>
+ {routeslink.map((e, i) => (
+ } />
+ ))}
+
+ } />
+ } />
+ } />
+
+
+ >
+ );
}
diff --git a/src/stores/user.ts b/src/stores/user.ts
index a6e5ad16..3c354187 100644
--- a/src/stores/user.ts
+++ b/src/stores/user.ts
@@ -1,4 +1,4 @@
-import { User } from "@frontend/kitui";
+import { User, UserAccount } from "@frontend/kitui";
import { produce } from "immer";
import { create } from "zustand";
import { createJSONStorage, devtools, persist } from "zustand/middleware";
@@ -6,12 +6,13 @@ import { createJSONStorage, devtools, persist } from "zustand/middleware";
interface UserStore {
userId: string | null;
user: User | null;
- // userAccount: UserAccount | null;
+ userAccount: UserAccount | null;
}
const initialState: UserStore = {
userId: null,
user: null,
+ userAccount: null,
};
export const useUserStore = create()(
@@ -19,12 +20,11 @@ export const useUserStore = create()(
devtools((set, get) => initialState, {
name: "User",
enabled: process.env.NODE_ENV === "development",
- trace: true,
+ trace: process.env.NODE_ENV === "development",
}),
{
version: 2,
name: "user",
- storage: createJSONStorage(() => localStorage),
partialize: (state) => ({
userId: state.userId,
user: state.user,
@@ -46,3 +46,5 @@ export const setUser = (user: User) =>
);
export const clearUserData = () => useUserStore.setState({ ...initialState });
+
+export const setUserAccount = (userAccount: UserAccount) => useUserStore.setState({ userAccount });
diff --git a/yarn.lock b/yarn.lock
index 0372fc24..5c6fbdc9 100755
--- a/yarn.lock
+++ b/yarn.lock
@@ -1407,10 +1407,10 @@
resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz"
integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==
-"@frontend/kitui@^1.0.54":
- version "1.0.54"
- resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/21/packages/npm/@frontend/kitui/-/@frontend/kitui-1.0.54.tgz#0235d5a8effb9b92351471c3c7775f28cb2839f6"
- integrity sha1-AjXVqO/7m5I1FHHDx3dfKMsoOfY=
+"@frontend/kitui@^1.0.55":
+ version "1.0.55"
+ resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/21/packages/npm/@frontend/kitui/-/@frontend/kitui-1.0.55.tgz#6e02f80b2c13828142ffeacaf9704e50e54324d0"
+ integrity sha1-bgL4CywTgoFC/+rK+XBOUOVDJNA=
dependencies:
immer "^10.0.2"
reconnecting-eventsource "^1.6.2"