import React, { Component, useEffect, useState } from 'react'; import { ScrollView, View, Switch, TouchableOpacity } from 'react-native'; import { BlueText, BlueCard, BlueLoading, SafeBlueArea, BlueNavigationStyle, BlueHeaderDefaultSub, BlueListItem, } from '../../BlueComponents'; import AsyncStorage from '@react-native-community/async-storage'; import { AppStorage } from '../../class'; import Biometric from '../../class/biometrics'; import { useNavigation } from 'react-navigation-hooks'; const BlueApp = require('../../BlueApp'); const loc = require('../../loc'); export const Settings = () => { const [isLoading, setIsLoading] = useState(true); const [showAdvancedOptions, setShowAdvancedOptions] = useState(false); const [advancedModeEnabled, setAdvancedModeEnabled] = useState(false); const [biometrics, setBiometrics] = useState({ isDeviceBiometricCapable: false, isBiometricsEnabled: false, biometricsType: '' }); const { navigate } = useNavigation(); useEffect(() => { (async () => { setAdvancedModeEnabled(!!(await AsyncStorage.getItem(AppStorage.ADVANCED_MODE_ENABLED))); const isBiometricsEnabled = await Biometric.isBiometricUseEnabled(); const isDeviceBiometricCapable = await Biometric.isDeviceBiometricCapable(); const biometricsType = (await Biometric.biometricType()) || 'biometrics'; setBiometrics({ isBiometricsEnabled, isDeviceBiometricCapable, biometricsType }); setIsLoading(false); })(); }); const onAdvancedModeSwitch = async value => { if (value) { await AsyncStorage.setItem(AppStorage.ADVANCED_MODE_ENABLED, '1'); } else { await AsyncStorage.removeItem(AppStorage.ADVANCED_MODE_ENABLED); } setAdvancedModeEnabled(value); }; const onUseBiometricSwitch = async value => { let isBiometricsEnabled = biometrics; if (await Biometric.unlockWithBiometrics()) { isBiometricsEnabled.isBiometricsEnabled = value; await Biometric.setBiometricUseEnabled(value); setBiometrics(isBiometricsEnabled); } }; const onShowAdvancedOptions = () => { setShowAdvancedOptions(!showAdvancedOptions); }; return isLoading ? ( ) : ( {BlueApp.getWallets().length > 1 && ( navigate('DefaultView')} title="On Launch" /> )} navigate('EncryptStorage')} component={TouchableOpacity} /> {biometrics.isDeviceBiometricCapable && ( )} navigate('LightningSettings')} /> navigate('Language')} /> navigate('Currency')} /> navigate('ElectrumSettings')} /> {showAdvancedOptions && ( {loc.settings.enable_advanced_mode} )} navigate('About')} /> ); }; export default class SettingsContainer extends Component { static navigationOptions = { ...BlueNavigationStyle, }; render() { return ; } }