Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 363x 1131x 1131x 363x 318x 9x 12x 24x 363x 363x | import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { LoginState } from "client/types/reduxTypes";
import { UserGroup } from "shared/types/models/user";
import { loadSession } from "client/utils/localStorage";
import { EventLogItem } from "shared/types/models/eventLog";
import {
PostFinalizeLogin,
PostVerifyKompassiLoginPayload,
} from "shared/types/api/login";
const initialState = (): LoginState => {
const persistedState = loadSession();
return {
username: "",
loggedIn: false,
jwt: persistedState?.login?.jwt ?? "",
userGroup: UserGroup.USER,
serial: "",
eventLogItems: [],
kompassiUsernameAccepted: false,
kompassiId: 0,
email: "",
emailNotificationPermitAsked: false,
};
};
const loginSlice = createSlice({
name: "login",
initialState,
reducers: {
submitLoginAsync(state, action: PayloadAction<LoginState>): LoginState {
return {
...state,
username: action.payload.username,
loggedIn: action.payload.loggedIn,
jwt: action.payload.jwt,
userGroup: action.payload.userGroup,
serial: action.payload.serial,
eventLogItems: action.payload.eventLogItems,
kompassiUsernameAccepted: action.payload.kompassiUsernameAccepted,
kompassiId: action.payload.kompassiId,
email: action.payload.email,
emailNotificationPermitAsked:
action.payload.emailNotificationPermitAsked,
};
},
submitUpdateEventLogItemsAsync(
state,
action: PayloadAction<EventLogItem[]>,
): LoginState {
return {
...state,
eventLogItems: action.payload,
};
},
submitVerifyKompassiLoginAsync(
state,
action: PayloadAction<PostVerifyKompassiLoginPayload>,
): LoginState {
return {
...state,
username: action.payload.username,
kompassiUsernameAccepted: action.payload.kompassiUsernameAccepted,
jwt: action.payload.jwt,
};
},
submitFinalizeLoginAsync(
state,
action: PayloadAction<PostFinalizeLogin>,
): LoginState {
return {
...state,
email: action.payload.email,
emailNotificationPermitAsked:
action.payload.emailNotificationPermitAsked,
jwt: action.payload.jwt,
};
},
},
});
export const {
submitLoginAsync,
submitUpdateEventLogItemsAsync,
submitVerifyKompassiLoginAsync,
submitFinalizeLoginAsync,
} = loginSlice.actions;
export const loginReducer = loginSlice.reducer;
|