From 5d569f8510755f8a2c5dc6cd21b239edab7d6333 Mon Sep 17 00:00:00 2001 From: Marcos Rodriguez Date: Wed, 25 Dec 2019 10:25:30 -0600 Subject: [PATCH] REF: Default view settings now uses Hooks --- screen/settings/defaultView.js | 116 ++++++++++++++++----------------- 1 file changed, 55 insertions(+), 61 deletions(-) diff --git a/screen/settings/defaultView.js b/screen/settings/defaultView.js index fa944e74..d5e734c4 100644 --- a/screen/settings/defaultView.js +++ b/screen/settings/defaultView.js @@ -1,80 +1,74 @@ -import React, { Component } from 'react'; +import React, { useEffect, useState } from 'react'; import { TouchableOpacity, View } from 'react-native'; import { SafeBlueArea, BlueNavigationStyle, BlueListItem } from '../../BlueComponents'; -import PropTypes from 'prop-types'; import OnAppLaunch from '../../class/onAppLaunch'; +import { useNavigation } from 'react-navigation-hooks'; const BlueApp = require('../../BlueApp'); -export default class DefaultView extends Component { - static navigationOptions = () => ({ - ...BlueNavigationStyle(), - title: 'On Launch', - }); - - constructor(props) { - super(props); - this.state = { defaultWalletLabel: '', viewAllWalletsEnabled: true }; - } - - async componentDidMount() { - const viewAllWalletsEnabled = await OnAppLaunch.isViewAllWalletsEnabled(); - let defaultWalletLabel = ''; - const wallet = await OnAppLaunch.getSelectedDefaultWallet(); - if (wallet) { - defaultWalletLabel = wallet.getLabel(); - } - this.setState({ viewAllWalletsEnabled, defaultWalletLabel }); - } +const DefaultView = () => { + const [defaultWalletLabel, setDefaultWalletLabel] = useState(''); + const [viewAllWalletsEnabled, setViewAllWalletsEnabled] = useState(true); + const { navigate, pop } = useNavigation(); - selectWallet = () => { - this.props.navigation.navigate('SelectWallet', { onWalletSelect: this.onWalletSelectValueChanged }); - }; + useEffect(() => { + (async () => { + const viewAllWalletsEnabled = await OnAppLaunch.isViewAllWalletsEnabled(); + let defaultWalletLabel = ''; + const wallet = await OnAppLaunch.getSelectedDefaultWallet(); + if (wallet) { + defaultWalletLabel = wallet.getLabel(); + } + setDefaultWalletLabel(defaultWalletLabel); + setViewAllWalletsEnabled(viewAllWalletsEnabled); + })(); + }); - onViewAllWalletsSwitchValueChanged = async value => { + const onViewAllWalletsSwitchValueChanged = async value => { await OnAppLaunch.setViewAllWalletsEnabled(value); if (value) { - return this.setState({ viewAllWalletsEnabled: true, defaultWalletLabel: '' }); + setViewAllWalletsEnabled(true); + setDefaultWalletLabel(''); } else { const selectedWallet = await OnAppLaunch.getSelectedDefaultWallet(); - return this.setState({ viewAllWalletsEnabled: false, defaultWalletLabel: selectedWallet.getLabel() }); + setDefaultWalletLabel(selectedWallet.getLabel()); + setViewAllWalletsEnabled(false); } }; - onWalletSelectValueChanged = async wallet => { + const selectWallet = () => { + navigate('SelectWallet', { onWalletSelect: onWalletSelectValueChanged }); + }; + + const onWalletSelectValueChanged = async wallet => { await OnAppLaunch.setViewAllWalletsEnabled(false); await OnAppLaunch.setSelectedDefaultWallet(wallet.getID()); - this.setState({ defaultWalletLabel: wallet.getLabel(), viewAllWalletsEnabled: false }, () => this.props.navigation.pop()); + setDefaultWalletLabel(wallet.getLabel()); + setViewAllWalletsEnabled(false); + pop(); }; - render() { - return ( - - - 0} - switched={this.state.viewAllWalletsEnabled} - onSwitch={this.onViewAllWalletsSwitchValueChanged} - /> - {!this.state.viewAllWalletsEnabled && ( - - )} - - - ); - } -} - -DefaultView.propTypes = { - navigation: PropTypes.shape({ - navigate: PropTypes.func, - pop: PropTypes.func, - }), + return ( + + + 0} + switched={viewAllWalletsEnabled} + onSwitch={onViewAllWalletsSwitchValueChanged} + /> + {!viewAllWalletsEnabled && ( + + )} + + + ); }; + +DefaultView.navigationOptions = () => ({ + ...BlueNavigationStyle(), + title: 'On Launch', +}); + +export default DefaultView;