diff --git a/src/components/app-body/bch-send/balance-card.js b/src/components/app-body/bch-send/balance-card.js
index 62b5a46..288bf04 100644
--- a/src/components/app-body/bch-send/balance-card.js
+++ b/src/components/app-body/bch-send/balance-card.js
@@ -3,20 +3,36 @@
*/
// Global npm libraries
-import React from 'react'
+import React, { useEffect, useState } from 'react'
import { Container, Row, Col, Card, Spinner } from 'react-bootstrap'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCoins } from '@fortawesome/free-solid-svg-icons'
const BalanceCard = (props) => {
const { appData } = props
+ const [sats, setSats] = useState('')
+ const [bchBalance, setbchBalance] = useState('')
+ const [usdBalance, setusdBalance] = useState('')
- const bchjs = appData.wallet.bchjs
- const sats = appData.bchWalletState.bchBalance
- const bchBalance = bchjs.BitcoinCash.toBitcoinCash(sats)
- const usdBalance = bchjs.Util.floor2(bchBalance * appData.bchWalletState.bchUsdPrice)
const { bchInitLoaded, asyncBackgroundFinished } = appData.asyncBackGroundInitState
+ // Calculate balances if wallet is successfully loaded!
+ useEffect(() => {
+ try {
+ const bchjs = appData.wallet.bchjs
+ if (bchjs && appData.asyncInitSucceeded) {
+ const sats = appData.bchWalletState.bchBalance
+ const bchBalance = bchjs.BitcoinCash.toBitcoinCash(sats)
+ const usdBalance = bchjs.Util.floor2(bchBalance * appData.bchWalletState.bchUsdPrice)
+
+ setSats(sats)
+ setbchBalance(bchBalance)
+ setusdBalance(usdBalance)
+ }
+ } catch (error) {
+ // console.warn(error)
+ }
+ }, [appData])
// Background bch data loaded finished
const backgroundDataLoaded = bchInitLoaded || asyncBackgroundFinished
const backgroundDataError = !bchInitLoaded && asyncBackgroundFinished
@@ -56,7 +72,7 @@ const BalanceCard = (props) => {
)}
- {!backgroundDataLoaded && (
+ {!backgroundDataLoaded && appData.asyncInitSucceeded && (
diff --git a/src/components/app-body/sign/index.js b/src/components/app-body/sign/index.js
index 2da9e2e..1621c67 100644
--- a/src/components/app-body/sign/index.js
+++ b/src/components/app-body/sign/index.js
@@ -14,8 +14,8 @@ function SignMessage (props) {
const [sign, setSign] = useState('')
const [msg, setMsg] = useState('')
- const [bchAddr] = useState(wallet.walletInfo.cashAddress)
- const [slpAddr] = useState(wallet.walletInfo.slpAddress)
+ const [bchAddr] = useState(wallet?.walletInfo?.cashAddress)
+ const [slpAddr] = useState(wallet?.walletInfo?.slpAddress)
const [err, setErr] = useState('')
const [copied, setCopied] = useState(false)
diff --git a/src/components/app-body/slp-tokens/index.js b/src/components/app-body/slp-tokens/index.js
index 67bae78..cee3e83 100644
--- a/src/components/app-body/slp-tokens/index.js
+++ b/src/components/app-body/slp-tokens/index.js
@@ -183,33 +183,35 @@ const SlpTokens = (props) => {
-
- {/** Show spinner info if tokens are loaded but data is not loaded */
- !backgroundDataLoaded && !backgroundDataError && (
-
- Loading Tokens
-
-
- )
- }
- {/** Show spinner info if tokens are loaded but data is not loaded */
- !backgroundDataError && !dataAreLoaded && tokens.length > 0 && (
-
- Loading Token Data
-
-
- )
- }
- {/** Show spinner info if tokens are loaded but icons are not loaded */
- backgroundDataLoaded && dataAreLoaded && !iconsAreLoaded && (
-
- Loading Token Icons
-
-
- )
- }
+ {appData.asyncInitSucceeded && (
+
+ {/** Show spinner info if tokens are loaded but data is not loaded */
+ !backgroundDataLoaded && !backgroundDataError && (
+
+ Loading Tokens
+
+
+ )
+ }
+ {/** Show spinner info if tokens are loaded but data is not loaded */
+ !backgroundDataError && !dataAreLoaded && tokens.length > 0 && (
+
+ Loading Token Data
+
+
+ )
+ }
+ {/** Show spinner info if tokens are loaded but icons are not loaded */
+ backgroundDataLoaded && dataAreLoaded && !iconsAreLoaded && (
+
+ Loading Token Icons
+
+
+ )
+ }
-
+
+ )}