функция удаления новизны за 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 {
|
||||
const response = await makeRequest<unknown, unknown>({
|
||||
url: process.env.REACT_APP_DOMAIN + `/squiz/result/seen`,
|
||||
|
@ -29,9 +29,10 @@ interface Props {
|
||||
name?: string;
|
||||
phone?: string;
|
||||
email?: string;
|
||||
onLossNew: (id:string) => void
|
||||
}
|
||||
|
||||
export const CardAnswer: FC = ({
|
||||
export const CardAnswer = ({
|
||||
name,
|
||||
phone,
|
||||
email,
|
||||
@ -39,24 +40,17 @@ export const CardAnswer: FC = ({
|
||||
idResult,
|
||||
timeResult,
|
||||
dayResult,
|
||||
onLossNew
|
||||
}: Props) => {
|
||||
const [isOpen, setIsOpen] = useState<boolean>(false);
|
||||
const [openDelete, setOpenDelete] = useState<boolean>(false);
|
||||
const theme = useTheme();
|
||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||
|
||||
const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult()
|
||||
console.log(idResultArray)
|
||||
return (
|
||||
<Box
|
||||
onClick={()=> {
|
||||
addIdResult(idResult);
|
||||
setTimeout(() => {
|
||||
obsolescenceResult(idResultArray);
|
||||
// clearIdResultArray()
|
||||
}, 3000);
|
||||
|
||||
console.log(idResultArray)
|
||||
if (isNew) onLossNew(idResult)
|
||||
}}
|
||||
sx={{
|
||||
borderRadius: "12px",
|
||||
@ -121,7 +115,7 @@ export const CardAnswer: FC = ({
|
||||
</Box>
|
||||
<IconButton onClick={() => {
|
||||
setIsOpen(!isOpen);
|
||||
getAnswerResultList(idResult)
|
||||
getAnswerResultList(Number(idResult))
|
||||
}}>
|
||||
<ArrowDownIcon
|
||||
style={{
|
||||
@ -266,7 +260,7 @@ export const CardAnswer: FC = ({
|
||||
variant="contained"
|
||||
sx={{ minWidth: "150px" }}
|
||||
onClick={() => {
|
||||
deleteResult(idResult);
|
||||
deleteResult(Number(idResult));
|
||||
setOpenDelete(false)
|
||||
}}
|
||||
>
|
||||
|
@ -18,53 +18,69 @@ 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 { 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 { 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 = [
|
||||
{ label: "Муром (1)", value: "option1" },
|
||||
{ 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 = () => {
|
||||
const theme = useTheme();
|
||||
const isTablet = useMediaQuery(theme.breakpoints.down(1000));
|
||||
const isMobile = useMediaQuery(theme.breakpoints.down(600));
|
||||
|
||||
const [filterModalOpen, setFilterModalOpen] = useState<boolean>(false);
|
||||
const [exportContactsModalOpen, setExportContactsModalOpen] =
|
||||
useState<boolean>(false);
|
||||
const [exportContactsModalOpen, setExportContactsModalOpen] = useState<boolean>(false);
|
||||
const [filterNew, setFilterNew] = useState<string>("За всё время")
|
||||
const { editQuizId } = useQuizStore();
|
||||
const { questions } = useQuestionsStore();
|
||||
|
||||
const quizList = useQuizStore();
|
||||
const quiz = useCurrentQuiz();
|
||||
const { editQuizId } = useQuizStore();
|
||||
const { results } = useResultStore();
|
||||
const { total_count } = useResultStore();
|
||||
const {idResultArray, addIdResult, clearIdResultArray} = useObsolescenceIdResult()
|
||||
// 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 getResultsList(quizList.editQuizId);
|
||||
const result = await getResultsList(editQuizId);
|
||||
console.log("Это данные с сервера", result);
|
||||
setResults(result);
|
||||
|
||||
const resAnswer = await AnswerResultListEx(quizList.editQuizId)
|
||||
const resAnswer = await AnswerResultListEx(editQuizId)
|
||||
console.log("щтветы респондентов на экспорт в юз эффекте", resAnswer)
|
||||
}
|
||||
};
|
||||
getData();
|
||||
}, []);
|
||||
@ -104,7 +120,6 @@ export const QuizAnswersPage: FC = () => {
|
||||
maxWidth="lg"
|
||||
>
|
||||
<Typography
|
||||
onClick={()=>clearIdResultArray()}
|
||||
sx={{ fontSize: "36px", fontWeight: "500", mb: "50px", mt: "60px" }}
|
||||
>
|
||||
{quiz.name}
|
||||
@ -204,7 +219,7 @@ export const QuizAnswersPage: FC = () => {
|
||||
"Последние 30 дней",
|
||||
"Этот месяц",
|
||||
]}
|
||||
onChange={(e)=> setFilterNew(e.value)}
|
||||
onChange={(e) => setFilterNew(e.value)}
|
||||
/>
|
||||
<Select
|
||||
sx={{ maxWidth: "223px", width: "100%" }}
|
||||
@ -278,6 +293,7 @@ export const QuizAnswersPage: FC = () => {
|
||||
idResult={result.id}
|
||||
dayResult={dayResult}
|
||||
timeResult={timeResult}
|
||||
onLossNew={onLossNew}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
|
Loading…
Reference in New Issue
Block a user