Merge branch 'dev' into 'main'

Dev

See merge request frontend/squiz!113
This commit is contained in:
Nastya 2024-01-05 21:10:01 +00:00
commit b8b80a93d3
9 changed files with 24 additions and 25 deletions

@ -10,6 +10,7 @@ import {
import {
collapseAllQuestions,
createUntypedQuestion,
setQuestions,
} from "@root/questions/actions";
import {
decrementCurrentStep,
@ -25,6 +26,8 @@ import { QuestionSwitchWindowTool } from "./QuestionSwitchWindowTool";
import { useQuestionsStore } from "@root/questions/store";
import { updateEditSomeQuestion } from "@root/uiTools/actions";
import { useUiTools } from "@root/uiTools/store";
import { questionApi } from "@api/question";
import { useNavigate } from "react-router-dom";
interface Props {
openBranchingPage: boolean;
@ -39,6 +42,8 @@ export default function QuestionsPage({
const { openedModalSettingsId } = useUiTools();
const isMobile = useMediaQuery(theme.breakpoints.down(660));
const quiz = useCurrentQuiz();
const navigate = useNavigate()
const { questions } = useQuestionsStore();
useLayoutEffect(() => {
updateEditSomeQuestion();
}, []);
@ -46,6 +51,8 @@ export default function QuestionsPage({
const ref = useRef();
if (!quiz) return null;
return (
<>
<Box

@ -18,17 +18,20 @@ import { ResultCard, checkEmptyData } from "./cards/ResultCard";
import { EmailSettingsCard } from "./cards/EmailSettingsCard";
import { useCurrentQuiz } from "@root/quizes/hooks";
import { useQuestionsStore } from "@root/questions/store";
import { createResult, deleteQuestion } from "@root/questions/actions";
import { createResult, deleteQuestion, setQuestions } from "@root/questions/actions";
import { QuizQuestionResult } from "@model/questionTypes/result";
import IconPlus from "@icons/IconPlus";
import Info from "@icons/Info";
import Plus from "@icons/Plus";
import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { useNavigate } from "react-router-dom";
import { questionApi } from "@api/question";
export const ResultSettings = () => {
const { questions } = useQuestionsStore();
const quiz = useCurrentQuiz();
const navigate = useNavigate()
const results = useQuestionsStore().questions.filter(
(q): q is QuizQuestionResult => q.type === "result",
);
@ -56,20 +59,6 @@ export const ResultSettings = () => {
[results],
);
useEffect(() => {
//Всегда должен существовать хоть 1 резулт - "line"
if (
!questions?.find( (q) => (q.type === "result" && q.content.rule.parentId === "line"))
) {
createResult(quiz?.backendId, "line");
console.log("Я не нашёл линейный резулт и собираюсь создать новый");
}
return () => {
if (!isReadyToLeaveRef.current && window.location.pathname !== "/edit") {
setOpenNotificationModal(true);
}
};
}, []);
const cnsl = results.filter((q) => q.content.usage);

@ -1,5 +1,5 @@
import { useState, useEffect } from "react";
import { Box, useTheme } from "@mui/material";
import { Box, useMediaQuery, useTheme } from "@mui/material";
import { useCurrentQuiz } from "@root/quizes/hooks";
import { getQuestionByContentId } from "@root/questions/actions";
@ -46,6 +46,8 @@ const QUESTIONS_MAP: any = {
export const Question = ({ questions }: QuestionProps) => {
const quiz = useCurrentQuiz();
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down(650));
const [currentQuestion, setCurrentQuestion] =
useState<AnyTypedQuizQuestion>();
const [showContactForm, setShowContactForm] = useState<boolean>(false);
@ -67,13 +69,13 @@ export const Question = ({ questions }: QuestionProps) => {
const QuestionComponent =
QUESTIONS_MAP[currentQuestion.type as Exclude<QuestionType, "nonselected">];
const theme = useTheme();
return (
<Box
sx={{
backgroundColor: theme.palette.background.default,
height: isMobile ? undefined : "100vh",
}}
height="100vh"
>
{!showContactForm && !showResultForm && (
<Box

@ -72,7 +72,7 @@ export const ResultForm = ({
flexDirection: "column",
alignItems: "center",
justifyContent: "space-between",
height: "100vh",
height: isMobile ? undefined : "100vh",
width: "100vw",
pt: "28px",
}}

@ -505,7 +505,7 @@ function QuizPreviewLayoutByType({
padding: "16px",
display: "flex",
flexDirection: "column",
justifyContent: "center",
justifyContent: "space-between",
alignItems: "center",
height: "100%",
"&::-webkit-scrollbar": { width: 0 },

@ -12,7 +12,7 @@ export type UiTools = {
deleteNodeId: string | null;
showConfirmLeaveModal: boolean;
someWorkBackend: boolean;
nextStep: number
nextStep: number;
};
export type WhyCantCreatePublic = {
@ -31,7 +31,7 @@ const initialState: UiTools = {
deleteNodeId: null,
showConfirmLeaveModal: false,
someWorkBackend: false,
nextStep: -1
nextStep: -1,
};
export const useUiTools = create<UiTools>()(

@ -173,7 +173,8 @@ export const CropModal: FC<Props> = ({
height: isMobile ? "80vh" : undefined,
display: isMobile ? "flex" : undefined,
flexDirection: isMobile ? "column" : undefined,
justifyContent: isMobile ? "space-evenly" : undefined,
justifyContent: isMobile ? "flex-start" : undefined,
overflow: isMobile ? "auto" : undefined,
}}
>
<Box

@ -38,7 +38,7 @@ export default function Sidebar({ changePage, disableCollapse }: SidebarProps) {
navigate("/edit");
}
updateNextStep(index)
updateNextStep(index);
changePage(index);
};