fix(settings): load addresses in settings view

This commit is contained in:
George Lima 2019-02-18 23:10:42 -03:00
parent 4cb96b94f9
commit 3fdeb3d56d
2 changed files with 46 additions and 8 deletions

View File

@ -1,14 +1,46 @@
// @flow
import eres from 'eres';
import { connect } from 'react-redux';
import { SettingsView } from '../views/settings';
import type { AppState } from '../types/app-state';
import { loadAddressesSuccess, loadAddressesError } from '../redux/modules/receive';
const mapStateToProps = ({ walletSummary }: AppState) => ({
addresses: walletSummary.addresses,
import rpc from '../../services/api';
import type { AppState } from '../types/app-state';
import type { Dispatch } from '../types/redux';
export type MapStateToProps = {|
addresses: string[],
|};
const mapStateToProps = ({ receive }: AppState): MapStateToProps => ({
addresses: receive.addresses,
});
export type MapDispatchToProps = {|
loadAddresses: () => Promise<void>,
|};
const mapDispatchToProps = (dispatch: Dispatch): MapDispatchToProps => ({
loadAddresses: async () => {
const [zAddressesErr, zAddresses] = await eres(rpc.z_listaddresses());
const [tAddressesErr, transparentAddresses] = await eres(rpc.getaddressesbyaccount(''));
if (zAddressesErr || tAddressesErr) return dispatch(loadAddressesError({ error: 'Something went wrong!' }));
dispatch(
loadAddressesSuccess({
addresses: [...zAddresses, ...transparentAddresses],
}),
);
},
});
// $FlowFixMe
export const SettingsContainer = connect(mapStateToProps)(SettingsView);
export const SettingsContainer = connect(
mapStateToProps,
mapDispatchToProps,
)(SettingsView);

View File

@ -22,6 +22,7 @@ import { SelectComponent } from '../components/select';
import rpc from '../../services/api';
import { DARK, LIGHT } from '../constants/themes';
import electronStore from '../../config/electron-store';
import type { MapDispatchToProps, MapStateToProps } from '../containers/settings';
const HOME_DIR = electron.remote.app.getPath('home');
@ -79,9 +80,8 @@ type Key = {
key: string,
};
type Props = {
addresses: string[],
};
type Props = MapDispatchToProps & MapStateToProps;
type State = {
viewKeys: Key[],
privateKeys: Key[],
@ -105,6 +105,12 @@ export class SettingsView extends PureComponent<Props, State> {
error: null,
};
componentDidMount() {
const { loadAddresses } = this.props;
loadAddresses();
}
exportViewKeys = () => {
const { addresses } = this.props;