import { create } from "zustand"; import { devtools } from "zustand/middleware"; interface QuizPreviewStore { isPreviewShown: boolean; currentQuestionIndex: number; } export const useQuizPreviewStore = create()( devtools( (set, get) => ({ isPreviewShown: false, currentQuestionIndex: 0, }), { name: "quizPreview", enabled: process.env.NODE_ENV !== "production", } ) ); export const showQuizPreview = () => useQuizPreviewStore.setState({ isPreviewShown: true }); export const hideQuizPreview = () => useQuizPreviewStore.setState({ isPreviewShown: false }); export const toggleQuizPreview = () => useQuizPreviewStore.setState( state => ({ isPreviewShown: !state.isPreviewShown }) ); export const setCurrentQuestionIndex = (step: number) => useQuizPreviewStore.setState( state => ({ currentQuestionIndex:state.currentQuestionIndex = step }) ); export const incrementCurrentQuestionIndex = (maxStep: number) => useQuizPreviewStore.setState( state => ({ currentQuestionIndex: Math.min(state.currentQuestionIndex + 1, maxStep) }) ); export const decrementCurrentQuestionIndex = () => useQuizPreviewStore.setState( state => ({ currentQuestionIndex: Math.max(state.currentQuestionIndex - 1, 0) }) );