2019-01-21 10:37:04 -08:00
|
|
|
// @flow
|
|
|
|
import type { Action } from '../../types/redux';
|
|
|
|
|
|
|
|
// Actions
|
|
|
|
export const LOAD_ADDRESSES_SUCCESS = 'LOAD_ADDRESSES_SUCCESS';
|
|
|
|
export const LOAD_ADDRESSES_ERROR = 'LOAD_ADDRESSES_ERROR';
|
2019-01-30 07:16:10 -08:00
|
|
|
export const GET_NEW_ADDRESS_SUCCESS = 'GET_NEW_ADDRESS_SUCCESS';
|
|
|
|
export const GET_NEW_ADDRESS_ERROR = 'GET_NEW_ADDRESS_ERROR';
|
2019-01-21 10:37:04 -08:00
|
|
|
|
2019-01-29 07:36:13 -08:00
|
|
|
export const loadAddressesSuccess = ({ addresses }: { addresses: string[] }) => ({
|
2019-01-21 10:37:04 -08:00
|
|
|
type: LOAD_ADDRESSES_SUCCESS,
|
|
|
|
payload: {
|
|
|
|
addresses,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
export const loadAddressesError = ({ error }: { error: string }) => ({
|
|
|
|
type: LOAD_ADDRESSES_ERROR,
|
|
|
|
payload: { error },
|
|
|
|
});
|
|
|
|
|
2019-01-30 07:16:10 -08:00
|
|
|
export const getNewAddressSuccess = ({ address }: { address: string }) => ({
|
|
|
|
type: GET_NEW_ADDRESS_SUCCESS,
|
|
|
|
payload: {
|
|
|
|
address,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
export const getNewAddressError = ({ error }: { error: string }) => ({
|
|
|
|
type: GET_NEW_ADDRESS_ERROR,
|
|
|
|
payload: {
|
|
|
|
error,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
export type addressType = 'transparent' | 'shielded';
|
|
|
|
|
2019-01-21 10:37:04 -08:00
|
|
|
export type State = {
|
|
|
|
addresses: string[],
|
|
|
|
error: string | null,
|
|
|
|
};
|
|
|
|
|
|
|
|
const initialState: State = {
|
|
|
|
addresses: [],
|
|
|
|
error: null,
|
|
|
|
};
|
|
|
|
|
2019-01-29 07:36:13 -08:00
|
|
|
// eslint-disable-next-line
|
2019-01-21 10:37:04 -08:00
|
|
|
export default (state: State = initialState, action: Action) => {
|
|
|
|
switch (action.type) {
|
|
|
|
case LOAD_ADDRESSES_SUCCESS:
|
|
|
|
return {
|
|
|
|
error: null,
|
|
|
|
addresses: action.payload.addresses,
|
|
|
|
};
|
|
|
|
case LOAD_ADDRESSES_ERROR:
|
|
|
|
return {
|
|
|
|
error: action.payload.error,
|
|
|
|
addresses: [],
|
|
|
|
};
|
2019-01-30 07:16:10 -08:00
|
|
|
case GET_NEW_ADDRESS_SUCCESS:
|
|
|
|
return {
|
|
|
|
error: null,
|
|
|
|
addresses: [...state.addresses, action.payload.address],
|
|
|
|
};
|
|
|
|
case GET_NEW_ADDRESS_ERROR:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
error: action.payload.error,
|
|
|
|
};
|
2019-01-21 10:37:04 -08:00
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
};
|