Merge pull request #236 from Bitcoin-com/wallet/task/428
Improvement - 428 - Send/Receive buttons
This commit is contained in:
commit
f20f5ae648
10 changed files with 157 additions and 17 deletions
|
|
@ -224,6 +224,7 @@ angular.module('copayApp.controllers').controller('tabHomeController',
|
|||
cb();
|
||||
}
|
||||
}
|
||||
$scope.walletsWithFunds = profileService.getWallets({hasFunds: true});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -233,10 +233,14 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
|
|||
|
||||
if (!$scope.wallets[0]) return;
|
||||
|
||||
// select first wallet if no wallet selected previously
|
||||
var selectedWallet = checkSelectedWallet($scope.wallet, $scope.wallets);
|
||||
var selectedWallet = null;
|
||||
if (data.stateParams.walletId) { // from walletDetails
|
||||
selectedWallet = checkSelectedWallet(profileService.getWallet(data.stateParams.walletId), $scope.wallets);
|
||||
} else {
|
||||
// select first wallet if no wallet selected previously
|
||||
selectedWallet = checkSelectedWallet($scope.wallet, $scope.wallets);
|
||||
}
|
||||
$scope.onWalletSelect(selectedWallet);
|
||||
|
||||
$scope.showShareButton = platformInfo.isCordova ? (platformInfo.isIOS ? 'iOS' : 'Android') : null;
|
||||
|
||||
listeners = [
|
||||
|
|
|
|||
|
|
@ -342,9 +342,9 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
top = TOP_BALANCE_BUTTON;
|
||||
}
|
||||
|
||||
var amountTop = ((amountScale - 0.7) / 0.7) * top;
|
||||
if (amountTop < -10) {
|
||||
amountTop = -10;
|
||||
var amountTop = ((amountScale - 0.80) / 0.80) * top;
|
||||
if (amountTop < -2) {
|
||||
amountTop = -2;
|
||||
}
|
||||
if (amountTop > top) {
|
||||
amountTop = top;
|
||||
|
|
@ -353,6 +353,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
var t = amountTop;
|
||||
|
||||
$scope.altAmountOpacity = (amountHeight - 100) / 80;
|
||||
$scope.buttonsOpacity = (amountHeight - 140) / 70;
|
||||
$window.requestAnimationFrame(function() {
|
||||
$scope.amountHeight = amountHeight + 'px';
|
||||
$scope.contentMargin = contentMargin + 'px';
|
||||
|
|
@ -469,4 +470,30 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
function rgbToHex(r, g, b) {
|
||||
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
|
||||
}
|
||||
$scope.goToSend = function() {
|
||||
$state.go('tabs.home', {
|
||||
walletId: $scope.wallet.id
|
||||
}).then(function () {
|
||||
$ionicHistory.clearHistory();
|
||||
$state.go('tabs.send');
|
||||
});
|
||||
};
|
||||
$scope.goToReceive = function() {
|
||||
$state.go('tabs.home', {
|
||||
walletId: $scope.wallet.id
|
||||
}).then(function () {
|
||||
$ionicHistory.clearHistory();
|
||||
$state.go('tabs.receive', {
|
||||
walletId: $scope.wallet.id
|
||||
});
|
||||
});
|
||||
};
|
||||
$scope.goToBuy = function() {
|
||||
$state.go('tabs.home', {
|
||||
walletId: $scope.wallet.id
|
||||
}).then(function () {
|
||||
$ionicHistory.clearHistory();
|
||||
$state.go('tabs.buyandsell');
|
||||
});
|
||||
};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
|||
}
|
||||
})
|
||||
.state('tabs.receive', {
|
||||
url: '/receive',
|
||||
url: '/receive/:walletId',
|
||||
views: {
|
||||
'tab-receive': {
|
||||
controller: 'tabReceiveController',
|
||||
|
|
|
|||
|
|
@ -72,5 +72,17 @@
|
|||
&.activated {
|
||||
color: #FFF;
|
||||
}
|
||||
&-outline {
|
||||
@include button-style(transparent, #FFFFFF, #FAFAFA, #FFF, #FFFFFF);
|
||||
@include button-outline(#FFFFFF);
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
&-grey-outline {
|
||||
@include button-style(transparent, #727272, #FAFAFA, #727272, #727272);
|
||||
@include button-outline(#727272);
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
|
@ -233,6 +233,10 @@ input[type=number] {
|
|||
font-size: 24px;
|
||||
}
|
||||
|
||||
.size-25 {
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.size-28 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,25 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
.buttons {
|
||||
margin: 6px auto -12px;
|
||||
max-width: 600px;
|
||||
>.col {
|
||||
padding: 5px 10px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.button {
|
||||
border: 2px solid;
|
||||
border-radius: 47px;
|
||||
padding: 0 15px 0 15px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
font-size: 19px;
|
||||
font-weight: bolder;
|
||||
min-height: auto;
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
.wallet-coin-logo {
|
||||
vertical-align: middle;
|
||||
margin-right: 5px;
|
||||
|
|
|
|||
|
|
@ -135,11 +135,12 @@
|
|||
|
||||
&.status-bar {
|
||||
margin-top: 20px;
|
||||
margin-top: env(safe-area-inset-top);
|
||||
}
|
||||
}
|
||||
.bar-header {
|
||||
border: 0;
|
||||
background: none;
|
||||
background: rgb(238, 182, 64);
|
||||
.title, .button {
|
||||
color: #fff;
|
||||
}
|
||||
|
|
@ -153,7 +154,7 @@
|
|||
ion-content {
|
||||
|
||||
&.collapsible {
|
||||
margin-top: 210px;
|
||||
margin-top: 230px;
|
||||
}
|
||||
|
||||
padding-top: 0;
|
||||
|
|
@ -190,12 +191,34 @@
|
|||
transform: translateY(100px);
|
||||
}
|
||||
}
|
||||
|
||||
.send-receive-buttons {
|
||||
max-width: 600px;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
|
||||
>.col {
|
||||
padding: 5px 10px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.button {
|
||||
border: 2px solid;
|
||||
border-radius: 47px;
|
||||
padding: 0 15px 0 15px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
font-size: 19px;
|
||||
font-weight: bolder;
|
||||
min-height: auto;
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.amount {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
height: 210px;
|
||||
height: 230px;
|
||||
padding-top: 40px;
|
||||
display: block;
|
||||
align-items: center;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,24 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="buttons row">
|
||||
<div class="col">
|
||||
<div class="button button-outline button-grey-outline" ui-sref="tabs.receive">
|
||||
<span translate>Receive</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="button button-outline button-grey-outline" ng-class="{'ng-hide': walletsWithFunds.length}"
|
||||
ui-sref="tabs.buyandsell">
|
||||
<span translate>Buy Bitcoin</span>
|
||||
</div>
|
||||
<div class="button button-outline button-grey-outline" ng-class="{'ng-hide': !walletsWithFunds.length}"
|
||||
ui-sref="tabs.send">
|
||||
<span translate>Send</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list card homeTip" ng-if="homeTip">
|
||||
<div class="item item-icon-right item-heading">
|
||||
<div class="title" translate>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</strong>
|
||||
<strong class="size-25">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<strong class="size-25">{{status.totalBalanceStr}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
|
|
@ -91,6 +91,22 @@
|
|||
</button>
|
||||
</div>
|
||||
|
||||
<div class="send-receive-buttons row" ng-if="(status.availableBalanceSat || status.availableBalanceSat === 0) && (buttonsOpacity > 0 || isAndroid)" ng-style="{opacity: buttonsOpacity}">
|
||||
<div class="col">
|
||||
<div class="button button-outline button-white-outline" ng-click="goToReceive()">
|
||||
<span translate>Receive</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="button button-outline button-white-outline" ng-if="!status.availableBalanceSat" ng-click="goToBuy()">
|
||||
<span translate>Buy Bitcoin</span>
|
||||
</div>
|
||||
<div class="button button-outline button-white-outline" ng-if="status.availableBalanceSat>0" ng-click="goToSend()">
|
||||
<span translate>Send</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wallet-details-wallet-info" ng-style="{opacity: altAmountOpacity}">
|
||||
<span ng-include="'views/includes/walletInfo.html'"></span>
|
||||
|
|
@ -127,7 +143,7 @@
|
|||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<strong class="size-25">{{status.totalBalanceStr}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
|
|
@ -142,9 +158,9 @@
|
|||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</strong>
|
||||
<strong class="size-25">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
class="size-16 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
ng-style="{opacity: altAmountOpacity}">
|
||||
{{status.totalBalanceStr}}
|
||||
|
|
@ -156,7 +172,7 @@
|
|||
ng-show="!updateStatusError && wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()">
|
||||
<strong class="size-24" translate>[Balance Hidden]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-16 amount-alternative" translate>
|
||||
Tap and hold to show
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -166,7 +182,7 @@
|
|||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.scanning">
|
||||
<strong class="size-24" translate>[Scanning Funds]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-16 amount-alternative" translate>
|
||||
Please wait
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -198,6 +214,22 @@
|
|||
</button>
|
||||
</div>
|
||||
|
||||
<div class="send-receive-buttons row" ng-if="(status.availableBalanceSat || status.availableBalanceSat === 0) && (buttonsOpacity > 0 || isAndroid)" ng-style="{opacity: buttonsOpacity}">
|
||||
<div class="col">
|
||||
<div class="button button-outline button-white-outline" ng-click="goToReceive()">
|
||||
<span translate>Receive</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="button button-outline button-white-outline" ng-if="!status.availableBalanceSat" ng-click="goToBuy()">
|
||||
<span translate>Buy Bitcoin</span>
|
||||
</div>
|
||||
<div class="button button-outline button-white-outline" ng-if="status.availableBalanceSat>0" ng-click="goToSend()">
|
||||
<span translate>Send</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wallet-details-wallet-info" ng-style="{opacity: altAmountOpacity}">
|
||||
<span ng-include="'views/includes/walletInfo.html'"></span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue