diff options
| author | Max Nanis | 2025-06-03 20:06:44 +0700 |
|---|---|---|
| committer | Max Nanis | 2025-06-03 20:06:44 +0700 |
| commit | 62456f41288eb0f03c5092d36610d566f275c8b5 (patch) | |
| tree | 20b0170545f6b6c1ae1af233aca795d1d4aac2ef /src/models/questionSlice.ts | |
| parent | bf027779eb4c839420406e3547f22f5665ec08ab (diff) | |
| download | panel-ui-62456f41288eb0f03c5092d36610d566f275c8b5.tar.gz panel-ui-62456f41288eb0f03c5092d36610d566f275c8b5.zip | |
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
Diffstat (limited to 'src/models/questionSlice.ts')
| -rw-r--r-- | src/models/questionSlice.ts | 22 |
1 files changed, 9 insertions, 13 deletions
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<UpkQuestion>) { 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 |
