функция удаления новизны за 3 сек
This commit is contained in:
parent
e910c708c6
commit
90dc7fef08
@ -27,7 +27,7 @@ export const deleteResult = async (resultId: number) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const obsolescenceResult = async (idResultArray: []) => {
|
export const obsolescenceResult = async (idResultArray: string[]) => {
|
||||||
try {
|
try {
|
||||||
const response = await makeRequest<unknown, unknown>({
|
const response = await makeRequest<unknown, unknown>({
|
||||||
url: process.env.REACT_APP_DOMAIN + `/squiz/result/seen`,
|
url: process.env.REACT_APP_DOMAIN + `/squiz/result/seen`,
|
||||||
|
@ -29,9 +29,10 @@ interface Props {
|
|||||||
name?: string;
|
name?: string;
|
||||||
phone?: string;
|
phone?: string;
|
||||||
email?: string;
|
email?: string;
|
||||||
|
onLossNew: (id:string) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CardAnswer: FC = ({
|
export const CardAnswer = ({
|
||||||
name,
|
name,
|
||||||
phone,
|
phone,
|
||||||
email,
|
email,
|
||||||
@ -39,24 +40,17 @@ export const CardAnswer: FC = ({
|
|||||||
idResult,
|
idResult,
|
||||||
timeResult,
|
timeResult,
|
||||||
dayResult,
|
dayResult,
|
||||||
|
onLossNew
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
const [isOpen, setIsOpen] = useState<boolean>(false);
|
const [isOpen, setIsOpen] = useState<boolean>(false);
|
||||||
const [openDelete, setOpenDelete] = useState<boolean>(false);
|
const [openDelete, setOpenDelete] = useState<boolean>(false);
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||||
|
|
||||||
const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult()
|
|
||||||
console.log(idResultArray)
|
|
||||||
return (
|
return (
|
||||||
<Box
|
<Box
|
||||||
onClick={()=> {
|
onClick={()=> {
|
||||||
addIdResult(idResult);
|
if (isNew) onLossNew(idResult)
|
||||||
setTimeout(() => {
|
|
||||||
obsolescenceResult(idResultArray);
|
|
||||||
// clearIdResultArray()
|
|
||||||
}, 3000);
|
|
||||||
|
|
||||||
console.log(idResultArray)
|
|
||||||
}}
|
}}
|
||||||
sx={{
|
sx={{
|
||||||
borderRadius: "12px",
|
borderRadius: "12px",
|
||||||
@ -121,7 +115,7 @@ export const CardAnswer: FC = ({
|
|||||||
</Box>
|
</Box>
|
||||||
<IconButton onClick={() => {
|
<IconButton onClick={() => {
|
||||||
setIsOpen(!isOpen);
|
setIsOpen(!isOpen);
|
||||||
getAnswerResultList(idResult)
|
getAnswerResultList(Number(idResult))
|
||||||
}}>
|
}}>
|
||||||
<ArrowDownIcon
|
<ArrowDownIcon
|
||||||
style={{
|
style={{
|
||||||
@ -266,7 +260,7 @@ export const CardAnswer: FC = ({
|
|||||||
variant="contained"
|
variant="contained"
|
||||||
sx={{ minWidth: "150px" }}
|
sx={{ minWidth: "150px" }}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
deleteResult(idResult);
|
deleteResult(Number(idResult));
|
||||||
setOpenDelete(false)
|
setOpenDelete(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
@ -18,53 +18,69 @@ import { CardAnswer } from "./CardAnswer";
|
|||||||
import { FilterIcon } from "./icons/FilterIcon";
|
import { FilterIcon } from "./icons/FilterIcon";
|
||||||
import { FilterModal } from "@ui_kit/Modal/FilterModal/FilterModal";
|
import { FilterModal } from "@ui_kit/Modal/FilterModal/FilterModal";
|
||||||
import { ExportContactsModal } from "@ui_kit/Modal/ExportContactsModal";
|
import { ExportContactsModal } from "@ui_kit/Modal/ExportContactsModal";
|
||||||
|
|
||||||
|
import { AnswerResultListEx, getResultsList, obsolescenceResult } from "@api/result";
|
||||||
|
import { useObsolescenceIdResult, useResultStore } from "@root/results/store";
|
||||||
|
import { setResults } from "@root/results/actions";
|
||||||
|
|
||||||
|
import { quizApi } from "@api/quiz";
|
||||||
|
import { setQuizes } from "@root/quizes/actions";
|
||||||
import { useCurrentQuiz, useQuizes } from "@root/quizes/hooks";
|
import { useCurrentQuiz, useQuizes } from "@root/quizes/hooks";
|
||||||
import { useQuizStore } from "@root/quizes/store";
|
import { useQuizStore } from "@root/quizes/store";
|
||||||
import {AnswerResultListEx, getResultsList} from "@api/result";
|
|
||||||
import {useObsolescenceIdResult, useResultStore} from "@root/results/store";
|
|
||||||
import { quizApi } from "@api/quiz";
|
|
||||||
import { setResults } from "@root/results/actions";
|
|
||||||
import { setQuizes } from "@root/quizes/actions";
|
|
||||||
import { questionApi } from "@api/question";
|
|
||||||
import { setQuestions } from "@root/questions/actions";
|
|
||||||
import { useQuestionsStore } from "@root/questions/store";
|
|
||||||
import {useUiTools} from "@root/uiTools/store";
|
|
||||||
|
|
||||||
const options = [
|
const options = [
|
||||||
{ label: "Муром (1)", value: "option1" },
|
{ label: "Муром (1)", value: "option1" },
|
||||||
{ label: "Москва (1)", value: "option2" },
|
{ label: "Москва (1)", value: "option2" },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
let lossDebouncer: null | ReturnType<typeof setTimeout> = 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)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const QuizAnswersPage: FC = () => {
|
export const QuizAnswersPage: FC = () => {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||||
const isMobile = useMediaQuery(theme.breakpoints.down(600));
|
const isMobile = useMediaQuery(theme.breakpoints.down(600));
|
||||||
|
|
||||||
const [filterModalOpen, setFilterModalOpen] = useState<boolean>(false);
|
const [filterModalOpen, setFilterModalOpen] = useState<boolean>(false);
|
||||||
const [exportContactsModalOpen, setExportContactsModalOpen] =
|
const [exportContactsModalOpen, setExportContactsModalOpen] = useState<boolean>(false);
|
||||||
useState<boolean>(false);
|
|
||||||
const [filterNew, setFilterNew] = useState<string>("За всё время")
|
const [filterNew, setFilterNew] = useState<string>("За всё время")
|
||||||
const { editQuizId } = useQuizStore();
|
|
||||||
const { questions } = useQuestionsStore();
|
|
||||||
const quizList = useQuizStore();
|
const quizList = useQuizStore();
|
||||||
const quiz = useCurrentQuiz();
|
const quiz = useCurrentQuiz();
|
||||||
|
const { editQuizId } = useQuizStore();
|
||||||
const { results } = useResultStore();
|
const { results } = useResultStore();
|
||||||
const { total_count } = useResultStore();
|
const { total_count } = useResultStore();
|
||||||
const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult()
|
// const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const quizes = await quizApi.getList();
|
if (editQuizId !== null) {
|
||||||
setQuizes(quizes);
|
const quizes = await quizApi.getList();
|
||||||
|
setQuizes(quizes);
|
||||||
|
|
||||||
const questions = await questionApi.getList({ quiz_id: editQuizId });
|
const result = await getResultsList(editQuizId);
|
||||||
setQuestions(questions);
|
console.log("Это данные с сервера", result);
|
||||||
|
setResults(result);
|
||||||
|
|
||||||
const result = await getResultsList(quizList.editQuizId);
|
const resAnswer = await AnswerResultListEx(editQuizId)
|
||||||
console.log("Это данные с сервера", result);
|
|
||||||
setResults(result);
|
|
||||||
|
|
||||||
const resAnswer = await AnswerResultListEx(quizList.editQuizId)
|
|
||||||
console.log("щтветы респондентов на экспорт в юз эффекте", resAnswer)
|
console.log("щтветы респондентов на экспорт в юз эффекте", resAnswer)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
getData();
|
getData();
|
||||||
}, []);
|
}, []);
|
||||||
@ -104,7 +120,6 @@ export const QuizAnswersPage: FC = () => {
|
|||||||
maxWidth="lg"
|
maxWidth="lg"
|
||||||
>
|
>
|
||||||
<Typography
|
<Typography
|
||||||
onClick={()=>clearIdResultArray()}
|
|
||||||
sx={{ fontSize: "36px", fontWeight: "500", mb: "50px", mt: "60px" }}
|
sx={{ fontSize: "36px", fontWeight: "500", mb: "50px", mt: "60px" }}
|
||||||
>
|
>
|
||||||
{quiz.name}
|
{quiz.name}
|
||||||
@ -141,9 +156,9 @@ export const QuizAnswersPage: FC = () => {
|
|||||||
<Box sx={{ display: "flex", alignItems: "center", gap: "10px" }}>
|
<Box sx={{ display: "flex", alignItems: "center", gap: "10px" }}>
|
||||||
<IconButton
|
<IconButton
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
//setExportContactsModalOpen(true)
|
//setExportContactsModalOpen(true)
|
||||||
const resAnswer = AnswerResultListEx(quizList.editQuizId)
|
const resAnswer = AnswerResultListEx(quizList.editQuizId)
|
||||||
console.log("ответы респондентов на экспорт по клику", resAnswer)
|
console.log("ответы респондентов на экспорт по клику", resAnswer)
|
||||||
}}
|
}}
|
||||||
sx={{
|
sx={{
|
||||||
width: "44px",
|
width: "44px",
|
||||||
@ -204,7 +219,7 @@ export const QuizAnswersPage: FC = () => {
|
|||||||
"Последние 30 дней",
|
"Последние 30 дней",
|
||||||
"Этот месяц",
|
"Этот месяц",
|
||||||
]}
|
]}
|
||||||
onChange={(e)=> setFilterNew(e.value)}
|
onChange={(e) => setFilterNew(e.value)}
|
||||||
/>
|
/>
|
||||||
<Select
|
<Select
|
||||||
sx={{ maxWidth: "223px", width: "100%" }}
|
sx={{ maxWidth: "223px", width: "100%" }}
|
||||||
@ -278,6 +293,7 @@ export const QuizAnswersPage: FC = () => {
|
|||||||
idResult={result.id}
|
idResult={result.id}
|
||||||
dayResult={dayResult}
|
dayResult={dayResult}
|
||||||
timeResult={timeResult}
|
timeResult={timeResult}
|
||||||
|
onLossNew={onLossNew}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
Loading…
Reference in New Issue
Block a user