move common files to lib folder

remove kitui dependency
fix readme
This commit is contained in:
nflnkr 2024-02-12 13:58:51 +03:00
parent f2a9efb005
commit 87897a9d47
93 changed files with 44 additions and 53 deletions

@ -20,5 +20,5 @@ yarn publish
``` ```
Установка Установка
```bash ```bash
yarn add @frontend/kitui yarn add @frontend/squzanswerer
``` ```

@ -10,8 +10,8 @@ import { SnackbarProvider } from 'notistack';
import { Suspense } from "react"; import { Suspense } from "react";
import { ErrorBoundary } from "react-error-boundary"; import { ErrorBoundary } from "react-error-boundary";
import { SWRConfig } from "swr"; import { SWRConfig } from "swr";
import ViewPublicationPage from "./pages/ViewPublicationPage/ViewPublicationPage"; import ViewPublicationPage from "./ViewPublicationPage/ViewPublicationPage";
import lightTheme from "./utils/themes/light"; import lightTheme from "@utils/themes/light";
moment.locale("ru"); moment.locale("ru");

@ -8,7 +8,7 @@ import {
import { NameplateLogo } from "@icons/NameplateLogo"; import { NameplateLogo } from "@icons/NameplateLogo";
import YoutubeEmbedIframe from "./tools/YoutubeEmbedIframe"; import YoutubeEmbedIframe from "./tools/YoutubeEmbedIframe";
import { setCurrentQuizStep } from "@stores/quizView/store"; import { setCurrentQuizStep } from "@stores/quizView";
import { useQuizData } from "@utils/hooks/useQuizData"; import { useQuizData } from "@utils/hooks/useQuizData";
import { quizThemes } from "@utils/themes/Publication/themePublication"; import { quizThemes } from "@utils/themes/Publication/themePublication";
import { useRootContainerSize } from "../../contexts/RootContainerWidthContext"; import { useRootContainerSize } from "../../contexts/RootContainerWidthContext";

@ -8,7 +8,7 @@ import { QuizStartpageAlignType, QuizStartpageType } from "@model/settingsData";
import { useQuizData } from "@utils/hooks/useQuizData"; import { useQuizData } from "@utils/hooks/useQuizData";
import { quizThemes } from "@utils/themes/Publication/themePublication"; import { quizThemes } from "@utils/themes/Publication/themePublication";
import { useRootContainerSize } from "../../contexts/RootContainerWidthContext"; import { useRootContainerSize } from "../../contexts/RootContainerWidthContext";
import { setCurrentQuizStep } from "@stores/quizView/store"; import { setCurrentQuizStep } from "@stores/quizView";
export const StartPageViewPublication = () => { export const StartPageViewPublication = () => {

@ -1,5 +1,5 @@
import { Button, ThemeProvider } from "@mui/material"; import { Button, ThemeProvider } from "@mui/material";
import { useQuizViewStore } from "@stores/quizView/store"; import { useQuizViewStore } from "@stores/quizView";
import { useQuestionFlowControl } from "@utils/hooks/useQuestionFlowControl"; import { useQuestionFlowControl } from "@utils/hooks/useQuestionFlowControl";
import { useQuizData } from "@utils/hooks/useQuizData"; import { useQuizData } from "@utils/hooks/useQuizData";
import { notReachable } from "@utils/notReachable"; import { notReachable } from "@utils/notReachable";

@ -2,7 +2,7 @@ import moment from "moment";
import { DatePicker } from "@mui/x-date-pickers"; import { DatePicker } from "@mui/x-date-pickers";
import { Box, Typography, useTheme } from "@mui/material"; import { Box, Typography, useTheme } from "@mui/material";
import { useQuizViewStore, updateAnswer } from "@stores/quizView/store"; import { useQuizViewStore, updateAnswer } from "@stores/quizView";
import type { QuizQuestionDate } from "../../../model/questionTypes/date"; import type { QuizQuestionDate } from "../../../model/questionTypes/date";
import CalendarIcon from "@icons/CalendarIcon"; import CalendarIcon from "@icons/CalendarIcon";

@ -8,7 +8,7 @@ import {
useTheme useTheme
} from "@mui/material"; } from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck"; import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon"; import RadioIcon from "@ui_kit/RadioIcon";

@ -6,7 +6,7 @@ import {
Typography, Typography,
useTheme useTheme
} from "@mui/material"; } from "@mui/material";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import CloseBold from "@icons/CloseBold"; import CloseBold from "@icons/CloseBold";
import UploadIcon from "@icons/UploadIcon"; import UploadIcon from "@icons/UploadIcon";

@ -7,7 +7,7 @@ import {
useTheme useTheme
} from "@mui/material"; } from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck"; import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon"; import RadioIcon from "@ui_kit/RadioIcon";

@ -5,7 +5,7 @@ import { useDebouncedCallback } from "use-debounce";
import { CustomSlider } from "@ui_kit/CustomSlider"; import { CustomSlider } from "@ui_kit/CustomSlider";
import CustomTextField from "@ui_kit/CustomTextField"; import CustomTextField from "@ui_kit/CustomTextField";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase"; import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";

@ -5,7 +5,7 @@ import {
useTheme useTheme
} from "@mui/material"; } from "@mui/material";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import FlagIcon from "@icons/questionsPage/FlagIcon"; import FlagIcon from "@icons/questionsPage/FlagIcon";
import StarIconMini from "@icons/questionsPage/StarIconMini"; import StarIconMini from "@icons/questionsPage/StarIconMini";

@ -2,7 +2,7 @@ import { Box, Typography, useTheme } from "@mui/material";
import { Select as SelectComponent } from "../tools//Select"; import { Select as SelectComponent } from "../tools//Select";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase"; import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";

@ -2,7 +2,7 @@ import { Box, Typography, useTheme } from "@mui/material";
import CustomTextField from "@ui_kit/CustomTextField"; import CustomTextField from "@ui_kit/CustomTextField";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase"; import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";

@ -17,7 +17,7 @@ import {
updateAnswer, updateAnswer,
updateOwnVariant, updateOwnVariant,
useQuizViewStore useQuizViewStore
} from "@stores/quizView/store"; } from "@stores/quizView";
import { CheckboxIcon } from "@icons/Checkbox"; import { CheckboxIcon } from "@icons/Checkbox";
import RadioCheck from "@ui_kit/RadioCheck"; import RadioCheck from "@ui_kit/RadioCheck";

@ -6,7 +6,7 @@ import {
Typography, Typography,
useTheme useTheme
} from "@mui/material"; } from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store"; import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck"; import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon"; import RadioIcon from "@ui_kit/RadioIcon";

@ -1,7 +1,7 @@
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared"; import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
import { setCurrentQuizStep, useQuizViewStore } from "@stores/quizView/store"; import { setCurrentQuizStep, useQuizViewStore } from "@stores/quizView";
import { useCallback, useDebugValue, useMemo, useState } from "react"; import { useCallback, useDebugValue, useMemo, useState } from "react";
import { isResultQuestionEmpty } from "../../pages/ViewPublicationPage/tools/checkEmptyData"; import { isResultQuestionEmpty } from "../../components/ViewPublicationPage/tools/checkEmptyData";
import { useQuizData } from "./useQuizData"; import { useQuizData } from "./useQuizData";
import moment from "moment"; import moment from "moment";

@ -3,7 +3,7 @@ import { parseQuizData } from "@model/api/getQuizData";
import { QuizSettings } from "@model/settingsData"; import { QuizSettings } from "@model/settingsData";
import useSWR from "swr"; import useSWR from "swr";
import { useQuizId } from "../../contexts/QuizIdContext"; import { useQuizId } from "../../contexts/QuizIdContext";
import { replaceSpacesToEmptyLines } from "../../pages/ViewPublicationPage/tools/replaceSpacesToEmptyLines"; import { replaceSpacesToEmptyLines } from "../../components/ViewPublicationPage/tools/replaceSpacesToEmptyLines";
export function useQuizData() { export function useQuizData() {

0
src/utils/themes/dark.ts → lib/utils/themes/dark.ts Executable file → Normal file

@ -30,7 +30,6 @@
"dependencies": { "dependencies": {
"@emotion/react": "^11.10.5", "@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5", "@emotion/styled": "^11.10.5",
"@frontend/kitui": "^1.0.54",
"@mui/icons-material": "^5.10.14", "@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14", "@mui/material": "^5.10.14",
"@mui/x-date-pickers": "^6.16.1", "@mui/x-date-pickers": "^6.16.1",

@ -1,11 +1,11 @@
import { Box } from "@mui/material"; import { Box } from "@mui/material";
import { startTransition, useEffect, useState } from "react"; import { startTransition, useEffect, useState } from "react";
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import QuizAnswerer from "./QuizAnswerer"; import { QuizIdContext } from "@contexts/QuizIdContext";
import { QuizIdContext } from "./contexts/QuizIdContext"; import { RootContainerWidthContext } from "@contexts/RootContainerWidthContext";
import { RootContainerWidthContext } from "./contexts/RootContainerWidthContext"; import QuizAnswerer from "../lib/components/QuizAnswerer";
const defaultQuizId = "9ed8d0e9-d355-4fc1-8b89-4f962e3efc52"; // branching const defaultQuizId = "9ed8d0e9-d355-4fc1-8b89-4f962e3efc52"; // branching
//const defaultQuizId = "9ed8d0e9-d355-4fc1-8b89-4f962e3efc52"; //looooong header //const defaultQuizId = "9ed8d0e9-d355-4fc1-8b89-4f962e3efc52"; //looooong header
// const defaultQuizId = "a9d31460-132a-4479-a3f0-90241498b6f9"; // linear // const defaultQuizId = "a9d31460-132a-4479-a3f0-90241498b6f9"; // linear

@ -1,8 +1,8 @@
import { Box } from "@mui/material"; import { Box } from "@mui/material";
import { startTransition, useEffect, useRef, useState } from "react"; import { startTransition, useEffect, useRef, useState } from "react";
import QuizAnswerer from "./QuizAnswerer"; import { QuizIdContext } from "@contexts/QuizIdContext";
import { QuizIdContext } from "./contexts/QuizIdContext"; import { RootContainerWidthContext } from "@contexts/RootContainerWidthContext";
import { RootContainerWidthContext } from "./contexts/RootContainerWidthContext"; import QuizAnswerer from "../lib/components/QuizAnswerer";
interface Props { interface Props {

@ -21,26 +21,30 @@
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"paths": { "paths": {
"@ui_kit/*": [ "@ui_kit/*": [
"./src/ui_kit/*" "./lib/ui_kit/*"
], ],
"@icons/*": [ "@icons/*": [
"./src/assets/icons/*" "./lib/assets/icons/*"
], ],
"@stores/*": [ "@stores/*": [
"./src/stores/*" "./lib/stores/*"
], ],
"@api/*": [ "@api/*": [
"./src/api/*" "./lib/api/*"
], ],
"@model/*": [ "@model/*": [
"./src/model/*" "./lib/model/*"
], ],
"@utils/*": [ "@utils/*": [
"./src/utils/*" "./lib/utils/*"
],
"@contexts/*": [
"./lib/contexts/*"
] ]
} }
}, },
"include": [ "include": [
"lib",
"src" "src"
], ],
"exclude": [ "exclude": [

@ -3,12 +3,13 @@ import { resolve } from "path";
import { defineConfig } from "vite"; import { defineConfig } from "vite";
export const alias = { export const alias = {
"@ui_kit": resolve(__dirname, "./src/ui_kit"), "@ui_kit": resolve(__dirname, "./lib/ui_kit"),
"@icons": resolve(__dirname, "./src/assets/icons"), "@icons": resolve(__dirname, "./lib/assets/icons"),
"@stores": resolve(__dirname, "./src/stores"), "@stores": resolve(__dirname, "./lib/stores"),
"@api": resolve(__dirname, "./src/api"), "@api": resolve(__dirname, "./lib/api"),
"@model": resolve(__dirname, "./src/model"), "@model": resolve(__dirname, "./lib/model"),
"@utils": resolve(__dirname, "./src/utils"), "@utils": resolve(__dirname, "./lib/utils"),
"@contexts": resolve(__dirname, "./lib/contexts"),
}; };
// https://vitejs.dev/config/ // https://vitejs.dev/config/

@ -553,14 +553,6 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
"@frontend/kitui@^1.0.54":
version "1.0.62"
resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/21/packages/npm/@frontend/kitui/-/@frontend/kitui-1.0.62.tgz#212185a0a19a9b9948a85e9d4c71e002ad7f8b27"
integrity sha1-ISGFoKGam5lIqF6dTHHgAq1/iyc=
dependencies:
immer "^10.0.2"
reconnecting-eventsource "^1.6.2"
"@humanwhocodes/config-array@^0.11.13": "@humanwhocodes/config-array@^0.11.13":
version "0.11.14" version "0.11.14"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
@ -2303,7 +2295,7 @@ ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
immer@^10.0.2, immer@^10.0.3: immer@^10.0.3:
version "10.0.3" version "10.0.3"
resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.3.tgz#a8de42065e964aa3edf6afc282dfc7f7f34ae3c9" resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.3.tgz#a8de42065e964aa3edf6afc282dfc7f7f34ae3c9"
integrity sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A== integrity sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==
@ -3014,11 +3006,6 @@ react@^18.2.0:
dependencies: dependencies:
loose-envify "^1.1.0" loose-envify "^1.1.0"
reconnecting-eventsource@^1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/reconnecting-eventsource/-/reconnecting-eventsource-1.6.2.tgz#b7f5b03b1c76291f6fbcb0203004892a57ae253b"
integrity sha512-vHhoxVLbA2YcfljWMKEbgR1KVTgwIrnyh/bzVJc+gfQbGcUIToLL6jNhkUL4E+9FbnAcfUVNLIw2YCiliTg/4g==
regenerator-runtime@^0.14.0: regenerator-runtime@^0.14.0:
version "0.14.1" version "0.14.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"