blob: 9cb0e9bf412eef10087c60183c0431f677f461bb (
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
import {createSlice, PayloadAction} from '@reduxjs/toolkit'
import {UserProfileKnowledge} from "@/api";
import type {RootState} from "@/store.ts";
const initialState: UserProfileKnowledge[] = []
const userUpkAnswerSlice = createSlice({
name: 'upkAnswers',
initialState,
reducers: {
setUpkAnswers(state, action: PayloadAction<UserProfileKnowledge[]>) {
const existingIds = new Set(state.map(q => q.property_id));
const newQuestions = action.payload.filter(q => !existingIds.has(q.property_id));
state.push(...newQuestions);
}
}
})
export const {
setUpkAnswers,
} = userUpkAnswerSlice.actions;
export default userUpkAnswerSlice.reducer;
export const selectUserUpkAnswers = (state: RootState) => state.userUpkAnswers
// educational_attainment
export const selectUserAge = (state: RootState): number | null => {
let upk_a = state.userUpkAnswers.find(a => a.property_label === "age_in_years")
if (upk_a) {
return Number(upk_a.answer[0].value)
} else {
return null
}
}
export const selectUserZip = (state: RootState): string | null => {
let upk_a = state.userUpkAnswers.find(a => a.property_label === "home_postal_code")
if (upk_a) {
return upk_a.answer[0].value
} else {
return null
}
}
export const selectUserGender = (state: RootState): string | null => {
let upk_a = state.userUpkAnswers.find(a => a.property_label === "gender")
if (upk_a) {
return upk_a.answer[0].label
} else {
return null
}
}
|