aboutsummaryrefslogtreecommitdiff
path: root/src/models/userMarketplaceAnswerSlice.ts
blob: 7cfe95baabf37b5dfbaa04002ec125a0cd3cc291 (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
import {createSlice, PayloadAction} from "@reduxjs/toolkit";
import {MarketProfileKnowledge} from "@/api";
import type {RootState} from '@/store'

const initialState: MarketProfileKnowledge[] = []


const userMarketplaceAnswerSlice = createSlice({
    name: 'userMarketplaceAnswers',
    initialState,
    reducers: {
        setMarketplaceAnswers(state, action: PayloadAction<MarketProfileKnowledge[]>) {
            // TODO: Does this need question_id + source uniqueness?
            const existingIds = new Set(state.map(q => q.question_id));
            const newQuestions = action.payload.filter(q => !existingIds.has(q.question_id));
            state.push(...newQuestions);
        }
    }
})

export const {
    setMarketplaceAnswers,
} = userMarketplaceAnswerSlice.actions;

export default userMarketplaceAnswerSlice.reducer;

export const selectUserMarketplaceAnswers = (state: RootState) => state.userMarketplaceAnswers