X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/e4b54c3b5d99c99553e319ead28c3aa8dcd6eecc..4a055bfc98a5fc05cc311e2de1ab2213eec5497e:/src/store/auth/auth-reducer.ts diff --git a/src/store/auth/auth-reducer.ts b/src/store/auth/auth-reducer.ts index 8f234dad..a8e4340a 100644 --- a/src/store/auth/auth-reducer.ts +++ b/src/store/auth/auth-reducer.ts @@ -10,7 +10,7 @@ import { SshKeyResource } from '~/models/ssh-key'; export interface AuthState { user?: User; apiToken?: string; - sshKeys?: SshKeyResource[]; + sshKeys: SshKeyResource[]; } const initialState: AuthState = { @@ -19,13 +19,13 @@ const initialState: AuthState = { sshKeys: [] }; -export const authReducer = (services: ServiceRepository) => (state: AuthState = initialState, action: AuthAction) => { +export const authReducer = (services: ServiceRepository) => (state = initialState, action: AuthAction) => { return authActions.match(action, { SAVE_API_TOKEN: (token: string) => { return {...state, apiToken: token}; }, INIT: ({ user, token }) => { - return { user, apiToken: token }; + return { ...state, user, apiToken: token }; }, LOGIN: () => { return state; @@ -40,7 +40,10 @@ export const authReducer = (services: ServiceRepository) => (state: AuthState = return {...state, sshKeys}; }, ADD_SSH_KEY: (sshKey: SshKeyResource) => { - return { ...state, sshKeys: state.sshKeys!.concat(sshKey) }; + return { ...state, sshKeys: state.sshKeys.concat(sshKey) }; + }, + REMOVE_SSH_KEY: (uuid: string) => { + return { ...state, sshKeys: state.sshKeys.filter((sshKey) => sshKey.uuid !== uuid )}; }, default: () => state });