Merge fix for wallet-balance for non-stringifyable wallet.
This commit is contained in:
commit
38d2c6a3c6
2 changed files with 39 additions and 24 deletions
|
|
@ -10,7 +10,12 @@
|
||||||
scope: {
|
scope: {
|
||||||
displayAsFiat: '@',
|
displayAsFiat: '@',
|
||||||
totalBalanceSat: '@',
|
totalBalanceSat: '@',
|
||||||
wallet: '@'
|
// The Wallet object is sometimes not stringify()-able, so not interpolatable,
|
||||||
|
// so can't be passed to a directive.
|
||||||
|
walletStatus: '@',
|
||||||
|
walletCachedBalance: '@',
|
||||||
|
walletCachedBalanceUpdatedOn: '@',
|
||||||
|
walletCachedStatus: '@'
|
||||||
},
|
},
|
||||||
templateUrl: 'views/includes/wallet-balance.html',
|
templateUrl: 'views/includes/wallet-balance.html',
|
||||||
controller: walletBalanceController
|
controller: walletBalanceController
|
||||||
|
|
@ -25,38 +30,38 @@
|
||||||
formatBalance();
|
formatBalance();
|
||||||
});
|
});
|
||||||
|
|
||||||
function displayCryptoBalance(wallet) {
|
function displayCryptoBalance(walletStatus, walletCachedBalance, walletCachedBalanceUpdatedOn, walletCachedStatus) {
|
||||||
console.log('displayCryptoBalance()');
|
console.log('displayCryptoBalance()');
|
||||||
|
|
||||||
if (wallet.status && wallet.status.isValid && wallet.status.totalBalanceStr) {
|
if (walletStatus && walletStatus.isValid && walletStatus.totalBalanceStr) {
|
||||||
setDisplay(wallet.status.totalBalanceStr, '');
|
setDisplay(walletStatus.totalBalanceStr, '');
|
||||||
cryptoBalanceHasBeenDisplayed = true;
|
cryptoBalanceHasBeenDisplayed = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wallet.cachedBalance) {
|
if (walletCachedBalance) {
|
||||||
setDisplay(wallet.cachedBalance, wallet.cachedBalanceUpdatedOn);
|
setDisplay(walletCachedBalance, walletCachedBalanceUpdatedOn);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wallet.cachedStatus && wallet.status.isValid && wallet.cachedStatus.totalBalanceStr) {
|
if (walletCachedStatus && walletCachedStatus.isValid && walletCachedStatus.totalBalanceStr) {
|
||||||
setDisplay(wallet.cachedStatus.totalBalanceStr, '');
|
setDisplay(walletCachedStatus.totalBalanceStr, '');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setDisplay('', '');
|
setDisplay('', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayFiatBalance(wallet) {
|
function displayFiatBalance(walletStatus, walletCachedStatus) {
|
||||||
var displayAmount = '';
|
var displayAmount = '';
|
||||||
if (wallet.status && wallet.status.isValid && wallet.status.alternativeBalanceAvailable) {
|
if (walletStatus && walletStatus.isValid && walletStatus.alternativeBalanceAvailable) {
|
||||||
displayAmount = wallet.status.totalBalanceAlternative + ' ' + wallet.status.alternativeIsoCode;
|
displayAmount = walletStatus.totalBalanceAlternative + ' ' + walletStatus.alternativeIsoCode;
|
||||||
setDisplay(displayAmount, '');
|
setDisplay(displayAmount, '');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wallet.cachedStatus && wallet.cachedStatus.isValid && wallet.cachedStatus.alternativeBalanceAvailable) {
|
if (walletCachedStatus && walletCachedStatus.isValid && walletCachedStatus.alternativeBalanceAvailable) {
|
||||||
displayAmount = wallet.cachedStatus.totalBalanceAlternative + ' ' + wallet.cachedStatus.alternativeIsoCode;
|
displayAmount = walletCachedStatus.totalBalanceAlternative + ' ' + walletCachedStatus.alternativeIsoCode;
|
||||||
setDisplay(displayAmount, '');
|
setDisplay(displayAmount, '');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -66,26 +71,30 @@
|
||||||
|
|
||||||
function formatBalance() {
|
function formatBalance() {
|
||||||
var displayAsFiat = $scope.displayAsFiat === 'true';
|
var displayAsFiat = $scope.displayAsFiat === 'true';
|
||||||
if (!$scope.wallet) {
|
|
||||||
setDisplay('', '');
|
var walletStatusObj = null;
|
||||||
return;
|
var walletCachedBalance = null;
|
||||||
|
var walletCachedBalanceUpdatedOn = null;
|
||||||
|
var walletCachedStatusObj = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
walletStatusObj = JSON.parse($scope.walletStatus);
|
||||||
|
} catch (e) {
|
||||||
|
$log.warn('Failed to parse walletStatus.', e);
|
||||||
}
|
}
|
||||||
|
|
||||||
var wallet = null;
|
|
||||||
try {
|
try {
|
||||||
wallet = JSON.parse($scope.wallet);
|
walletCachedStatusObj = JSON.parse($scope.walletCachedStatus);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
$log.error('Error parsing wallet to display balance.', e);
|
$log.warn('Failed to parse walletCachedStatus.', e);
|
||||||
setDisplay('', '');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!displayAsFiat || displayAsFiat && !cryptoBalanceHasBeenDisplayed) {
|
if (!displayAsFiat || displayAsFiat && !cryptoBalanceHasBeenDisplayed) {
|
||||||
displayCryptoBalance(wallet);
|
displayCryptoBalance(walletStatusObj, walletCachedBalance, walletCachedBalanceUpdatedOn, walletCachedStatusObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayAsFiat) {
|
if (displayAsFiat) {
|
||||||
displayFiatBalance(wallet);
|
displayFiatBalance(walletStatusObj, walletCachedStatusObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,13 @@
|
||||||
></div>
|
></div>
|
||||||
</i>
|
</i>
|
||||||
<h2>{{fromWallet.name}}</h2>
|
<h2>{{fromWallet.name}}</h2>
|
||||||
<wallet-balance display-as-fiat="{{displayBalanceAsFiat}}" wallet="{{fromWallet}}" total-balance-sat="{{fromWallet.status.totalBalanceSat}}"></wallet-balance>
|
<wallet-balance
|
||||||
|
display-as-fiat="{{displayBalanceAsFiat}}"
|
||||||
|
wallet-status="{{fromWallet.status}}"
|
||||||
|
wallet-cached-balance="{{fromWallet.cachedBalance}}"
|
||||||
|
wallet-cached-balance-updated-on="{{fromWallet.cachedBalanceUpdatedOn}}"
|
||||||
|
wallet-cached-status="{{fromWallet.cachedStatus}}"
|
||||||
|
total-balance-sat="{{fromWallet.status.totalBalanceSat}}"></wallet-balance>
|
||||||
<!--<p ng-show="vm.origin.balanceAmount">{{vm.origin.balanceAmount}} {{vm.origin.balanceCurrency}}</p>-->
|
<!--<p ng-show="vm.origin.balanceAmount">{{vm.origin.balanceAmount}} {{vm.origin.balanceCurrency}}</p>-->
|
||||||
<!--<formatted-amount value="{{fromWallet.status.totalBalanceStr ? fromWallet.status.totalBalanceStr : ( fromWallet.cachedBalance ? fromWallet.cachedBalance + (fromWallet.cachedBalanceUpdatedOn ? ' · ' + ( fromWallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }}"></formatted-amount>-->
|
<!--<formatted-amount value="{{fromWallet.status.totalBalanceStr ? fromWallet.status.totalBalanceStr : ( fromWallet.cachedBalance ? fromWallet.cachedBalance + (fromWallet.cachedBalanceUpdatedOn ? ' · ' + ( fromWallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }}"></formatted-amount>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue