diff --git a/src/widgets/shared/RunningStripe.tsx b/src/widgets/shared/RunningStripe.tsx index b1b31df..7b526c4 100644 --- a/src/widgets/shared/RunningStripe.tsx +++ b/src/widgets/shared/RunningStripe.tsx @@ -9,6 +9,7 @@ export default function RunningStripe({ sx = [] }: Props) { return ( { + const sessions = JSON.parse(localStorage.getItem("sessions") || "{}"); + + if ( + typeof sessions[quizId] === "number" + && Date.now() - sessions[quizId] < 86400000 + ) { + return true; + } + + return false; + }, [quizId]); +} diff --git a/src/widgets/side/QuizSideButton.tsx b/src/widgets/side/QuizSideButton.tsx index e110c9e..7f563ec 100644 --- a/src/widgets/side/QuizSideButton.tsx +++ b/src/widgets/side/QuizSideButton.tsx @@ -4,6 +4,7 @@ import { useState } from "react"; import { createPortal } from "react-dom"; import QuizDialog from "../shared/QuizDialog"; import RunningStripe from "../shared/RunningStripe"; +import { useQuizCompletionStatus } from "../shared/useQuizCompletionStatus"; const PADDING = 10; @@ -21,6 +22,7 @@ interface Props { export default function QuizSideButton({ quizId, position, buttonBackgroundColor, dimensions, fullScreen = false }: Props) { const [isQuizShown, setIsQuizShown] = useState(false); const isMobile = useMediaQuery("(max-width: 600px)"); + const isQuizCompleted = useQuizCompletionStatus(quizId); return createPortal( @@ -78,7 +80,7 @@ export default function QuizSideButton({ quizId, position, buttonBackgroundColor }, ]} > - + {!isQuizCompleted && } Пройти квиз ,