import React, { Component } from 'react'; import { Dimensions, ActivityIndicator, View } from 'react-native'; import QRCode from 'react-native-qrcode-svg'; import { BlueSpacing20, SafeBlueArea, BlueNavigationStyle, BlueText } from '../../BlueComponents'; import PropTypes from 'prop-types'; import Privacy from '../../Privacy'; /** @type {AppStorage} */ let BlueApp = require('../../BlueApp'); let loc = require('../../loc'); const { height, width } = Dimensions.get('window'); export default class WalletExport extends Component { static navigationOptions = ({ navigation }) => ({ ...BlueNavigationStyle(navigation, true), title: loc.wallets.export.title, headerLeft: null, }); constructor(props) { super(props); let address = props.navigation.state.params.address; let secret = props.navigation.state.params.secret; let wallet; for (let w of BlueApp.getWallets()) { if ((address && w.getAddress() === address) || w.getSecret() === secret) { // found our wallet wallet = w; } } this.state = { isLoading: true, qrCodeHeight: height > width ? width - 40 : width / 2, wallet, }; } componentDidMount() { Privacy.enableBlur(); this.setState({ isLoading: false, showQr: false, }); let that = this; setTimeout(function() { that.setState({ showQr: true }); }, 1000); } componentWillUnmount() { Privacy.disableBlur(); } onLayout = () => { const { height } = Dimensions.get('window'); this.setState({ qrCodeHeight: height > width ? width - 40 : width / 2 }); }; render() { if (this.state.isLoading) { return ( ); } return ( {this.state.wallet.typeReadable} {(() => { if (this.state.wallet.getAddress()) { return ( {this.state.wallet.getAddress()} ); } })()} {(() => { if (this.state.showQr) { return ( ); } else { return ( ); } })()} {this.state.wallet.getSecret()} ); } } WalletExport.propTypes = { navigation: PropTypes.shape({ state: PropTypes.shape({ params: PropTypes.shape({ address: PropTypes.string, secret: PropTypes.string, }), }), navigate: PropTypes.func, goBack: PropTypes.func, }), };