frontAnswerer/lib/stores/useQuizStore.ts
2025-06-15 12:58:15 +03:00

48 lines
1.2 KiB
TypeScript

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<QuizStore>(() => ({
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) => {
state.quizStep += step;
})
);