frontPanel/src/stores/quizView.ts

36 lines
750 B
TypeScript
Raw Normal View History

2023-11-30 17:39:57 +00:00
import { create } from "zustand";
import { devtools } from "zustand/middleware";
type Answer = {
questionId: string;
2023-11-30 17:39:57 +00:00
answer: string;
};
interface QuizViewStore {
answers: Answer[];
}
export const useQuizViewStore = create<QuizViewStore>()(
devtools(
(set, get) => ({
answers: [],
}),
{
name: "quizView",
}
)
);
export const updateAnswer = (questionId: string, answer: string) => {
2023-11-30 17:39:57 +00:00
const answers = [...useQuizViewStore.getState().answers];
const answerIndex = answers.findIndex((answer) => questionId === answer.questionId);
2023-11-30 17:39:57 +00:00
if (answerIndex < 0) {
answers.push({ questionId, answer });
2023-11-30 17:39:57 +00:00
} else {
answers[answerIndex] = { questionId, answer };
2023-11-30 17:39:57 +00:00
}
useQuizViewStore.setState({ answers });
};