From 62456f41288eb0f03c5092d36610d566f275c8b5 Mon Sep 17 00:00:00 2001 From: Max Nanis Date: Tue, 3 Jun 2025 20:06:44 +0700 Subject: selectQuestionById, useMemo selector (MultiChoice.choices makes a lot of lookup). Setting up the Questions view to do Pagination to tab through available questions and view one at a time --- src/models/questionSlice.ts | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'src/models/questionSlice.ts') diff --git a/src/models/questionSlice.ts b/src/models/questionSlice.ts index e3674be..814caf9 100644 --- a/src/models/questionSlice.ts +++ b/src/models/questionSlice.ts @@ -1,4 +1,4 @@ -import {createSlice, PayloadAction} from '@reduxjs/toolkit' +import {createSelector, createSlice, PayloadAction} from '@reduxjs/toolkit' import type {RootState} from '@/store' import {UpkQuestion} from "@/api"; @@ -14,22 +14,18 @@ const questionSlice = createSlice({ questionAdded(state, action: PayloadAction) { state.push(action.payload); }, - setAnswer(state, action: PayloadAction<{ questionId: string, val: string }>) { - const {questionId, val} = action.payload - console.log(questionId, val) - const existingQuestion = state.find(q => q.questionId === action.payload.questionId) - if (existingQuestion) { - // existingQuestion.addAnswer(action.payload.val) - // existingQuestion.error_msg = "yess" - } - } } }) -// Export the generated reducer function export const {setAnswer, setQuestions, questionAdded, questionUpdated} = questionSlice.actions; export default questionSlice.reducer -export const selectAllQuestions = (state: RootState) => state.questions +// export const selectAllQuestions = (state: RootState) => state.questions -export const selectQuestionById = (state: RootState, questionId: string) => state.questions.find(q => q.id === questionId) \ No newline at end of file +export const selectQuestionById = (questionId: string) => + createSelector( + (state: RootState) => state.questions, + (questions) => { + return questions.find(q => q.question_id === questionId); + } + ); \ No newline at end of file -- cgit v1.2.3