36 lines
849 B
TypeScript
36 lines
849 B
TypeScript
|
import { MessageAction, SignLocalMessageSucceededAction, TypeKeys } from 'actions/message';
|
||
|
import { ISignedMessage } from 'libs/signing';
|
||
|
|
||
|
export interface State {
|
||
|
signed?: ISignedMessage | null;
|
||
|
}
|
||
|
|
||
|
export const INITIAL_STATE: State = {
|
||
|
signed: null
|
||
|
};
|
||
|
|
||
|
function signLocalMessageSucceeded(state: State, action: SignLocalMessageSucceededAction): State {
|
||
|
return {
|
||
|
...state,
|
||
|
signed: action.payload
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function signMessageFailed(state: State): State {
|
||
|
return {
|
||
|
...state,
|
||
|
signed: null
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export function message(state: State = INITIAL_STATE, action: MessageAction): State {
|
||
|
switch (action.type) {
|
||
|
case TypeKeys.SIGN_LOCAL_MESSAGE_SUCCEEDED:
|
||
|
return signLocalMessageSucceeded(state, action);
|
||
|
case TypeKeys.SIGN_MESSAGE_FAILED:
|
||
|
return signMessageFailed(state);
|
||
|
default:
|
||
|
return state;
|
||
|
}
|
||
|
}
|