frontAnswerer/lib/contexts/QuizDataContext.ts

20 lines
664 B
TypeScript
Raw Normal View History

import { QuizSettings } from "@model/settingsData";
import { createContext, useContext } from "react";
type QuizSettingsFull = QuizSettings | {};
type QuizData = QuizSettingsFull & { quizId: string; preview: boolean; };
type QuizDataClean = QuizSettings & { quizId: string; preview: boolean; };
export const QuizDataContext = createContext<QuizData | null>(null);
export const useQuizData = ():QuizDataClean => {
const quizData = useContext(QuizDataContext);
if (
quizData === null ||
!("settings" in quizData) ||
!("recentlyCompleted" in quizData)
) throw new Error("QuizData context is null");
return quizData;
};