import React, { Component } from 'react'; import { AsyncStorage, View, TextInput, Linking } from 'react-native'; import { AppStorage } from '../../class'; import { BlueLoading, BlueSpacing20, BlueButton, SafeBlueArea, BlueCard, BlueNavigationStyle, BlueText } from '../../BlueComponents'; import PropTypes from 'prop-types'; import { LightningCustodianWallet } from '../../class/lightning-custodian-wallet'; /** @type {AppStorage} */ let BlueApp = require('../../BlueApp'); let loc = require('../../loc'); export default class LightningSettings extends Component { static navigationOptions = () => ({ ...BlueNavigationStyle(), title: loc.settings.lightning_settings, }); constructor(props) { super(props); this.state = { isLoading: true, }; } async componentDidMount() { let URI = await AsyncStorage.getItem(AppStorage.LNDHUB); this.setState({ isLoading: false, URI, defaultURI: new LightningCustodianWallet().getBaseURI(), }); } async save() { this.state.URI = this.state.URI ? this.state.URI : ''; await AsyncStorage.setItem(AppStorage.LNDHUB, this.state.URI); // set each lnd wallets and re-init api for (/** @type {LightningCustodianWallet} */ let w of BlueApp.getWallets()) { if (w.type === LightningCustodianWallet.type) { w.setBaseURI(this.state.URI); w.init(); console.log('inited', w.baseURI); } } } render() { if (this.state.isLoading) { return ; } return ( {loc.settings.lightning_settings_explain} { Linking.openURL('https://github.com/BlueWallet/LndHub'); }} title="github.com/BlueWallet/LndHub" buttonStyle={{ backgroundColor: '#FFFFFF', }} /> this.setState({ URI: text })} numberOfLines={1} style={{ flex: 1, marginHorizontal: 8, minHeight: 33, height: 33 }} editable={!this.state.isLoading} underlineColorAndroid="transparent" /> { this.save(); }} title={loc.settings.save} /> ); } } LightningSettings.propTypes = { navigation: PropTypes.shape({ navigate: PropTypes.func, goBack: PropTypes.func, }), };