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 ;
}
}