aboutsummaryrefslogtreecommitdiff
path: root/src/models/questionSlice.ts
blob: 814caf9a5969e2fddf4e3f6d21f2a28d71de2d67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import {createSelector, createSlice, PayloadAction} from '@reduxjs/toolkit'
import type {RootState} from '@/store'
import {UpkQuestion} from "@/api";

const initialState: UpkQuestion[] = []

const questionSlice = createSlice({
    name: 'questions',
    initialState,
    reducers: {
        setQuestions(state, action: PayloadAction<UpkQuestion[]>) {
            return action.payload;
        },
        questionAdded(state, action: PayloadAction<UpkQuestion>) {
            state.push(action.payload);
        },
    }
})

export const {setAnswer, setQuestions, questionAdded, questionUpdated} = questionSlice.actions;
export default questionSlice.reducer

// export const selectAllQuestions = (state: RootState) => state.questions

export const selectQuestionById = (questionId: string) =>
    createSelector(
        (state: RootState) => state.questions,
        (questions) => {
            return questions.find(q => q.question_id === questionId);
        }
    );