/* global alert */ import React, { useEffect, useState } from 'react'; import { KeyboardAvoidingView, Platform, Dimensions, View, TouchableWithoutFeedback, Keyboard } from 'react-native'; import { BlueFormMultiInput, BlueButtonLink, BlueFormLabel, BlueDoneAndDismissKeyboardInputAccessory, BlueButton, SafeBlueArea, BlueSpacing20, BlueNavigationStyle, } from '../../BlueComponents'; import ReactNativeHapticFeedback from 'react-native-haptic-feedback'; import Privacy from '../../Privacy'; import { useNavigation, useNavigationParam } from 'react-navigation-hooks'; import WalletImport from '../../class/walletImport'; let loc = require('../../loc'); const { width } = Dimensions.get('window'); const WalletsImport = () => { const [isToolbarVisibleForAndroid, setIsToolbarVisibleForAndroid] = useState(false); const [importText, setImportText] = useState(useNavigationParam('label') || ''); const { navigate, dismiss } = useNavigation(); useEffect(() => { Privacy.enableBlur(); return () => Privacy.disableBlur(); }); const importButtonPressed = () => { if (importText.trim().length === 0) { return; } importMnemonic(importText); }; /** * * @param importText * @param additionalProperties key-values passed from outside. Used only to set up `masterFingerprint` property for watch-only wallet */ const importMnemonic = (importText, additionalProperties) => { try { WalletImport.processImportText(importText, additionalProperties); dismiss(); } catch (error) { alert(loc.wallets.import.error); ReactNativeHapticFeedback.trigger('notificationError', { ignoreAndroidSystemSettings: false }); } }; /** * * @param value * @param additionalProperties key-values passed from outside. Used only to set up `masterFingerprint` property for watch-only wallet */ const onBarScanned = (value, additionalProperties) => { setImportText(value); importMnemonic(value, additionalProperties); }; return ( {loc.wallets.import.explanation} setIsToolbarVisibleForAndroid(true)} onBlur={() => setIsToolbarVisibleForAndroid(false)} /> {Platform.select({ ios: ( { setImportText(''); Keyboard.dismiss(); }} onPasteTapped={text => { setImportText(text); Keyboard.dismiss(); }} /> ), android: isToolbarVisibleForAndroid && ( { setImportText(''); Keyboard.dismiss(); }} onPasteTapped={text => { setImportText(text); Keyboard.dismiss(); }} /> ), })} { navigate('ScanQrAddress', { launchedBy: 'ImportWallet', onBarScanned, showFileImportButton: true }); }} /> ); }; WalletsImport.navigationOptions = { ...BlueNavigationStyle(), title: loc.wallets.import.title, }; export default WalletsImport;