Adds fee-summary bar, adds amount directive, adds support for fee-summary overlapping with content on scrollable small screens
This commit is contained in:
parent
4b18e4b1c3
commit
2492a405a1
9 changed files with 154 additions and 1 deletions
21
src/js/directives/amount.js
Normal file
21
src/js/directives/amount.js
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
'use strict';
|
||||||
|
angular.module('bitcoincom.directives')
|
||||||
|
.directive('amount', [
|
||||||
|
'$timeout',
|
||||||
|
function($timeout) {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
scope: {
|
||||||
|
value: '=',
|
||||||
|
currency: '='
|
||||||
|
},
|
||||||
|
templateUrl: 'views/includes/amount.html',
|
||||||
|
controller: ['$scope', function($scope) {
|
||||||
|
var valueFormatted = parseFloat($scope.value).toFixed(8);
|
||||||
|
$scope.start = valueFormatted.slice(0, -5);
|
||||||
|
$scope.middle = valueFormatted.slice(-5, -2);
|
||||||
|
$scope.end = valueFormatted.substr(valueFormatted.length - 2);
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
24
src/sass/components/amount.scss
Normal file
24
src/sass/components/amount.scss
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
.amount {
|
||||||
|
.start,
|
||||||
|
.middle,
|
||||||
|
.end,
|
||||||
|
.currency {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.start {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.middle {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.end {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.currency {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,3 +7,5 @@
|
||||||
@import "address";
|
@import "address";
|
||||||
@import "action-minor";
|
@import "action-minor";
|
||||||
@import "expand-content";
|
@import "expand-content";
|
||||||
|
@import "fee-summary";
|
||||||
|
@import "amount";
|
||||||
|
|
|
||||||
33
src/sass/components/fee-summary.scss
Normal file
33
src/sass/components/fee-summary.scss
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
.fee-summary {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
padding: 5px 12px 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #F2F2F2;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: -15px;
|
||||||
|
width: 100%;
|
||||||
|
height: 15px;
|
||||||
|
background: linear-gradient(to bottom, rgba(242,242,242,0) 0%,rgba(242,242,242,1) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fee-fiat {
|
||||||
|
&.positive {
|
||||||
|
color: #70955F;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.negative {
|
||||||
|
color: #C24633;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fee-crypto {
|
||||||
|
color: #BCBCBC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -10,4 +10,8 @@ ion-content {
|
||||||
&.padded-bottom-cta {
|
&.padded-bottom-cta {
|
||||||
bottom: 92px;
|
bottom: 92px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.padded-bottom-cta-with-summary {
|
||||||
|
bottom: 134px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5,4 +5,9 @@
|
||||||
margin-bottom: constant(safe-area-inset-bottom); /* iOS 11.0 */
|
margin-bottom: constant(safe-area-inset-bottom); /* iOS 11.0 */
|
||||||
margin-bottom: env(safe-area-inset-bottom); /* iOS 11.2 */
|
margin-bottom: env(safe-area-inset-bottom); /* iOS 11.2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fee-summary {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 92px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -15074,6 +15074,9 @@ log-options #check-bar .checkbox-icon {
|
||||||
/* iOS 11.0 */
|
/* iOS 11.0 */
|
||||||
margin-bottom: env(safe-area-inset-bottom);
|
margin-bottom: env(safe-area-inset-bottom);
|
||||||
/* iOS 11.2 */ }
|
/* iOS 11.2 */ }
|
||||||
|
#view-review .fee-summary {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 92px; }
|
||||||
|
|
||||||
.gravatar {
|
.gravatar {
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|
@ -15127,6 +15130,9 @@ ion-content.bg-neutral {
|
||||||
ion-content.padded-bottom-cta {
|
ion-content.padded-bottom-cta {
|
||||||
bottom: 92px; }
|
bottom: 92px; }
|
||||||
|
|
||||||
|
ion-content.padded-bottom-cta-with-summary {
|
||||||
|
bottom: 134px; }
|
||||||
|
|
||||||
.card.card-gutter-compact {
|
.card.card-gutter-compact {
|
||||||
margin: 10px 12px; }
|
margin: 10px 12px; }
|
||||||
|
|
||||||
|
|
@ -15212,6 +15218,47 @@ ion-content.padded-bottom-cta {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: scale(1, 1); }
|
transform: scale(1, 1); }
|
||||||
|
|
||||||
|
.fee-summary {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
padding: 5px 12px 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #F2F2F2; }
|
||||||
|
.fee-summary:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: -15px;
|
||||||
|
width: 100%;
|
||||||
|
height: 15px;
|
||||||
|
background: linear-gradient(to bottom, rgba(242, 242, 242, 0) 0%, #f2f2f2 100%); }
|
||||||
|
.fee-summary .fee-fiat.positive {
|
||||||
|
color: #70955F; }
|
||||||
|
.fee-summary .fee-fiat.negative {
|
||||||
|
color: #C24633; }
|
||||||
|
.fee-summary .fee-crypto {
|
||||||
|
color: #BCBCBC; }
|
||||||
|
|
||||||
|
.amount .start,
|
||||||
|
.amount .middle,
|
||||||
|
.amount .end,
|
||||||
|
.amount .currency {
|
||||||
|
display: inline-block; }
|
||||||
|
|
||||||
|
.amount .start {
|
||||||
|
font-size: 14px; }
|
||||||
|
|
||||||
|
.amount .middle {
|
||||||
|
font-size: 11px; }
|
||||||
|
|
||||||
|
.amount .end {
|
||||||
|
font-size: 11px; }
|
||||||
|
|
||||||
|
.amount .currency {
|
||||||
|
font-size: 14px; }
|
||||||
|
|
||||||
/* This is for rules that don't yet have a home.
|
/* This is for rules that don't yet have a home.
|
||||||
* Our goal is to delete this file. Search the regex: /class=".*CLASS.*?"/
|
* Our goal is to delete this file. Search the regex: /class=".*CLASS.*?"/
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
6
www/views/includes/amount.html
Normal file
6
www/views/includes/amount.html
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<div class="amount">
|
||||||
|
<span class="start">{{start}}</span>
|
||||||
|
<span class="middle">{{middle}}</span>
|
||||||
|
<span class="end">{{end}}</span>
|
||||||
|
<span class="currency">{{currency}}</span>
|
||||||
|
</div>
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
</ion-nav-back-button>
|
</ion-nav-back-button>
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
|
|
||||||
<ion-content class="padded-bottom-cta bg-neutral"
|
<ion-content class="padded-bottom-cta-with-summary bg-neutral"
|
||||||
ng-init="memoExpanded = false">
|
ng-init="memoExpanded = false">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="content" translate>
|
<div class="content" translate>
|
||||||
|
|
@ -63,6 +63,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
|
<div class="fee-summary">
|
||||||
|
<div class="fee-fiat positive">Fee: Less than 1 cent</div>
|
||||||
|
<div class="fee-crypto"
|
||||||
|
ng-init="fee = {value: '0.00195823', currency: 'BCH'};">
|
||||||
|
<amount
|
||||||
|
value="fee.value"
|
||||||
|
currency="fee.currency"></amount>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<click-to-accept
|
<click-to-accept
|
||||||
ng-click="approve(tx, wallet, statusChangeHandler)"
|
ng-click="approve(tx, wallet, statusChangeHandler)"
|
||||||
ng-if="(!isCordova || isWindowsPhoneApp) && wallet"
|
ng-if="(!isCordova || isWindowsPhoneApp) && wallet"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue