import { create } from "zustand"; import { produce } from "immer"; import { QuizSettings, QuizSettingsConfig } from "@model/settingsData"; import { AnyTypedQuizQuestion } from ".."; export type QuizStore = QuizSettings & { quizId: string; preview: boolean; changeFaviconAndTitle: boolean; quizStep: number; }; export const useQuizStore = create(() => ({ settings: {} as QuizSettingsConfig, questions: [], quizId: "", preview: false, changeFaviconAndTitle: false, cnt: 0, recentlyCompleted: false, show_badge: false, quizStep: 0, })); export const setQuizData = (data: QuizSettings) => { console.log("zusstand"); console.log(data); useQuizStore.setState((state: QuizStore) => ({ ...state, ...data })); }; export const addQuestions = (newQuestions: AnyTypedQuizQuestion[]) => useQuizStore.setState( produce((state: QuizStore) => { state.questions.push(...newQuestions); }) ); export const addquizid = (id: string) => useQuizStore.setState( produce((state: QuizStore) => { state.quizId = id; }) ); export const changeQuizStep = (step: number) => useQuizStore.setState( produce((state: QuizStore) => { //Дополнительная проверка что мы не вышли на более чем +1 вопрос if (state.questions.length - step < 2) state.quizStep += step; }) );