import { Quiz } from "@model/quiz/quiz"; import { useNavigate, useParams } from "react-router-dom"; import { useQuizStore } from "./store"; import { useCallback } from "react"; import { updateQuizWithFnOptimistic } from "./actions"; export function useQuizArray(): Quiz[] { const quizes = useQuizStore(state => state.quizById); return Object.values(quizes).flatMap(quiz => quiz ? [quiz] : []); } export function useCurrentQuiz() { const navigate = useNavigate(); const quizId = parseInt(useParams().quizId ?? ""); const quiz = useQuizStore(state => state.quizById[quizId]); const updateQuiz = useCallback((updateFn: (quiz: Quiz) => void) => { updateQuizWithFnOptimistic(quizId, updateFn, navigate); }, [navigate, quizId]); return { quiz, updateQuiz }; }