diff --git a/package.json b/package.json index 43f2c04c..06dfcb31 100755 --- a/package.json +++ b/package.json @@ -58,7 +58,8 @@ "build": "craco build", "test": "craco test", "eject": "craco eject", - "cypress:open": "cypress open" + "cypress:open": "cypress open", + "code:format": "prettier . --write --ignore-unknown" }, "browserslist": { "production": [ @@ -79,6 +80,7 @@ "@types/react-beautiful-dnd": "^13.1.4", "@types/react-cytoscapejs": "^1.2.4", "craco-alias": "^3.0.1", - "cypress": "^13.6.1" + "cypress": "^13.6.1", + "prettier": "^3.1.1" } } diff --git a/prettierrc b/prettierrc new file mode 100644 index 00000000..80e56165 --- /dev/null +++ b/prettierrc @@ -0,0 +1,12 @@ +{ + "semi": true, + "trailingComma": "es5", + "singleQuote": false, + "printWidth": 120, + "tabWidth": 2, + "useTabs": false, + "endOfLine": "auto", + "bracketSpacing": true, + "arrowParens": "always", + "jsxSingleQuote": false +} diff --git a/src/App.tsx b/src/App.tsx index 7136bf2e..96b97130 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,100 +1,100 @@ -import ContactFormModal from "@ui_kit/ContactForm"; -import ImageCrop from "@ui_kit/Modal/ImageCrop"; -import dayjs from "dayjs"; -import "dayjs/locale/ru"; -import SigninDialog from "./pages/auth/Signin"; -import SignupDialog from "./pages/auth/Signup"; -import { ViewPage } from "./pages/ViewPublicationPage"; -import { Route, Routes, useLocation, useNavigate, Navigate } from "react-router-dom"; -import "./index.css"; -import ContactFormPage from "./pages/ContactFormPage/ContactFormPage"; -import InstallQuiz from "./pages/InstallQuiz/InstallQuiz"; -import Landing from "./pages/Landing/Landing"; -import QuestionsPage from "./pages/Questions/QuestionsPage"; -import { Result } from "./pages/ResultPage/Result"; -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, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui"; -import { clearUserData, setUser, setUserAccount, useUserStore } from "@root/user"; -import { enqueueSnackbar } from "notistack"; -import PrivateRoute from "@ui_kit/PrivateRoute"; - -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 }, -] as const; - -export default function App() { - 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(); - } - }, - }); - - 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) => ( - } /> - ))} - - } /> - } /> - } /> - - - - ); -} +import ContactFormModal from "@ui_kit/ContactForm"; +import ImageCrop from "@ui_kit/Modal/ImageCrop"; +import dayjs from "dayjs"; +import "dayjs/locale/ru"; +import SigninDialog from "./pages/auth/Signin"; +import SignupDialog from "./pages/auth/Signup"; +import { ViewPage } from "./pages/ViewPublicationPage"; +import { Route, Routes, useLocation, useNavigate, Navigate } from "react-router-dom"; +import "./index.css"; +import ContactFormPage from "./pages/ContactFormPage/ContactFormPage"; +import InstallQuiz from "./pages/InstallQuiz/InstallQuiz"; +import Landing from "./pages/Landing/Landing"; +import QuestionsPage from "./pages/Questions/QuestionsPage"; +import { Result } from "./pages/ResultPage/Result"; +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, useUserAccountFetcher, useUserFetcher } from "@frontend/kitui"; +import { clearUserData, setUser, setUserAccount, useUserStore } from "@root/user"; +import { enqueueSnackbar } from "notistack"; +import PrivateRoute from "@ui_kit/PrivateRoute"; + +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 }, +] as const; + +export default function App() { + 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(); + } + }, + }); + + 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/yarn.lock b/yarn.lock index 5c6fbdc9..8a861543 100755 --- a/yarn.lock +++ b/yarn.lock @@ -8313,6 +8313,11 @@ prelude-ls@~1.1.2: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== +prettier@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== + pretty-bytes@^5.3.0, pretty-bytes@^5.4.1, pretty-bytes@^5.6.0: version "5.6.0" resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"