diff --git a/lib/components/ViewPublicationPage/PointSystemResultList.tsx b/lib/components/ViewPublicationPage/PointSystemResultList.tsx
index 63e4aeb..1bd6bdd 100644
--- a/lib/components/ViewPublicationPage/PointSystemResultList.tsx
+++ b/lib/components/ViewPublicationPage/PointSystemResultList.tsx
@@ -6,6 +6,23 @@ import { AnyTypedQuizQuestion, QuizQuestionVariant } from "@/index";
import { useTranslation } from "react-i18next";
import { useQuizStore } from "@/stores/useQuizStore";
+const dinocrutch = window.location.pathname === "/413b9e24-996a-400e-9076-c158f64b9bd7";
+
+// Функция для определения вопроса "спасибо"
+const isThankYouQuestion = (question: QuizQuestionVariant): boolean => {
+ // Проверяем что у вопроса только один вариант ответа
+ if (question.content.variants.length !== 1) {
+ return false;
+ }
+
+ // Проверяем что текст варианта полностью состоит из слова "спасибо"
+ const variant = question.content.variants[0];
+ const answerText = variant.answer.toLowerCase().trim();
+
+ // Проверяем точное совпадение со словом "спасибо"
+ return answerText === "спасибо";
+};
+
export const PointSystemResultList = () => {
const theme = useTheme();
const { questions } = useQuizStore();
@@ -16,7 +33,12 @@ export const PointSystemResultList = () => {
(q: AnyTypedQuizQuestion): q is QuizQuestionVariant => q.type === "variant"
);
- return questionsWothoutResult.map((currentQuestion) => {
+ // Фильтруем вопросы "спасибо" только для указанного квиза
+ const filteredQuestions = dinocrutch
+ ? questionsWothoutResult.filter((q) => !isThankYouQuestion(q))
+ : questionsWothoutResult;
+
+ return filteredQuestions.map((currentQuestion, index) => {
let answerIndex = 0;
let currentVariants = currentQuestion.content.variants;
@@ -53,7 +75,7 @@ export const PointSystemResultList = () => {
color: theme.palette.grey[500],
}}
>
- {currentQuestion.page + 1}.
+ {index + 1}.
{
+ // Проверяем что у вопроса только один вариант ответа
+ if (question.content.variants.length !== 1) {
+ return false;
+ }
+
+ // Проверяем что текст варианта полностью состоит из слова "спасибо"
+ const variant = question.content.variants[0];
+ const answerText = variant.answer.toLowerCase().trim();
+
+ // Проверяем точное совпадение со словом "спасибо"
+ return answerText === "спасибо";
+};
+
export const ResultForm = ({ resultQuestion }: ResultFormProps) => {
const theme = useTheme();
const isMobile = useRootContainerSize() < 650;
@@ -39,6 +55,22 @@ export const ResultForm = ({ resultQuestion }: ResultFormProps) => {
const yandexMetrics = useYandexMetricsGoals(settings.cfg.yandexMetricsNumber);
const { t } = useTranslation();
+ // Проверяем, является ли это квизом с костылем
+ const dinocrutch = window.location.pathname === "/413b9e24-996a-400e-9076-c158f64b9bd7";
+
+ // Вычисляем общее количество вопросов с учетом фильтрации
+ const totalQuestions = useMemo(() => {
+ if (dinocrutch) {
+ // Для квиза с костылем: исключаем вопросы "спасибо" и вопросы типа "result"
+ const variantQuestions = questions.filter((e) => e.type === "variant") as QuizQuestionVariant[];
+ const filteredQuestions = variantQuestions.filter((q) => !isThankYouQuestion(q));
+ return filteredQuestions.length;
+ }
+
+ // Для обычных квизов: исключаем только вопросы типа "result"
+ return questions.filter((e) => e.type !== "result").length;
+ }, [questions, dinocrutch]);
+
useEffect(() => {
vkMetrics.resultIdShown(resultQuestion.id);
yandexMetrics.resultIdShown(resultQuestion.id);
@@ -260,7 +292,7 @@ export const ResultForm = ({ resultQuestion }: ResultFormProps) => {
fontWeight: 600,
}}
>
- {pointsSum} {t("of")} {questions.filter((e) => e.type != "result").length}
+ {pointsSum} {t("of")} {totalQuestions}