sigit.io/src/store/auth/reducer.ts

69 lines
1.3 KiB
TypeScript
Raw Normal View History

import * as ActionTypes from '../actionTypes'
import { AuthDispatchTypes, AuthState } from './types'
const initialState: AuthState = {
loggedIn: false
}
const reducer = (
state = initialState,
action: AuthDispatchTypes
): AuthState | null => {
switch (action.type) {
case ActionTypes.SET_AUTH_STATE: {
const { loginMethod, keyPair, nsecBunkerPubkey, nsecBunkerRelays } = state
return {
loginMethod,
keyPair,
nsecBunkerPubkey,
nsecBunkerRelays,
...action.payload
}
}
case ActionTypes.UPDATE_LOGIN_METHOD: {
const { payload } = action
return {
...state,
loginMethod: payload
}
}
case ActionTypes.UPDATE_KEYPAIR: {
const { payload } = action
return {
...state,
keyPair: payload
}
}
case ActionTypes.UPDATE_NSECBUNKER_PUBKEY: {
const { payload } = action
return {
...state,
nsecBunkerPubkey: payload
}
}
case ActionTypes.UPDATE_NSECBUNKER_RELAYS: {
const { payload } = action
return {
...state,
nsecBunkerRelays: payload
}
}
case ActionTypes.RESTORE_STATE:
return action.payload.auth
default:
return state
}
}
export default reducer