Стартовая страница анализирует брать ли для превью запрос или переданные параметры
This commit is contained in:
parent
a4179a46f4
commit
7a10673d8a
@ -1,8 +1,8 @@
|
|||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import { getQuizData } from "./quizRelase";
|
import { getQuizData } from "./quizRelase";
|
||||||
|
|
||||||
export function useQuizData(quizId: string) {
|
export function useQuizData(quizId: string, preview: boolean = false) {
|
||||||
return useSWR(["quizData", quizId], (params) => getQuizData(params[1]), {
|
return useSWR(preview ? null : ["quizData", quizId], (params) => getQuizData(params[1]), {
|
||||||
revalidateOnFocus: false,
|
revalidateOnFocus: false,
|
||||||
revalidateOnReconnect: false,
|
revalidateOnReconnect: false,
|
||||||
shouldRetryOnError: false,
|
shouldRetryOnError: false,
|
||||||
|
@ -43,7 +43,7 @@ function QuizAnswererInner({
|
|||||||
const [quizViewStore] = useState(createQuizViewStore);
|
const [quizViewStore] = useState(createQuizViewStore);
|
||||||
const [rootContainerWidth, setRootContainerWidth] = useState<number>(() => window.innerWidth);
|
const [rootContainerWidth, setRootContainerWidth] = useState<number>(() => window.innerWidth);
|
||||||
const rootContainerRef = useRef<HTMLDivElement>(null);
|
const rootContainerRef = useRef<HTMLDivElement>(null);
|
||||||
const { data, error, isLoading } = useQuizData(quizId);
|
const { data, error, isLoading } = useQuizData(quizId, preview);
|
||||||
const vkMetrics = useVkMetricsGoals(quizSettings?.settings.cfg.vkMetricsNumber);
|
const vkMetrics = useVkMetricsGoals(quizSettings?.settings.cfg.vkMetricsNumber);
|
||||||
const yandexMetrics = useYandexMetricsGoals(quizSettings?.settings.cfg.yandexMetricsNumber);
|
const yandexMetrics = useYandexMetricsGoals(quizSettings?.settings.cfg.yandexMetricsNumber);
|
||||||
|
|
||||||
@ -74,10 +74,10 @@ function QuizAnswererInner({
|
|||||||
|
|
||||||
if (isLoading) return <LoadingSkeleton />;
|
if (isLoading) return <LoadingSkeleton />;
|
||||||
if (error) return <ApologyPage error={error} />;
|
if (error) return <ApologyPage error={error} />;
|
||||||
if (!data) return <LoadingSkeleton />;
|
// if (!data) return <LoadingSkeleton />;
|
||||||
|
|
||||||
quizSettings ??= data;
|
quizSettings ??= data;
|
||||||
if (!quizSettings) throw new Error("Quiz data is null");
|
if (!quizSettings) return <ApologyPage error={new Error("Quiz data is null")} />;
|
||||||
|
|
||||||
if (quizSettings.questions.length === 0) return <ApologyPage error={new Error("No questions found")} />;
|
if (quizSettings.questions.length === 0) return <ApologyPage error={new Error("No questions found")} />;
|
||||||
if (!quizId) return <ApologyPage error={new Error("No quiz id")} />;
|
if (!quizId) return <ApologyPage error={new Error("No quiz id")} />;
|
||||||
|
@ -10,6 +10,7 @@ export const ApologyPage = ({ error }: Props) => {
|
|||||||
if (error.message === "No questions found") message = "Нет созданных вопросов";
|
if (error.message === "No questions found") message = "Нет созданных вопросов";
|
||||||
if (error.message === "Quiz already completed") message = "Вы уже прошли этот опрос";
|
if (error.message === "Quiz already completed") message = "Вы уже прошли этот опрос";
|
||||||
if (error.message === "No quiz id") message = "Отсутствует id квиза";
|
if (error.message === "No quiz id") message = "Отсутствует id квиза";
|
||||||
|
if (error.message === "Quiz data is null") message = "Не были переданы параметры квиза";
|
||||||
if (error.response?.data === "Invalid request data") message = "Такого квиза не существует";
|
if (error.response?.data === "Invalid request data") message = "Такого квиза не существует";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -34,8 +34,8 @@ export default function ViewPublicationPage() {
|
|||||||
showResultAfterContactForm,
|
showResultAfterContactForm,
|
||||||
setQuestion,
|
setQuestion,
|
||||||
} = useQuestionFlowControl();
|
} = useQuestionFlowControl();
|
||||||
useYandexMetrics(settings?.cfg?.yandexMetricsNumber);
|
// useYandexMetrics(settings?.cfg?.yandexMetricsNumber);
|
||||||
useVKMetrics(settings?.cfg?.vkMetricsNumber);
|
// useVKMetrics(settings?.cfg?.vkMetricsNumber);
|
||||||
|
|
||||||
useEffect(
|
useEffect(
|
||||||
function setFaviconAndTitle() {
|
function setFaviconAndTitle() {
|
||||||
|
Loading…
Reference in New Issue
Block a user