import {Module} from "@/interfaces"; import {Exam, UserSolution} from "@/interfaces/exam"; import {Stat} from "@/interfaces/user"; import {create} from "zustand"; export interface ExamState { exams: Exam[]; userSolutions: UserSolution[]; showSolutions: boolean; selectedModules: Module[]; setUserSolutions: (userSolutions: UserSolution[]) => void; setExams: (exams: Exam[]) => void; setShowSolutions: (showSolutions: boolean) => void; setSelectedModules: (modules: Module[]) => void; reset: () => void; } export const initialState = { exams: [], userSolutions: [], showSolutions: false, selectedModules: [], }; const useExamStore = create((set) => ({ ...initialState, setUserSolutions: (userSolutions: UserSolution[]) => set(() => ({userSolutions})), setExams: (exams: Exam[]) => set(() => ({exams})), setShowSolutions: (showSolutions: boolean) => set(() => ({showSolutions})), setSelectedModules: (modules: Module[]) => set(() => ({selectedModules: modules})), reset: () => set(() => initialState), })); export default useExamStore;