import { Box, Button, IconButton, Typography, Select as MuiSelect, MenuItem, useTheme, useMediaQuery, Skeleton, FormControl, Select, } from "@mui/material"; import moment from "moment"; import HeaderFull from "@ui_kit/Header/HeaderFull"; import SectionWrapper from "@ui_kit/SectionWrapper"; import { FC, useEffect, useState } from "react"; import { FileExportIcon } from "./icons/FileExporIcon"; import { UpdateIcon } from "./icons/UpdateIcon"; // import { Select } from "../../pages/Questions/Select"; import { CheckboxSelect } from "../../ui_kit/CheckboxSelect"; import { CardAnswer } from "./CardAnswer"; import { FilterIcon } from "./icons/FilterIcon"; import { FilterModal } from "@ui_kit/Modal/FilterModal/FilterModal"; import { ExportContactsModal } from "@ui_kit/Modal/ExportContactsModal"; import { resultApi } from "@api/result"; import { useObsolescenceIdResult, useResultStore } from "@root/results/store"; import { answerResultListExport, setResults } from "@root/results/actions"; import { quizApi } from "@api/quiz"; import { setQuizes } from "@root/quizes/actions"; import { useCurrentQuiz, useQuizes } from "@root/quizes/hooks"; import { useQuizStore } from "@root/quizes/store"; import { questionApi } from "@api/question"; import { setQuestions } from "@root/questions/actions"; import ArrowDown from "@icons/ArrowDownIcon"; const options = [ { label: "Муром (1)", value: "option1" }, { label: "Москва (1)", value: "option2" }, ]; const itemsTime = [ "За все время", "Сегодня", "Вчера", "Последние 7 дней", "Последние 30 дней", "Этот месяц", ]; // let lossDebouncer: null | ReturnType = null; // let lossId: string[] = [] as string[]; // // const onLossNew = (id: string) => { // //Если в массиве ещё нет такого id - добавляем // if (!lossId.includes(id)) lossId.push(id); // //Если таймер есть - сбрасываем // if (typeof lossDebouncer === "number") clearTimeout(lossDebouncer); // //Назначем новый таймер // lossDebouncer = setTimeout(async () => { // //стреляем на лишение новизны // await obsolescenceResult(lossId); // //сбрасываем массив // lossId = []; // }, 3000); // }; const resetTime = (date: number) => { console.log(date); let a = Math.round(date / 86400) * 86400 - 97200; console.log(a); console.log(moment.unix(a).format("dddd, MMMM Do YYYY, h:mm:ss ")); return moment.unix(a).format("dddd, MMMM Do YYYY, h:mm:ss "); }; export const QuizAnswersPage: FC = () => { const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.down(1000)); const isMobile = useMediaQuery(theme.breakpoints.down(600)); const [filterModalOpen, setFilterModalOpen] = useState(false); const [exportContactsModalOpen, setExportContactsModalOpen] = useState(false); const [filterNew, setFilterNew] = useState("Все заявки"); const [filterDate, setFilterDate] = useState("За все время"); const quizList = useQuizStore(); const quiz = useCurrentQuiz(); const { editQuizId } = useQuizStore(); const { results } = useResultStore(); const { total_count } = useResultStore(); // const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult() useEffect(() => { const getData = async () => { if (editQuizId !== null) { const quizes = await quizApi.getList(); setQuizes(quizes); const questions = await questionApi.getList({ quiz_id: editQuizId }); setQuestions(questions); const result = await resultApi.getList(editQuizId); setResults(result); } }; getData(); }, []); const DateDefinition = (result: string) => { //определяем когда был получен результат - вчера, сегодня или число и месяц let restime = new Date(result); let timeCompleting = Date.parse(String(result)); const timeNow = Date.now(); let dayResult; if (timeNow - timeCompleting < 86400000) { dayResult = "Сегодня"; } if (172800000 > timeNow - timeCompleting > 86400000) { dayResult = "Вчера"; } else { dayResult = restime.toLocaleDateString(); } return dayResult; }; const TimeDefinition = (result: string) => { //достаём время let timeResult = new Date(result).toLocaleTimeString().slice(0, -3); return timeResult; }; if (quiz === undefined) return ( ); return ( {quiz.name} Ответы на квиз ({total_count}) { // answerResultListExport(editQuizId) setExportContactsModalOpen(true); }} sx={{ width: "44px", height: "44px", borderRadius: "8px", border: "1px solid #7E2AEA", }} > { const result = await resultApi.getList(editQuizId); console.log(result); setResults(result); }} > {isTablet && ( setFilterModalOpen(true)} sx={{ background: "#fff", width: "44px", height: "44px", borderRadius: "8px", border: "1px solid #7E2AEA", }} > )} {!isTablet && ( {/* */} )} {!isTablet && ( № заявки Дата Контакты )} {results.map((result) => { const dataResult = new Date(result.created_at); let dayResult = DateDefinition(result.created_at); let timeResult = TimeDefinition(result.created_at); return ( ); })} setFilterModalOpen(false)} filterNew={filterNew} filterDate={filterDate} setFilterNew={setFilterNew} setFilterDate={setFilterDate} /> setExportContactsModalOpen(false)} /> ); };