From 84d63b93024a6eab8db2a4fc148bebb5b1f086e1 Mon Sep 17 00:00:00 2001 From: Tamara Date: Fri, 29 Mar 2024 16:36:38 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D1=83=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B8=D1=87=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B8=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/ViewPublicationPage/ContactForm.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/components/ViewPublicationPage/ContactForm.tsx b/lib/components/ViewPublicationPage/ContactForm.tsx index 40a0aff..fa8cfba 100644 --- a/lib/components/ViewPublicationPage/ContactForm.tsx +++ b/lib/components/ViewPublicationPage/ContactForm.tsx @@ -68,7 +68,7 @@ export const ContactForm = ({currentQuestion, onShowResult}: Props) => { }); if (!resultQuestion) throw new Error("Result question not found"); - + console.log("yfcnhjqrb", settings.cfg.resultInfo.showResultForm) const inputHC = async () => { const FC = settings.cfg.formContact.fields || settings.cfg.formContact; const body = {} as any; @@ -141,8 +141,10 @@ export const ContactForm = ({currentQuestion, onShowResult}: Props) => { } catch (e) { enqueueSnackbar("повторите попытку позже"); } + if(settings.cfg.resultInfo.showResultForm === "after"){ + onShowResult(); + } - onShowResult(); } setFire(false); From 611b0282d30ec0f77e4e35dd9fea932be8034477 Mon Sep 17 00:00:00 2001 From: Nastya Date: Sat, 30 Mar 2024 12:52:02 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BC=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=88=D0=B8=D0=BB=D1=8C=D0=B4=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B8=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D1=80=D1=8B=20href?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/ViewPublicationPage/ContactForm.tsx | 4 +++- lib/components/ViewPublicationPage/ResultForm.tsx | 6 ++++-- .../ViewPublicationPage/StartPageViewPublication/index.tsx | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/components/ViewPublicationPage/ContactForm.tsx b/lib/components/ViewPublicationPage/ContactForm.tsx index fa8cfba..75c9a3b 100644 --- a/lib/components/ViewPublicationPage/ContactForm.tsx +++ b/lib/components/ViewPublicationPage/ContactForm.tsx @@ -324,7 +324,9 @@ export const ContactForm = ({currentQuestion, onShowResult}: Props) => { { const theme = useTheme(); const isMobile = useRootContainerSize() < 650; const isTablet = useRootContainerSize() < 1000; - const {settings, show_badge} = useQuizData(); + const {settings, show_badge, quizId} = useQuizData(); const spec = settings.cfg.spec console.log(quizThemes[settings.cfg.theme].isLight) @@ -190,7 +190,9 @@ export const ResultForm = ({resultQuestion}: ResultFormProps) => { { const theme = useTheme(); - const { settings, show_badge } = useQuizData(); + const { settings, show_badge, quizId } = useQuizData(); const { isMobileDevice } = useUADevice(); const isMobile = useRootContainerSize() < 700; const isTablet = useRootContainerSize() < 800; @@ -330,7 +330,9 @@ export const StartPageViewPublication = () => { Date: Mon, 1 Apr 2024 03:45:31 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B1=D1=80=D0=B0=D1=83=D0=B7=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=20=D0=B8=20=D0=BE=D1=81=20=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/api/quizRelase.ts | 25 ++++++++++++++++++++----- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/api/quizRelase.ts b/lib/api/quizRelase.ts index 16c5543..f6d8150 100644 --- a/lib/api/quizRelase.ts +++ b/lib/api/quizRelase.ts @@ -6,18 +6,33 @@ import device from "current-device"; import type { AxiosError } from "axios"; import { replaceSpacesToEmptyLines } from "../components/ViewPublicationPage/tools/replaceSpacesToEmptyLines"; import { QuizSettings } from "@model/settingsData"; - +import * as Bowser from "bowser"; let SESSIONS = ""; const domain = location.hostname === "hbpn.link" ? "" : "https://s.hbpn.link"; const md = new MobileDetect(window.navigator.userAgent); - const userAgent = navigator.userAgent -let OSDevice = md.os() -if (OSDevice === null) {OSDevice = userAgent} +//операционная система +let OSDevice:string | undefined +if (userAgent.toLowerCase().includes("linux")) {OSDevice = "Linux"} +if (userAgent.toLowerCase().includes("windows")) {OSDevice = "Windows"} +if (/iPad|iPhone|iPod/.test(userAgent)){OSDevice = "IOS"} +if (userAgent.toLowerCase().includes("macintosh")) {OSDevice = "Mac OS"} +if (OSDevice === undefined) {OSDevice = userAgent} + +//браузер +let browserUser:string +if(Bowser.name === "Chrome") { + browserUser = "Chrome" +} else if(Bowser.name === "Firefox") { + browserUser = "Firefox" +}else if(Bowser.name === "Safari") { + browserUser = "Safari" +}else{browserUser = userAgent} const DeviceType = device.type + let Device = md.mobile() if (Device === null) {Device = userAgent} @@ -30,7 +45,7 @@ export const publicationMakeRequest = ({ url, body }: any) => { "DeviceType" : DeviceType, "Device" : Device, "OS": OSDevice, - "Browser" : userAgent + "Browser" : browserUser }, method: "POST", }); diff --git a/package.json b/package.json index 72c29b7..d27df76 100755 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "zustand": "^4.3.8" }, "dependencies": { + "bowser": "1.9.4", "country-flag-emoji-polyfill": "^0.1.8", "current-device": "^0.10.2", "hex-rgb": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index 44316e8..68f63c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1337,6 +1337,11 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bowser@1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" + integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" From ea1350e162811be3861c7f6e2d7d6152ac0f0599 Mon Sep 17 00:00:00 2001 From: Nastya Date: Mon, 1 Apr 2024 08:54:12 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=20=D0=B8=D1=85=20=D0=BD=D0=B5=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B0=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/QuizAnswerer.tsx | 14 ++++-- .../ViewPublicationPage.tsx | 48 ++++++++++--------- lib/contexts/QuizDataContext.ts | 12 +++-- 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/lib/components/QuizAnswerer.tsx b/lib/components/QuizAnswerer.tsx index 376c87d..4ef9619 100644 --- a/lib/components/QuizAnswerer.tsx +++ b/lib/components/QuizAnswerer.tsx @@ -13,19 +13,22 @@ import { ApologyPage } from "./ViewPublicationPage/ApologyPage"; import ViewPublicationPage from "./ViewPublicationPage/ViewPublicationPage"; import { RootContainerWidthContext } from "@contexts/RootContainerWidthContext"; import { startTransition, useEffect, useLayoutEffect, useRef, useState } from "react"; +import { getQuizData } from "@/api/quizRelase"; +import LoadingSkeleton from "@/ui_kit/LoadingSkeleton"; moment.locale("ru"); const localeText = ruRU.components.MuiLocalizationProvider.defaultProps.localeText; type Props = { - quizSettings: QuizSettings; + quizSettings?: QuizSettings | {}; quizId: string; preview?: boolean; }; -export default function QuizAnswerer({ quizSettings, quizId, preview = false }: Props) { +export default function QuizAnswerer({ quizSettings = {}, quizId, preview = false }: Props) { const [rootContainerWidth, setRootContainerWidth] = useState(() => window.innerWidth); + const [quizData, setQuizData] = useState(quizSettings); const rootContainerRef = useRef(null); useLayoutEffect(() => { @@ -33,6 +36,10 @@ export default function QuizAnswerer({ quizSettings, quizId, preview = false }: }, []); useEffect(() => { + if (Object.values(quizSettings).length === 0) { + const data = (async()=>await getQuizData(quizId))() + setQuizData(data) + } const handleWindowResize = () => { startTransition(() => { if (rootContainerRef.current) setRootContainerWidth(rootContainerRef.current.clientWidth); @@ -45,9 +52,10 @@ export default function QuizAnswerer({ quizSettings, quizId, preview = false }: }; }, []); + if (Object.values(quizData).length === 0) return ; return ( - + ans.questionId === currentQuestion.id) - + useEffect( function setFaviconAndTitle() { - const link = document.querySelector('link[rel="icon"]'); - if (link && settings.cfg.startpage.favIcon) { - link.setAttribute("href", settings.cfg.startpage.favIcon); + if (settings.cfg !== undefined) { + const link = document.querySelector('link[rel="icon"]'); + if (link && settings.cfg.startpage.favIcon) { + link.setAttribute("href", settings.cfg.startpage.favIcon); + } + + document.title = settings.name; } - document.title = settings.name; }, [settings] ); @@ -64,24 +68,24 @@ export default function ViewPublicationPage() { } + prevButton={} nextButton={ { - if (!isAnswer) { - try { - await sendAnswer({ - questionId: currentQuestion.id, - body: "", - qid: quizId, - }); - } catch (e) { - enqueueSnackbar("ответ не был засчитан"); - } + isNextButtonEnabled={isNextButtonEnabled} + moveToNextQuestion={async () => { + if (!isAnswer) { + try { + await sendAnswer({ + questionId: currentQuestion.id, + body: "", + qid: quizId, + }); + } catch (e) { + enqueueSnackbar("ответ не был засчитан"); } - moveToNextQuestion() - }} + } + moveToNextQuestion() + }} />} /> ); diff --git a/lib/contexts/QuizDataContext.ts b/lib/contexts/QuizDataContext.ts index c87f447..03b47a8 100644 --- a/lib/contexts/QuizDataContext.ts +++ b/lib/contexts/QuizDataContext.ts @@ -1,13 +1,19 @@ import { QuizSettings } from "@model/settingsData"; import { createContext, useContext } from "react"; -type QuizData = QuizSettings & { quizId: string; preview: boolean; }; +type QuizSettingsFull = QuizSettings | {}; +type QuizData = QuizSettingsFull & { quizId: string; preview: boolean; }; +type QuizDataClean = QuizSettings & { quizId: string; preview: boolean; }; export const QuizDataContext = createContext(null); -export const useQuizData = () => { +export const useQuizData = ():QuizDataClean => { const quizData = useContext(QuizDataContext); - if (quizData === null) throw new Error("QuizData context is null"); + if ( + quizData === null || + !("settings" in quizData) || + !("recentlyCompleted" in quizData) + ) throw new Error("QuizData context is null"); return quizData; }; From 48504c01ca49967434854a58d7f9f637791e1ca9 Mon Sep 17 00:00:00 2001 From: Nastya Date: Mon, 1 Apr 2024 09:08:20 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=BD=D0=B5=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/api/quizRelase.ts | 9 ++++++--- lib/components/ViewPublicationPage/ContactForm.tsx | 3 ++- .../ViewPublicationPage/ViewPublicationPage.tsx | 3 ++- lib/components/ViewPublicationPage/questions/Date.tsx | 3 ++- lib/components/ViewPublicationPage/questions/Emoji.tsx | 4 +++- lib/components/ViewPublicationPage/questions/File.tsx | 9 ++++++--- lib/components/ViewPublicationPage/questions/Images.tsx | 4 +++- lib/components/ViewPublicationPage/questions/Number.tsx | 3 ++- lib/components/ViewPublicationPage/questions/Rating.tsx | 3 ++- lib/components/ViewPublicationPage/questions/Select.tsx | 4 +++- lib/components/ViewPublicationPage/questions/Text.tsx | 3 ++- lib/components/ViewPublicationPage/questions/Variant.tsx | 5 ++++- lib/components/ViewPublicationPage/questions/Varimg.tsx | 4 +++- 13 files changed, 40 insertions(+), 17 deletions(-) diff --git a/lib/api/quizRelase.ts b/lib/api/quizRelase.ts index 16c5543..1a25311 100644 --- a/lib/api/quizRelase.ts +++ b/lib/api/quizRelase.ts @@ -99,7 +99,8 @@ export async function getQuizData(quizId: string) { return res; } -export function sendAnswer({ questionId, body, qid }: any) { +export function sendAnswer({ questionId, body, qid, preview }: any) { + if (preview) return const formData = new FormData(); const answers = [ @@ -120,7 +121,8 @@ export function sendAnswer({ questionId, body, qid }: any) { } //body ={file, filename} -export function sendFile({ questionId, body, qid }: any) { +export function sendFile({ questionId, body, qid, preview }: any) { + if (preview) return const formData = new FormData(); const answers: any = [ @@ -143,7 +145,8 @@ export function sendFile({ questionId, body, qid }: any) { } //форма контактов -export function sendFC({ questionId, body, qid }: any) { +export function sendFC({ questionId, body, qid, preview }: any) { + if (preview) return const formData = new FormData(); // const keysBody = Object.keys(body) diff --git a/lib/components/ViewPublicationPage/ContactForm.tsx b/lib/components/ViewPublicationPage/ContactForm.tsx index 75c9a3b..4a8b0fd 100644 --- a/lib/components/ViewPublicationPage/ContactForm.tsx +++ b/lib/components/ViewPublicationPage/ContactForm.tsx @@ -38,7 +38,7 @@ type Props = { export const ContactForm = ({currentQuestion, onShowResult}: Props) => { const theme = useTheme(); - const {settings, questions, quizId, show_badge} = useQuizData(); + const {settings, questions, quizId, show_badge, preview} = useQuizData(); const [ready, setReady] = useState(false); const [name, setName] = useState(""); @@ -84,6 +84,7 @@ export const ContactForm = ({currentQuestion, onShowResult}: Props) => { questionId: currentQuestion.id, body: body, qid: quizId, + preview }); const sessions = JSON.parse(localStorage.getItem("sessions") || "{}"); diff --git a/lib/components/ViewPublicationPage/ViewPublicationPage.tsx b/lib/components/ViewPublicationPage/ViewPublicationPage.tsx index 53b4f15..3fb397d 100644 --- a/lib/components/ViewPublicationPage/ViewPublicationPage.tsx +++ b/lib/components/ViewPublicationPage/ViewPublicationPage.tsx @@ -17,7 +17,7 @@ import { sendAnswer } from "@api/quizRelase"; import LoadingSkeleton from "@/ui_kit/LoadingSkeleton"; export default function ViewPublicationPage() { - const { settings, recentlyCompleted, quizId } = useQuizData(); + const { settings, recentlyCompleted, quizId, preview } = useQuizData(); const { answers } = useQuizViewStore(); let currentQuizStep = useQuizViewStore((state) => state.currentQuizStep); const isMobileMini = useRootContainerSize() < 382; @@ -79,6 +79,7 @@ export default function ViewPublicationPage() { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); diff --git a/lib/components/ViewPublicationPage/questions/Date.tsx b/lib/components/ViewPublicationPage/questions/Date.tsx index 7a392b2..f2d26be 100644 --- a/lib/components/ViewPublicationPage/questions/Date.tsx +++ b/lib/components/ViewPublicationPage/questions/Date.tsx @@ -19,7 +19,7 @@ type DateProps = { export const Date = ({ currentQuestion }: DateProps) => { const theme = useTheme(); - const { settings, quizId } = useQuizData(); + const { settings, quizId, preview } = useQuizData(); const { answers } = useQuizViewStore(); const answer = answers.find( ({ questionId }) => questionId === currentQuestion.id @@ -65,6 +65,7 @@ export const Date = ({ currentQuestion }: DateProps) => { questionId: currentQuestion.id, body: moment(date).format("YYYY.MM.DD"), qid: quizId, + preview }); updateAnswer(currentQuestion.id, date, 0); diff --git a/lib/components/ViewPublicationPage/questions/Emoji.tsx b/lib/components/ViewPublicationPage/questions/Emoji.tsx index d573269..fc48036 100644 --- a/lib/components/ViewPublicationPage/questions/Emoji.tsx +++ b/lib/components/ViewPublicationPage/questions/Emoji.tsx @@ -30,7 +30,7 @@ type EmojiProps = { export const Emoji = ({ currentQuestion }: EmojiProps) => { const theme = useTheme(); - const { quizId, settings } = useQuizData(); + const { quizId, settings, preview } = useQuizData(); const { answers } = useQuizViewStore(); const { answer } = answers.find(({ questionId }) => questionId === currentQuestion.id) ?? {}; @@ -103,6 +103,7 @@ export const Emoji = ({ currentQuestion }: EmojiProps) => { " " + currentQuestion.content.variants[index].answer, qid: quizId, + preview }); updateAnswer( @@ -121,6 +122,7 @@ export const Emoji = ({ currentQuestion }: EmojiProps) => { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); diff --git a/lib/components/ViewPublicationPage/questions/File.tsx b/lib/components/ViewPublicationPage/questions/File.tsx index 6919daf..6a8ec79 100644 --- a/lib/components/ViewPublicationPage/questions/File.tsx +++ b/lib/components/ViewPublicationPage/questions/File.tsx @@ -30,7 +30,7 @@ type FileProps = { export const File = ({ currentQuestion }: FileProps) => { const theme = useTheme(); const { answers } = useQuizViewStore(); - const { quizId } = useQuizData(); + const { quizId, preview } = useQuizData(); const [modalWarningType, setModalWarningType] = useState(null); const [isSending, setIsSending] = useState(false); const [isDropzoneHighlighted, setIsDropzoneHighlighted] = useState(false); @@ -59,7 +59,8 @@ export const File = ({ currentQuestion }: FileProps) => { questionId: currentQuestion.id, body: { file: file, - name: file.name + name: file.name, + preview }, qid: quizId, }); @@ -67,8 +68,9 @@ export const File = ({ currentQuestion }: FileProps) => { await sendAnswer({ questionId: currentQuestion.id, - body: `https://storage.yandexcloud.net/squizanswer/${quizId}/${currentQuestion.id}/${data.data.fileIDMap[currentQuestion.id]}`, + body: `https://storage.yandexcloud.net/squizanswer/${quizId}/${currentQuestion.id}/${data!.data.fileIDMap[currentQuestion.id]}`, qid: quizId, + preview }); updateAnswer(currentQuestion.id, `${file.name}|${URL.createObjectURL(file)}`, 0); @@ -137,6 +139,7 @@ export const File = ({ currentQuestion }: FileProps) => { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } console.log(answer); diff --git a/lib/components/ViewPublicationPage/questions/Images.tsx b/lib/components/ViewPublicationPage/questions/Images.tsx index f17f122..fe93c8d 100644 --- a/lib/components/ViewPublicationPage/questions/Images.tsx +++ b/lib/components/ViewPublicationPage/questions/Images.tsx @@ -24,7 +24,7 @@ type ImagesProps = { }; export const Images = ({ currentQuestion }: ImagesProps) => { - const { quizId } = useQuizData(); + const { quizId, preview } = useQuizData(); const { answers } = useQuizViewStore(); const theme = useTheme(); const answer = answers.find( @@ -96,6 +96,7 @@ export const Images = ({ currentQuestion }: ImagesProps) => { questionId: currentQuestion.id, body: `${currentQuestion.content.variants[index].answer} `, qid: quizId, + preview }); updateAnswer( currentQuestion.id, @@ -113,6 +114,7 @@ export const Images = ({ currentQuestion }: ImagesProps) => { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); diff --git a/lib/components/ViewPublicationPage/questions/Number.tsx b/lib/components/ViewPublicationPage/questions/Number.tsx index f7e323c..5b3dc56 100644 --- a/lib/components/ViewPublicationPage/questions/Number.tsx +++ b/lib/components/ViewPublicationPage/questions/Number.tsx @@ -22,7 +22,7 @@ type NumberProps = { }; export const Number = ({ currentQuestion }: NumberProps) => { - const { settings, quizId } = useQuizData(); + const { settings, quizId, preview } = useQuizData(); const [inputValue, setInputValue] = useState("0"); const [minRange, setMinRange] = useState("0"); const [maxRange, setMaxRange] = useState("100000000000"); @@ -53,6 +53,7 @@ export const Number = ({ currentQuestion }: NumberProps) => { questionId: currentQuestion.id, body: value, qid: quizId, + preview }); if (!noUpdate) { diff --git a/lib/components/ViewPublicationPage/questions/Rating.tsx b/lib/components/ViewPublicationPage/questions/Rating.tsx index c6ae697..ef13d53 100644 --- a/lib/components/ViewPublicationPage/questions/Rating.tsx +++ b/lib/components/ViewPublicationPage/questions/Rating.tsx @@ -58,7 +58,7 @@ const buttonRatingForm = [ ]; export const Rating = ({ currentQuestion }: RatingProps) => { - const { quizId } = useQuizData(); + const { quizId, preview } = useQuizData(); const { answers } = useQuizViewStore(); const theme = useTheme(); const isMobile = useRootContainerSize() < 650; @@ -102,6 +102,7 @@ export const Rating = ({ currentQuestion }: RatingProps) => { questionId: currentQuestion.id, body: String(value) + " из " + currentQuestion.content.steps, qid: quizId, + preview }); updateAnswer(currentQuestion.id, String(value), 0); diff --git a/lib/components/ViewPublicationPage/questions/Select.tsx b/lib/components/ViewPublicationPage/questions/Select.tsx index baca02a..22b1ecb 100644 --- a/lib/components/ViewPublicationPage/questions/Select.tsx +++ b/lib/components/ViewPublicationPage/questions/Select.tsx @@ -17,7 +17,7 @@ type SelectProps = { export const Select = ({ currentQuestion }: SelectProps) => { const theme = useTheme(); - const { quizId, settings } = useQuizData(); + const { quizId, settings, preview } = useQuizData(); const [isSending, setIsSending] = useState(false); const { answers } = useQuizViewStore(); const { answer } = @@ -65,6 +65,7 @@ export const Select = ({ currentQuestion }: SelectProps) => { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); @@ -79,6 +80,7 @@ export const Select = ({ currentQuestion }: SelectProps) => { currentQuestion.content.variants[Number(value)].answer ), qid: quizId, + preview }); updateAnswer(currentQuestion.id, String(value), 0); diff --git a/lib/components/ViewPublicationPage/questions/Text.tsx b/lib/components/ViewPublicationPage/questions/Text.tsx index 0dda3ba..3405ea8 100644 --- a/lib/components/ViewPublicationPage/questions/Text.tsx +++ b/lib/components/ViewPublicationPage/questions/Text.tsx @@ -55,7 +55,7 @@ const Orientation = [ export const Text = ({ currentQuestion, stepNumber }: TextProps) => { const theme = useTheme(); - const { settings } = useQuizData(); + const { settings, preview } = useQuizData(); const spec = settings.cfg.spec; const { quizId } = useQuizData(); const { answers } = useQuizViewStore(); @@ -71,6 +71,7 @@ export const Text = ({ currentQuestion, stepNumber }: TextProps) => { questionId: currentQuestion.id, body: text, qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан"); diff --git a/lib/components/ViewPublicationPage/questions/Variant.tsx b/lib/components/ViewPublicationPage/questions/Variant.tsx index 6108f2b..43fd6df 100644 --- a/lib/components/ViewPublicationPage/questions/Variant.tsx +++ b/lib/components/ViewPublicationPage/questions/Variant.tsx @@ -161,7 +161,7 @@ const VariantItem = ({ setIsSending: (a: boolean) => void; }) => { const theme = useTheme(); - const { settings, quizId } = useQuizData(); + const { settings, quizId, preview } = useQuizData(); return ( item !== variantId) : [...currentAnswer, variantId], qid: quizId, + preview }); updateAnswer( @@ -267,6 +268,7 @@ const VariantItem = ({ questionId: currentQuestion.id, body: currentQuestion.content.variants[index].answer, qid: quizId, + preview }); updateAnswer( @@ -287,6 +289,7 @@ const VariantItem = ({ questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { console.log(e); diff --git a/lib/components/ViewPublicationPage/questions/Varimg.tsx b/lib/components/ViewPublicationPage/questions/Varimg.tsx index 99e2c65..2b6b523 100644 --- a/lib/components/ViewPublicationPage/questions/Varimg.tsx +++ b/lib/components/ViewPublicationPage/questions/Varimg.tsx @@ -25,7 +25,7 @@ type VarimgProps = { }; export const Varimg = ({ currentQuestion }: VarimgProps) => { - const { settings, quizId } = useQuizData(); + const { settings, quizId, preview } = useQuizData(); const { answers } = useQuizViewStore(); const theme = useTheme(); const isMobile = useRootContainerSize() < 650; @@ -130,6 +130,7 @@ export const Varimg = ({ currentQuestion }: VarimgProps) => { questionId: currentQuestion.id, body: `${currentQuestion.content.variants[index].answer} `, qid: quizId, + preview }); updateAnswer( @@ -147,6 +148,7 @@ export const Varimg = ({ currentQuestion }: VarimgProps) => { questionId: currentQuestion.id, body: "", qid: quizId, + preview }); } catch (e) { enqueueSnackbar("ответ не был засчитан");