Skip to content
Projects
Groups
Snippets
Help
Sign in / Register
Toggle navigation
Minds Frontend
Project overview
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
402
Merge Requests
67
CI / CD
Security & Compliance
Packages
Analytics
Wiki
Snippets
Members
Collapse sidebar
Close sidebar
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Minds
Minds Frontend
Commits
f640281d
Commit
f640281d
authored
6 hours ago
by
Olivia Madrid
Browse files
Options
Download
updated cash balance comp and cleaned up cash settings
parent
b94df65e
epic/wallet-80
1 merge request
!686
WIP: Epic/wallet 80
Pipeline
#117168567
failed with stages
in 6 minutes and 17 seconds
Changes
25
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
860 additions
and
471 deletions
+860
-471
src/app/common/components/phone-input-v2/country.component.ts
View file @
f640281d
...
...
@@ -154,6 +154,7 @@ export class PhoneInputCountryV2Component
const
chars
=
'
ABCDEFGHIJKLMNOPQRSTUVWXYZ
'
;
const
uppercaseKey
=
$event
.
key
.
toUpperCase
();
if
(
this
.
showDropdown
&&
chars
.
indexOf
(
uppercaseKey
))
{
this
.
lastKeyboardFocusMoment
=
moment
();
for
(
let
i
=
0
;
i
<
this
.
countries
.
length
;
++
i
)
{
if
(
this
.
countries
[
i
].
name
.
trim
()[
0
].
toUpperCase
()
===
uppercaseKey
)
{
this
.
applyFocus
(
i
);
...
...
This diff is collapsed.
src/app/modules/wallet/v2/balance-cash/balance-cash.component.html
View file @
f640281d
<div
class=
"m-walletBalance--cash"
*ngIf=
"
!inProgress
"
>
<div
class=
"m-walletBalance--cash"
*ngIf=
"
loaded
"
>
<div
class=
"m-walletTransactions__onboarding"
*ngIf=
"!hasAccount && !onSettingsTab"
...
...
@@ -9,9 +9,14 @@
<p>
Start receiving payouts by adding your bank details.
</p>
</div>
<div
*ngIf=
"!inProgress"
class=
"m-walletBalance--cash__colContainer"
>
<!-- ---PENDING BALANCE ------------------------------------------------- -->
<div
class=
"m-walletBalance--cash__col"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
Pending Balance
<m-tooltip
icon=
"help"
>
placeholder
</m-tooltip>
Pending Balance
<m-tooltip
icon=
"help"
>
TO DO: this is the total amount of wires and earnings that you will
receive. Add something about payout date being estimated. And might
take up to 7 days
</m-tooltip>
</div>
<div
class=
"m-walletBalance--cash__colValWrapper"
>
<span
class=
"m-walletBalance--cash__colVal--int"
>
{{
...
...
@@ -26,10 +31,18 @@
>
.{{ pendingBalance.frac }}
</span
>
</div>
<div
class=
"m-walletBalance--cash__colSubtitle"
>
<p>
Estimated Payout
</p>
<p>
{{ nextPayoutDate }}
</p>
</div>
</div>
<!-- ---TOTAL PAID OUT------------------------------------------------- -->
<div
class=
"m-walletBalance--cash__col"
*ngIf=
"hasAccount"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
Total Paid Out
<m-tooltip
icon=
"help"
>
placeholder
</m-tooltip>
Total Paid Out
<m-tooltip
icon=
"help"
>
The amount you've already received
</m-tooltip
>
</div>
<div
class=
"m-walletBalance--cash__colValWrapper"
>
...
...
@@ -43,14 +56,32 @@
>
</div>
</div>
<div
class=
"m-walletBalance--cash__col"
*ngIf=
"hasAccount"
>
<!-- ---PRO EARNINGS------------------------------------------------- -->
<div
class=
"m-walletBalance--cash__col"
*ngIf=
"isPro"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
Next Payout
<m-tooltip
icon=
"help"
>
placeholder
</m-tooltip>
Pro Earnings
<m-tooltip
icon=
"help"
>
At the end of each month, your Pro earnings will move into your
pending balance if you've reached the $100 threshold. When this
happens, your Pro earnings will be reset to zero. If you haven't
reached the threshold, your earnings will rollover to the next
month.
</m-tooltip
>
</div>
<div
class=
"m-walletBalance--cash__colValWrapper"
>
<span
class=
"m-walletBalance--cash__colVal--int"
>
{{
nextPayoutDate
}}
</span>
proEarnings.int | number: '1.0-0' | currency: 'USD' | slice: 0:-3
}}
</span
><span
class=
"m-walletBalance--cash__colVal--frac"
*ngIf=
"pendingBalance.frac"
>
.{{ proEarnings.frac }}
</span
>
</div>
<div
class=
"m-walletBalance--cash__colSubtitle"
>
<p>
Go to
<a
routerLink=
"/analytics/dashboard/earnings"
>
Pro Analytics
</a>
</p>
</div>
</div>
</div>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/balance-cash/balance-cash.component.scss
View file @
f640281d
...
...
@@ -6,7 +6,7 @@ m-walletBalance--cash {
font-size
:
15px
;
line-height
:
20px
;
@include
m-theme
()
{
color
:
themed
(
$m-
grey-300
);
color
:
themed
(
$m-
textColor--secondary
);
}
}
.m-walletBalance--cash__colContainer
{
...
...
@@ -17,6 +17,7 @@ m-walletBalance--cash {
.m-walletBalance--cash__colTitle
{
position
:
relative
;
margin-top
:
8px
;
m-tooltip
{
position
:
relative
;
margin-left
:
4px
;
...
...
@@ -34,45 +35,74 @@ m-walletBalance--cash {
.m-walletBalance--cash__colTitle
{
.m-tooltip--bubble
{
position
:
absolute
;
right
:
-24px
;
min-width
:
140px
;
right
:
-64px
;
}
}
}
.m-walletBalance--cash__col
{
max-width
:
200px
;
.m-walletBalance--cash__colTitle
{
font-size
:
16px
;
line-height
:
21px
;
min-width
:
78px
;
}
.m-walletBalance--cash__colVal--int
{
font-size
:
24px
;
line-height
:
32px
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
}
.m-walletBalance--cash__colVal--frac
{
font-size
:
17px
;
line-height
:
23px
;
}
.m-walletBalance--cash__colSubtitle
{
p
,
a
{
font-size
:
13px
;
line-height
:
15px
;
}
p
{
margin
:
8px
0
0
0
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
}
p
:first-child
{
margin-top
:
12px
;
}
a
{
margin-top
:
0
;
}
}
}
.m-walletBalance--cash__colTitle
{
min-width
:
78px
;
}
// .m-walletBalance--cash__colTitle {
// min-width: 78px;
// font-size: 16px;
// line-height: 21px;
// }
.m-walletBalance--cash__colValWrapper
{
font-size
:
13px
;
line-height
:
18px
;
font-weight
:
500
;
margin-top
:
8px
;
}
.m-walletBalance--cash__colVal--int
{
font-size
:
16px
;
line-height
:
21px
;
@include
m-theme
()
{
color
:
themed
(
$m-grey-800
);
}
}
.m-walletBalance--cash__colVal--frac
{
font-size
:
13px
;
line-height
:
18px
;
}
//
.m-walletBalance--cash__colVal--int {
//
font-size: 16px;
//
line-height: 21px;
//
@include m-theme() {
//
color: themed($m-grey-800);
//
}
//
}
//
.m-walletBalance--cash__colVal--frac {
//
font-size: 13px;
//
line-height: 18px;
//
}
a
{
display
:
inline-block
;
margin-top
:
14px
;
...
...
This diff is collapsed.
src/app/modules/wallet/v2/balance-cash/balance-cash.component.ts
View file @
f640281d
...
...
@@ -14,6 +14,7 @@ import { WalletDashboardService } from '../dashboard.service';
import
{
ActivatedRoute
,
ParamMap
}
from
'
@angular/router
'
;
import
*
as
moment
from
'
moment
'
;
import
{
Subscription
}
from
'
rxjs
'
;
import
{
ConfigsService
}
from
'
../../../../common/services/configs.service
'
;
@
Component
({
selector
:
'
m-walletBalance--cash
'
,
templateUrl
:
'
./balance-cash.component.html
'
,
...
...
@@ -21,14 +22,17 @@ import { Subscription } from 'rxjs';
})
export
class
WalletBalanceCashComponent
implements
OnInit
,
OnDestroy
{
inProgress
:
boolean
=
true
;
stripeA
ccount
;
a
ccount
;
hasAccount
:
boolean
=
true
;
isPro
:
boolean
=
false
;
pendingBalance
;
totalPaidOut
;
nextPayoutDate
=
''
;
proEarnings
;
onSettingsTab
:
boolean
=
false
;
currency
=
'
usd
'
;
paramsSubscription
:
Subscription
;
loaded
:
boolean
=
false
;
@
Output
()
scrollToCashSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
();
constructor
(
...
...
@@ -36,7 +40,8 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
protected
cd
:
ChangeDetectorRef
,
protected
session
:
Session
,
protected
walletService
:
WalletDashboardService
,
protected
route
:
ActivatedRoute
protected
route
:
ActivatedRoute
,
private
configs
:
ConfigsService
)
{}
ngOnInit
()
{
...
...
@@ -46,8 +51,14 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
this
.
detectChanges
();
}
);
// TOOOJM toggle
this
.
isPro
=
true
;
// this.isPro = this.configs.get('pro');
this
.
load
();
this
.
getProEarnings
();
// this.loaded = true;
this
.
detectChanges
();
}
ngOnDestroy
()
{
...
...
@@ -57,28 +68,28 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
}
async
load
()
{
// TODOOJM
$stripe - this is not accurate for all stripe account
s
// TODOOJM
confirm that mark has migrated all stripe accts to monthly interval
s
this
.
nextPayoutDate
=
moment
()
.
endOf
(
'
month
'
)
.
format
(
'
ddd Do MMM
'
);
this
.
stripeA
ccount
=
await
this
.
walletService
.
getStripeAccount
();
this
.
a
ccount
=
await
this
.
walletService
.
getStripeAccount
();
if
(
!
this
.
stripeAccount
||
!
this
.
stripeA
ccount
.
accountNumber
)
{
if
(
!
this
.
account
||
!
this
.
a
ccount
.
accountNumber
)
{
this
.
hasAccount
=
false
;
this
.
pendingBalance
=
this
.
formatBalance
(
0
);
this
.
totalPaidOut
=
this
.
formatBalance
(
0
);
}
else
{
this
.
pendingBalance
=
this
.
formatBalance
(
this
.
stripeA
ccount
.
pendingBalance
.
amount
/
100
this
.
a
ccount
.
pendingBalance
.
amount
/
100
);
if
(
this
.
stripeA
ccount
.
bankAccount
)
{
this
.
currency
=
this
.
stripeA
ccount
.
bankAccount
.
currency
.
toUpperCase
();
if
(
this
.
a
ccount
.
bankAccount
)
{
this
.
currency
=
this
.
a
ccount
.
bankAccount
.
currency
.
toUpperCase
();
}
let
totalPaidOutRaw
=
(
this
.
stripeA
ccount
.
totalBalance
.
amount
-
this
.
stripeA
ccount
.
pendingBalance
.
amount
)
/
(
this
.
a
ccount
.
totalBalance
.
amount
-
this
.
a
ccount
.
pendingBalance
.
amount
)
/
100
;
if
(
totalPaidOutRaw
<
0
)
{
...
...
@@ -92,7 +103,25 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
this
.
detectChanges
();
}
async
getProEarnings
()
{
this
.
inProgress
=
true
;
this
.
detectChanges
();
// try {
// const response: number = await this.walletService.getProEarnings();
// this.proEarnings = this.formatBalance(response);
// } catch (e) {
// console.error(e.message);
// this.proEarnings = this.formatBalance(0);
// }
this
.
proEarnings
=
this
.
formatBalance
(
123.4
);
this
.
inProgress
=
false
;
this
.
loaded
=
true
;
this
.
detectChanges
();
}
formatBalance
(
balance
)
{
console
.
log
(
balance
);
const
formattedBalance
=
{
total
:
balance
,
int
:
0
,
...
...
@@ -102,12 +131,15 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
return
formattedBalance
;
}
const
splitBalance
=
balance
.
toString
().
split
(
'
.
'
);
console
.
log
(
'
888 splitBal...
'
,
splitBalance
);
formattedBalance
.
int
=
splitBalance
[
0
];
console
.
log
(
'
888 int...
'
,
formattedBalance
);
if
(
splitBalance
[
1
])
{
const
frac
=
splitBalance
[
1
].
toString
();
formattedBalance
.
frac
=
frac
.
length
<
2
?
frac
.
concat
(
'
0
'
)
:
frac
;
console
.
log
(
'
888 frac...
'
,
formattedBalance
);
}
return
formattedBalance
;
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/balance-tokens/balance-tokens.component.ts
View file @
f640281d
...
...
@@ -7,6 +7,7 @@ import {
Input
,
Inject
,
PLATFORM_ID
,
ViewRef
,
}
from
'
@angular/core
'
;
import
{
isPlatformBrowser
}
from
'
@angular/common
'
;
import
{
Client
}
from
'
../../../../services/api/client
'
;
...
...
@@ -115,7 +116,9 @@ export class WalletBalanceTokensV2Component implements OnInit, OnDestroy {
}
detectChanges
()
{
this
.
cd
.
markForCheck
();
this
.
cd
.
detectChanges
();
if
(
!
(
this
.
cd
as
ViewRef
).
destroyed
)
{
this
.
cd
.
markForCheck
();
this
.
cd
.
detectChanges
();
}
}
}
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.component.scss
View file @
f640281d
...
...
@@ -101,15 +101,16 @@ m-walletDashboard {
display
:
block
;
flex
:
0
1
auto
;
margin
:
0
0
0
21px
;
min-width
:
105px
;
//
min-width: 105px;
box-sizing
:
border-box
;
.m-shadowboxSubmitButton
{
box-sizing
:
border-box
;
max-height
:
none
;
min-height
:
42px
;
height
:
42px
;
min-width
:
0
;
// height: 42px;
height
:
auto
;
min-width
:
105px
;
font-weight
:
300
;
padding
:
7px
15px
;
font-size
:
15px
;
...
...
@@ -121,6 +122,12 @@ m-walletDashboard {
}
}
.m-walletModal--confirmation
{
&
>
p
{
margin-top
:
none
;
}
}
// *******************************************************
// ** DASHBOARD - MEDIA QUERIES **************************
// *******************************************************
...
...
@@ -163,14 +170,21 @@ m-walletDashboard {
.m-walletForm__buttonsContainer
{
display
:
flex
;
flex-flow
:
row
wrap-reverse
;
justify-content
:
center
;
justify-content
:
space-evenly
;
margin-top
:
10px
;
m-shadowboxSubmitButton
{
margin-top
:
8px
;
}
}
.m-walletForm__nameFieldsContainer
{
display
:
flex
;
box-sizing
:
border-box
;
[
class
*=
'm-walletForm__field'
]
{
flex
:
1
0
50%
;
flex
:
1
0
auto
;
&
:first-child
{
margin-right
:
19px
;
}
}
}
[
class
*=
'm-walletForm__field'
]
{
...
...
@@ -281,6 +295,11 @@ m-walletDashboard {
.m-walletForm__fieldsContainer
{
flex
:
1
1
auto
;
}
.m-walletForm__error
p
{
@include
m-theme
()
{
color
:
themed
(
$m-alert
);
}
}
m-phoneInput
{
margin-bottom
:
0
;
...
...
@@ -289,6 +308,31 @@ m-walletDashboard {
min-width
:
240px
;
}
}
m-date__dropdowns
{
select
{
outline
:
none
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
border
:
1px
solid
themed
(
$m-borderColor--primary
);
box-shadow
:
0
1px
4px
0
rgba
(
themed
(
$m-black
)
,
0
.1
);
}
&
:focus
{
@include
m-theme
()
{
border
:
1px
solid
themed
(
$m-blue
);
}
}
}
}
m-formInput__checkbox
{
.m-formInput__checkbox
{
label
{
@include
m-walletText--14
();
}
}
}
//////////////////////////////////////////
@media
screen
and
(
max-width
:
500px
)
{
m-shadowboxSubmitButton
{
margin
:
21px
0
0
0
;
...
...
@@ -360,36 +404,6 @@ m-walletDashboard {
}
}
// input {
// outline: 0;
// font-size: 15px;
// line-height: 20px;
// font-weight: 300;
// width: 0;
// min-width: 0;
// padding: 10px 20px;
// border-radius: 2px;
// cursor: text;
// @include m-theme() {
// color: themed($m-textColor--primary);
// box-shadow: 0 1px 4px 0 rgba(themed($m-black), 0.1);
// border: 1px solid themed($m-borderColor--primary);
// }
// &:not(.m-phoneInput__input) {
// @include m-theme() {
// border: 1px solid themed($m-borderColor--primary);
// }
// }
// &:focus {
// &:not(:read-only) {
// @include m-theme() {
// border-color: themed($m-blue);
// }
// }
// }
// }
.m-walletSettingsView--addressCurrent
{
h2
{
margin-bottom
:
23px
;
...
...
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.service.ts
View file @
f640281d
...
...
@@ -419,6 +419,28 @@ export class WalletDashboardService {
return
fakeData
.
token_chart
;
}
async
getProEarnings
()
{
return
77.3
;
// try {
// const response = <any>(
// await this.client.post(
// 'api/v2/analytics/dashboards/earnings?metric=earnings_total×pan=today'
// )
// );
// const earnings =
// response.dashboard.metrics
// .find(m => m.id === 'earnings_total')
// .visualisation.segments[0].buckets.slice(-1)[0].value / 100;
// return earnings;
// } catch (e) {
// console.error(e);
// return e;
// }
}
async
getTokenTransactions
(
opts
)
{
try
{
// TODOOJM uncomment
...
...
This diff is collapsed.
src/app/modules/wallet/v2/fake-data.ts
View file @
f640281d
...
...
@@ -157,7 +157,15 @@ const fakeData = {
routingNumber
:
'
123455678
'
,
destination
:
'
bank
'
,
status
:
'
active
'
,
verified
:
true
,
// verified: true,
verified
:
false
,
////////////////
// bankAccount: null,
// requirement: 'external_account',
////////////////
// requirement:
// 'individual.verification.document.individual.verification.additional_documenttos_acceptance.individual.phoneexternal_accountidividual.id_number',
requirement
:
'
individual.verification.document
'
,
//t.individual.verification.additional_documenttos_acceptance.individual.phoneexternal_accountidividual.id_number',
bankAccount
:
{
id
:
'
qeorij_823_a0g7
'
,
object
:
'
bank_account
'
,
...
...
@@ -177,7 +185,6 @@ const fakeData = {
payoutInterval
:
'
daily
'
,
payoutDelay
:
2
,
payoutAnchor
:
null
,
requirement
:
null
,
totalBalance
:
{
amount
:
1100
,
currency
:
'
gbp
'
,
...
...
This diff is collapsed.
src/app/modules/wallet/v2/phone-verification/phone-verification.component.html
View file @
f640281d
...
...
@@ -11,9 +11,8 @@
To start earning rewards, you will need to enter a unique phone number.
</p>
</div>
<!-- TODOOJM: ensure the three options to trigger onSubmit() don't double-trigger the fx -->
<!-- <form [formGroup]="form" (ngSubmit)="onSubmit()" (keyup.enter)="onSubmit()"> -->
<form
[formGroup]=
"form"
>
<!-- TODOOJM: check on the enter key behavior -->
<form
[formGroup]=
"form"
(keyup.enter)=
"onSubmit()"
>
<div
class=
"m-walletForm__wrapper"
>
<div
class=
"m-walletForm__fieldsContainer"
>
<div
class=
"m-walletForm__field--text stretchedField"
*ngIf=
"!confirming"
>
...
...
@@ -21,8 +20,10 @@
<label
for=
"number"
i18n
>
Mobile Phone Number
</label>
<m-tooltip
icon=
"help"
>
<ng-container
i18n
>
Your mobile number is used for unique identification. It is is
private and encrypted.
</ng-container
>
Minds will not store the number you provide. It will be hashed
using SHA-256 and combined with a salt key for privacy and unique
identification purposes. VOIP numbers are not
allowed.
</ng-container
>
</m-tooltip>
</div>
...
...
@@ -84,11 +85,6 @@
</div>
</form>
<div
class=
"m-walletModal__footnote--privacy"
*ngIf=
"!confirming"
>
Note: Minds does not store the phone numbers you provide. The numbers are
hashed using SHA-256 and combined with a salt key for privacy and security
purposes.
</div>
<div
class=
"m-walletModal__footnote--formStatus"
*ngIf=
"confirming"
>
<div
class=
"m-walletPhoneVerification__formStatusCodeSent"
>
Verification code sent to +{{ form.value.number }}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/phone-verification/phone-verification.component.scss
View file @
f640281d
m-walletPhoneVerification
{
.m-walletModal__footnote--privacy
{
margin-top
:
10px
;
font-size
:
13px
;
line-height
:
18px
;
}
.m-walletModal__footnote--formStatus
{
.m-walletModal__footnote
{
.m-walletPhoneVerification__formStatusCodeSent
{
margin-bottom
:
6px
;
@include
m-theme
()
{
...
...
@@ -34,6 +29,7 @@ m-walletPhoneVerification {
.m-walletForm__row--label
m-tooltip
{
.m-tooltip--bubble
{
right
:
12px
;
width
:
174px
;
}
}
[
class
*=
'm-walletForm__row'
]
{
...
...
This diff is collapsed.
src/app/modules/wallet/v2/phone-verification/phone-verification.component.ts
View file @
f640281d
...
...
@@ -69,14 +69,11 @@ export class WalletPhoneVerificationComponent implements OnInit {
this
.
inProgress
=
true
;
this
.
detectChanges
();
try
{
const
response
:
any
=
await
this
.
client
.
post
(
'
api/v2/blockchain/rewards/confirm
'
,
{
number
:
this
.
form
.
value
.
number
,
code
:
this
.
form
.
value
.
code
,
secret
:
this
.
form
.
value
.
secret
,
}
);
await
this
.
client
.
post
(
'
api/v2/blockchain/rewards/confirm
'
,
{
number
:
this
.
form
.
value
.
number
,
code
:
this
.
form
.
value
.
code
,
secret
:
this
.
form
.
value
.
secret
,
});
this
.
phoneVerificationComplete
.
emit
();
}
catch
(
e
)
{
this
.
invalidCode
=
true
;
...
...
@@ -95,7 +92,9 @@ export class WalletPhoneVerificationComponent implements OnInit {
this
.
detectChanges
();
}
onSubmit
()
{
this
.
confirming
?
this
.
confirmCode
()
:
this
.
validateNumber
();
if
(
!
this
.
inProgress
)
{
this
.
confirming
?
this
.
confirmCode
()
:
this
.
validateNumber
();
}
}
detectChanges
()
{
this
.
cd
.
markForCheck
();
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-btc/settings-btc.component.html
View file @
f640281d
...
...
@@ -31,7 +31,11 @@
<div
class=
"m-walletForm__row--label"
>
<label
for=
"addressInput"
i18n
>
Bitcoin Address
</label>
<m-tooltip
icon=
"help"
>
<ng-container
i18n
>
Placeholder
</ng-container>
<ng-container
i18n
>
Enter the public address from your own Bitcoin wallet which
will be used to receive Bitcoin payments on Minds. Minds does
not store your Bitcoin.
</ng-container
>
</m-tooltip>
</div>
<div
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/bank-form/bank-form.component.html
View file @
f640281d
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
*ngIf=
"!loaded"
></div>
<div
class=
"m-walletBankForm"
*ngIf=
"loaded"
>
<div
class=
"m-walletBankForm"
*ngIf=
"account"
>
<!-- HAS NOT SET UP BANK ACCOUNT / IS UPDATING BANK ACCOUNT ------------------ -->
<ng-container
*ngIf=
"!leftMonetization"
>
<form
[formGroup]=
"bankForm"
*ngIf=
"!account.bankAccount || !account.bankAccount.last4 || editing"
>
<form
[formGroup]=
"form"
*ngIf=
"!hasBankAccount() || editing"
>
<p>
Enter bank account details to receive payments.
</p>
<!-- ***INPUT
BANK
COUNTRY DROPDOWN-->
<div
class=
"m-walletForm__field--text stretchedField"
*ngIf=
"editingBank"
>
<!-- ***INPUT COUNTRY DROPDOWN-->
<div
class=
"m-walletForm__field--text stretchedField"
>
<div
class=
"m-walletSettings__row--label"
>
<label
for=
"
bankC
ountry"
i18n
>
Country
</label>
<label
for=
"
c
ountry"
i18n
>
Country
</label>
</div>
<div
class=
"m-walletForm__row--input"
>
<minds-country-input
type=
"text"
id=
"bankCountry"
name=
"bankCountry"
formControlName=
"bankCountry"
id=
"country"
name=
"country"
class=
"form-control"
data-minds=
"
bankC
ountry"
data-minds=
"
c
ountry"
[allowed]=
"allowedCountries"
[country]=
"
bankC
ountry.value"
(countryChange)=
"
bankC
ountry.setValue($event)"
[country]=
"
c
ountry.value"
(countryChange)=
"
c
ountry.setValue($event)"
></minds-country-input>
<!-- <m-countryInput
type="text"
id="
bankC
ountry"
name="
bankC
ountry"
formControlName="
bankC
ountry"
id="
c
ountry"
name="
c
ountry"
formControlName="
c
ountry"
class="form-control"
data-minds="
bankC
ountry"
data-minds="
c
ountry"
[allowedCountries]="allowedCountries"
[initCountryCode]="
bankC
ountry.value"
(countryChange)="
bankC
ountry.setValue($event)"
[initCountryCode]="
c
ountry.value"
(countryChange)="
c
ountry.setValue($event)"
></m-countryInput > -->
</div>
</div>
...
...
@@ -71,55 +66,59 @@
/>
</div>
</div>
<!-- ERROR -------------- -->
<div
class=
"m-walletForm__error"
>
<p>
{{ error }}
</p>
</div>
<!-- FORM BUTTONS -------------- -->
<div
class=
"m-walletForm__buttonsContainer"
>
<!-- TODOOJM consider a confirmation popup on cancel -->
<m-shadowboxSubmitButton
(click)=
"showModal = true; modalContent = 'leaveEditMode'"
[disabled]=
"inProgress"
color=
"grey"
>
Cancel
</m-shadowboxSubmitButton
>
<m-shadowboxSubmitButton
(click)=
"createAccount()"
[disabled]=
"inProgress"
>
Update Personal Information
</m-shadowboxSubmitButton
<m-shadowboxSubmitButton
(click)=
"addBank()"
[disabled]=
"inProgress"
>
Add Bank Account
</m-shadowboxSubmitButton
>
</div>
</form>
<!-- BANK ACCOUNT IS ALREADY SET UP ------------------ -->
<div
class=
"m-walletSettingsView--accountSplash"
*ngIf=
"account.bankAccount.last4"
>
<p>
Your bank account details where cash rewards are deposited.
</p>
<div
class=
"m-walletSettingsView--accountSplash__bankPreviewWrapper"
>
<span>
{{ account.bankAccount.bank_name }}
</span>
<span>
****{{ account.bankAccount.last4 }}
</span>
</div>
<div
class=
"m-walletSettingsView--accountSplash__linkContainer"
>
<a
(click)=
"enterEditMode()"
>
Update
</a>
<a
(click)=
"showModal = true; modalContent = 'removeBank'"
>
Remove
</a>
<ng-container
*ngIf=
"hasBankAccount() && !editing"
>
<div
class=
"m-walletSettingsView--hasAccount__accountSummary"
>
<p>
Your bank account where cash rewards are deposited.
</p>
<div
class=
"m-walletSettingsView--hasAccount__detailsWrapper"
>
<div
class=
"m-walletSettingsView--hasAccount__bankWrapper"
>
<span>
{{ account.bankAccount.bank_name }}
</span>
<span>
****{{ account.bankAccount.last4 }}
</span>
</div>
<div
class=
"m-walletSettingsView--hasAccount__linksContainer"
>
<a
(click)=
"enterEditMode()"
>
Update
</a>
<a
(click)=
"showModal = true; modalContent = 'removeBank'"
>
Remove
</a
>
</div>
</div>
</div>
</div>
<div>
<h4>
Leave Monetization Program
</h4>
<p>
For security reasons, you won't be able to rejoin the monetization
program.
</p>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"showModal = true; modalContent = 'leaveMonetization'"
>
Leave Monetization Program
</m-shadowboxSubmitButton
>
</div>
<div
class=
"m-walletSettingsView--hasAccount__leaveMonetization"
>
<h4>
Leave Monetization Program
</h4>
<p>
For security reasons, you won't be able to rejoin the monetization
program.
</p>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"showModal = true; modalContent = 'leaveMonetization'"
>
Leave Monetization Program
</m-shadowboxSubmitButton
>
</div>
</ng-container>
<!-- CONFIRMATION MODAL: LEAVE EDIT MODE -------------------- -->
<m-walletModal
class=
"m-walletModal--confirmation"
[showModal]=
"showModal && modalContent === 'leaveEditMode'"
(closeModal)=
"showModal = false"
>
...
...
@@ -128,39 +127,45 @@
be lost.
</p>
<div
class=
"m-wallet
Settings--cash__leaveModalButtons
"
>
<div
class=
"m-wallet
Form__buttonsContainer
"
>
<m-shadowboxSubmitButton
color=
"grey"
(click)=
"showModal = false"
>
Cancel
</m-shadowboxSubmitButton
>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"leaveEditMode()"
<m-shadowboxSubmitButton
color=
"red"
(click)=
"leaveEditMode()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
I'm sure
</m-shadowboxSubmitButton
>
</div>
</m-walletModal>
<!-- CONFIRMATION MODAL: LEAVE MONETIZATION -------------------- -->
<m-walletModal
class=
"m-walletModal--confirmation"
[showModal]=
"showModal && modalContent === 'leaveMonetization'"
(closeModal)=
"showModal = false"
>
<p
*ngIf=
"modalContent === 'leaveMonetization'"
>
<p>
Are you sure you want to leave the monetization program? You won't be
able to rejoin again.
</p>
<p
*ngIf=
"modalContent === 'removeBank'"
>
Are you sure you want to remove your bank account information? You won't
be able to receive payments until you add another one.
</p>
<div
class=
"m-walletSettings--cash__leaveModalButtons"
>
<div
class=
"m-walletForm__buttonsContainer"
>
<m-shadowboxSubmitButton
color=
"grey"
(click)=
"showModal = false"
>
Cancel
</m-shadowboxSubmitButton
>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"leaveMonetization()"
<m-shadowboxSubmitButton
color=
"red"
(click)=
"leaveMonetization()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
I'm sure
</m-shadowboxSubmitButton
>
</div>
</m-walletModal>
<!-- CONFIRMATION MODAL: REMOVE BANK -------------------- -->
<m-walletModal
class=
"m-walletModal--confirmation"
[showModal]=
"showModal && modalContent === 'removeBank'"
(closeModal)=
"showModal = false"
>
...
...
@@ -168,11 +173,15 @@
Are you sure you want to remove your bank account information? You won't
be able to receive payments until you add another one.
</p>
<div
class=
"m-wallet
Settings--cash__leaveModalButtons
"
>
<div
class=
"m-wallet
Form__buttonsContainer
"
>
<m-shadowboxSubmitButton
color=
"grey"
(click)=
"showModal = false"
>
Cancel
</m-shadowboxSubmitButton
>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"removeBank()"
<m-shadowboxSubmitButton
color=
"red"
(click)=
"removeBank()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
I'm sure
</m-shadowboxSubmitButton
>
</div>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/bank-form/bank-form.component.ts
View file @
f640281d
import
{
Component
,
OnInit
,
Input
,
ChangeDetectorRef
}
from
'
@angular/core
'
;
import
{
Component
,
OnInit
,
Input
,
ChangeDetectorRef
,
Output
,
EventEmitter
,
}
from
'
@angular/core
'
;
import
{
FormBuilder
,
Validators
}
from
'
@angular/forms
'
;
import
{
requiredFor
,
optionalFor
}
from
'
./../settings-cash.validators
'
;
import
{
WalletDashboardService
}
from
'
../../dashboard.service
'
;
...
...
@@ -12,10 +19,11 @@ import localLabels from './local-labels';
})
export
class
WalletBankFormComponent
implements
OnInit
{
@
Input
()
allowedCountries
:
string
[];
account
;
@
Input
()
account
;
@
Output
()
submitted
:
EventEmitter
<
any
>
=
new
EventEmitter
();
form
;
error
:
string
=
''
;
loaded
:
boolean
=
false
;
inProgress
:
boolean
=
false
;
editing
:
boolean
=
false
;
showModal
:
boolean
=
false
;
...
...
@@ -33,34 +41,40 @@ export class WalletBankFormComponent implements OnInit {
)
{}
ngOnInit
()
{
// if (!this.account) {
// this.submitted.emit();
// // this.detectChanges();
// return;
// }
this
.
form
=
this
.
fb
.
group
({
country
:
[
''
,
Validators
.
required
],
accountNumber
:
[
''
,
Validators
.
required
],
routingNumber
:
[
''
,
requiredFor
([
'
US
'
])],
});
this
.
getAccount
();
}
async
getAccount
()
{
this
.
inProgress
=
true
;
this
.
detectChanges
();
this
.
walletService
.
getStripeAccount
()
.
then
((
account
:
any
)
=>
{
this
.
account
=
account
;
this
.
initCountry
=
account
.
bankAccount
.
country
||
account
.
country
;
this
.
country
.
patchValue
(
this
.
initCountry
);
this
.
country
.
setValue
(
account
.
country
);
})
.
catch
(
e
=>
{
this
.
formToastService
.
error
(
e
.
message
);
});
this
.
loaded
=
true
;
this
.
inProgress
=
false
;
this
.
initCountry
=
this
.
hasBankAccount
?
this
.
account
.
bankAccount
.
country
:
this
.
account
.
country
;
this
.
country
.
patchValue
(
this
.
initCountry
);
this
.
detectChanges
();
}
// async getAccount() {
// this.inProgress = true;
// this.detectChanges();
// this.walletService
// .getStripeAccount()
// .then((account: any) => {
// this.account = account;
// this.initCountry = account.bankAccount.country || account.country;
// this.country.patchValue(this.initCountry);
// })
// .catch(e => {
// this.formToastService.error(e.message);
// });
// this.inProgress = false;
// this.detectChanges();
// }
async
removeBank
()
{
this
.
inProgress
=
true
;
this
.
detectChanges
();
...
...
@@ -68,57 +82,56 @@ export class WalletBankFormComponent implements OnInit {
this
.
walletService
.
removeStripeBank
()
.
then
((
response
:
any
)
=>
{
this
.
inProgress
=
false
;
this
.
formToastService
.
success
(
'
Your bank account was successfully removed.
'
);
this
.
getAccount
();
})
.
catch
(
e
=>
{
this
.
inProgress
=
false
;
this
.
formToastService
.
error
(
e
.
message
);
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
if
(
!
this
.
error
)
{
this
.
submitted
.
emit
();
}
}
async
leaveMonetization
()
{
this
.
showModal
=
false
;
this
.
inProgress
=
true
;
this
.
detectChanges
();
this
.
walletService
.
leaveMonetization
()
.
then
((
response
:
any
)
=>
{
this
.
configs
.
set
(
'
merchant
'
,
[]);
// this.getAccount();
this
.
leftMonetization
=
true
;
})
.
catch
(
e
=>
{
this
.
formToastService
.
error
(
e
.
message
);
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
async
addBank
()
{
this
.
error
=
''
;
this
.
walletService
.
addStripeBank
(
this
.
form
.
value
)
.
then
((
response
:
any
)
=>
{
this
.
editing
=
false
;
const
toasterMessage
=
this
.
isMonetized
()
?
'
Your bank account has been successfully updated
'
:
'
Your request to join the monetization program has been submitted
'
;
const
toasterMessage
=
'
Your bank account has been successfully added
'
;
this
.
formToastService
.
success
(
toasterMessage
);
this
.
getAccount
();
// if(filling out form for the first time){
// emit 'pending' to parent
// } else emit 'hasAccount' to parent
})
.
catch
(
e
=>
{
//
this.error = e.message;
// todoojm - error handling
//
TODO backend should include e.param and handle errors inline
this
.
error
=
e
.
message
;
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
if
(
!
this
.
error
)
{
this
.
submitted
.
emit
();
}
}
enterEditMode
()
{
...
...
@@ -135,6 +148,13 @@ export class WalletBankFormComponent implements OnInit {
this
.
detectChanges
();
}
hasBankAccount
()
{
if
(
this
.
account
.
requirement
)
{
return
this
.
account
.
requirement
.
indexOf
(
'
external_account
'
)
===
-
1
;
}
else
{
return
true
;
}
}
isCountry
(
countries
:
string
[])
{
return
countries
.
indexOf
(
this
.
country
.
value
)
>
-
1
;
}
...
...
@@ -144,14 +164,6 @@ export class WalletBankFormComponent implements OnInit {
this
.
cd
.
detectChanges
();
}
isMonetized
()
{
// TODOOJM uncomment after form is done
// if (this.user && this.user.merchant.id) {
// return true;
// }
return
false
;
}
get
accountNumber
()
{
return
this
.
form
.
get
(
'
accountNumber
'
);
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding-extras/cash-onboarding-extras.component.html
View file @
f640281d
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
*ngIf=
"!loaded"
></div>
<div
class=
"m-walletOnboardingExtrasForm"
*ngIf=
"loaded"
>
<p>
You are required to provide additional information so we can verify your
identity in order to receive payouts.
<ng-container
*ngIf=
"
account.requirement.indexOf('individual.verification.document') > -1
"
<div
class=
"m-walletOnboardingExtrasForm"
*ngIf=
"account"
>
<!-- TODOOJM sketchy *ngIf for pending notice. -->
<!-- <p *ngIf="!account.verified">
Your account is pending verification. Verification status updates will be
sent in your notifications.
</p> -->
<!-- <p></p> -->
<!-- **** INPUT: PHOTO ID -->
<!-- <ng-container
*ngIf="account.requirement.indexOf('individual.verification.document') > -1"
>
<b (click)="file.click()">Upload Photo ID</b>
<br />
<br />
<button (click)="file.click()" class="m-btn m-btn--action m-btn--slim">
<ng-container *ngIf="!inProgress">Select & Upload</ng-container>
<ng-container *ngIf="inProgress">Uploading...</ng-container>
</button>
<input
type="file"
#file
name="file"
(change)="uploadDocument(file, 'document')"
accept="image/*"
style="display: none;"
/>
</ng-container> -->
<ng-container
*ngIf=
"account.requirement.indexOf('individual.verification.document') > -1"
>
<div
class=
"m-walletForm__field--text"
>
<div
class=
"m-walletForm__row--label"
>
<label
for=
"photoId"
i18n
>
Photo ID
</label>
</div>
<div
class=
"m-walletSettings__row--input"
>
<input
type=
"file"
#file
name=
"photoId"
(change)=
"uploadDocument(file, 'document')"
accept=
"image/*"
style=
"display: none;"
/>
</div>
</div>
<m-shadowboxSubmitButton
(click)=
"file.click()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Select
&
Upload
</m-shadowboxSubmitButton
>
<b
(click)=
"file.click()"
>
Upload Photo ID
</b>
<br
/>
<br
/>
<button
(click)=
"file.click()"
class=
"m-btn m-btn--action m-btn--slim"
>
<ng-container
*ngIf=
"!inProgress"
>
Select
&
Upload
</ng-container>
<ng-container
*ngIf=
"inProgress"
>
Uploading...
</ng-container>
</button>
<input
type=
"file"
#file
name=
"file"
(change)=
"uploadDocument(file, 'document')"
accept=
"image/*"
style=
"display: none;"
/>
</ng-container>
<ng-container
*ngIf=
"
account.requirement.indexOf(
'individual.verification.additional_document'
) > -1
"
</ng-container>
<!-- **** INPUT: PROOF OF ADDRESS -->
<ng-container
*ngIf=
"
account.requirement.indexOf(
'individual.verification.additional_document'
) > -1
"
>
<div
class=
"m-walletForm__field--text"
>
<div
class=
"m-walletForm__row--label"
>
<label
for=
"proofOfAddress"
i18n
>
Proof of Address
</label>
</div>
<div
class=
"m-walletSettings__row--input"
>
<input
type=
"file"
#file
name=
"proofOfAddress"
(change)=
"uploadDocument(file, 'additional_document')"
accept=
"image/*"
style=
"display: none;"
/>
</div>
</div>
<m-shadowboxSubmitButton
(click)=
"file.click()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Select
&
Upload
</m-shadowboxSubmitButton
>
<b
(click)=
"file.click()"
>
Upload a document with proof of address
</b>
<br
/>
<br
/>
<button
(click)=
"file.click()"
class=
"m-btn m-btn--action m-btn--slim"
>
<ng-container
*ngIf=
"!inProgress"
>
Select
&
Upload
</ng-container>
<ng-container
*ngIf=
"inProgress"
>
Uploading...
</ng-container>
</button>
<input
type=
"file"
#file
name=
"file"
(change)=
"uploadDocument(file, 'additional_document')"
accept=
"image/*"
style=
"display: none;"
/>
</ng-container>
<ng-container
*ngIf=
"account.requirement.indexOf('tos_acceptance.') > -1"
>
<b>
Accept the
<a
href=
"https://stripe.com/legal"
target=
"_blank"
>
Stripe Services Agreement
</a>
</b>
<br
/>
<br
/>
<button
(click)=
"acceptTos()"
class=
"m-btn m-btn--action m-btn--slim"
>
<ng-container
*ngIf=
"!inProgress"
>
Accept Terms
</ng-container>
<ng-container
*ngIf=
"inProgress"
>
Accepting...
</ng-container>
</button>
</ng-container>
<ng-container
*ngIf=
"account.requirement.indexOf('individual.phone') > -1"
>
<b>
Provide a phone number
</b>
<br
/>
<m-phone-input
#phone
></m-phone-input>
<br
/>
<button
(click)=
"updateField('phone', phone.value)"
class=
"m-btn m-btn--action m-btn--slim"
>
<ng-container
*ngIf=
"!inProgress"
>
Save
</ng-container>
<ng-container
*ngIf=
"inProgress"
>
Saving...
</ng-container>
</button>
</ng-container>
<ng-container
*ngIf=
"account.requirement.indexOf('external_account') > -1"
>
<b>
Complete the payout method step below
</b>
</ng-container>
<ng-container
*ngIf=
"account.requirement.indexOf('individual.id_number') > -1"
</ng-container>
<!-- <ng-container
*ngIf="
account.requirement.indexOf(
'individual.verification.additional_document'
) > -1
"
>
<b (click)="file.click()">Upload a document with proof of address</b>
<br />
<br />
<button (click)="file.click()" class="m-btn m-btn--action m-btn--slim">
<ng-container *ngIf="!inProgress">Select & Upload</ng-container>
<ng-container *ngIf="inProgress">Uploading...</ng-container>
</button>
<input
type="file"
#file
name="file"
(change)="uploadDocument(file, 'additional_document')"
accept="image/*"
style="display: none;"
/>
</ng-container> -->
<!-- **** INPUT: TOS CHECKBOX -->
<ng-container
*ngIf=
"account.requirement.indexOf('tos_acceptance.') > -1"
>
<div
class=
"m-walletForm__field--checkbox"
>
<div
class=
"m-walletSettings__row--input"
>
<m-formInput
__checkbox
formControlName=
"stripeAgree"
>
I have read and agree to the
<a
href=
"https://stripe.com/legal"
target=
"_blank"
>
Stripe Services Agreement
</a>
</m-formInput
__checkbox
>
</div>
</div>
<m-shadowboxSubmitButton
(click)=
"acceptTos()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Save
</m-shadowboxSubmitButton
>
<b
>
Provide your Personal ID / Social Security Number (SSN) / National
Insurance Number
</b
>
<br
/>
<input
class=
"m-input m-revenueOptions__input"
#personalId
placeholder=
"Personal Id"
/>
<br
/>
<button
(click)=
"updateField('id_number', personalId.value)"
class=
"m-btn m-btn--action m-btn--slim"
>
<ng-container
*ngIf=
"!inProgress"
>
Save
</ng-container>
<ng-container
*ngIf=
"inProgress"
>
Saving...
</ng-container>
</button>
</ng-container>
</p>
</ng-container>
<!-- **** INPUT: PHONE NUMBER -->
<ng-container
*ngIf=
"account.requirement.indexOf('individual.phone') > -1"
>
<div
class=
"m-walletForm__field--text"
>
<div
class=
"m-walletForm__row--label"
>
<label
for=
"phoneNumber"
i18n
>
Phone Number
</label>
</div>
<div
class=
"m-walletForm__row--input"
>
<m-phoneInput
#phone
id=
"phoneNumber"
name=
"phoneNumber"
class=
"form-control"
data-minds=
"phoneNumber"
initCountryCode=
"account.country"
[allowedCountries]=
"allowedCountries"
>
</m-phoneInput>
</div>
</div>
<m-shadowboxSubmitButton
(click)=
"updateField('phone', phone.value)"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Save
</m-shadowboxSubmitButton
>
</ng-container>
<!-- **** INPUT: PERSONAL ID -->
<ng-container
*ngIf=
"account.requirement.indexOf('individual.id_number') > -1"
>
<div
class=
"m-walletForm__field--text"
>
<div
class=
"m-walletForm__row--label"
>
<label
for=
"personalId"
i18n
>
Personal ID / Social Security Number (SSN) / National Insurance
Number
</label
>
</div>
<div
class=
"m-walletForm__row--input"
>
<input
#personalId
id=
"personalId"
name=
"personalId"
class=
"form-control"
data-minds=
"personalId"
/>
</div>
</div>
<m-shadowboxSubmitButton
(click)=
"updateField('id_number', personalId.value)"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Save
</m-shadowboxSubmitButton
>
</ng-container>
</div>
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding-extras/cash-onboarding-extras.component.scss
View file @
f640281d
.m-revenue--options
{
margin
:
auto
;
@include
m-theme
()
{
background-color
:
themed
(
$m-white
);
}
.m-revenue--options-payout-method
{
width
:
100%
;
padding
:
16px
;
box-sizing
:
border-box
;
h3
{
margin
:
0
;
text-transform
:
uppercase
;
letter-spacing
:
2px
;
font-size
:
24px
;
}
}
.m-revenueOptions__input
{
margin
:
16px
0
;
width
:
300px
;
border-radius
:
36px
;
}
.m-revenue--options-payout-method-bank
{
p
{
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
margin
:
0
;
}
.m-revenue--options-payout-method-bank-account
{
display
:
flex
;
align-items
:
center
;
padding
:
16px
;
border-radius
:
3px
;
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
letter-spacing
:
1px
;
margin
:
16px
0
;
@include
m-theme
()
{
border
:
1px
solid
themed
(
$m-grey-100
);
}
.m-revenue--options-payout-method-bank--name
{
font-weight
:
600
;
padding-right
:
38px
;
}
.m-revenue--options-payout-method-bank--number
{
letter-spacing
:
6px
;
flex
:
2
;
}
.m-revenue--options-payout-method-bank--actions
{
text-align
:
right
;
text-transform
:
uppercase
;
font-weight
:
300
;
font-size
:
14px
;
cursor
:
pointer
;
@include
m-theme
()
{
color
:
themed
(
$m-grey-200
);
}
}
}
}
.m-revenue--options-payout-method-setup
{
p
{
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
}
form
{
label
{
text-transform
:
uppercase
;
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
letter-spacing
:
1px
;
word-spacing
:
4px
;
}
input
{
width
:
100%
;
margin
:
16px
0
;
padding
:
8px
;
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
font-size
:
16px
;
}
minds-country-input
{
width
:
100%
;
display
:
block
;
margin
:
16px
0
;
select
{
font-size
:
16px
;
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
font-weight
:
300
;
@include
m-theme
()
{
color
:
themed
(
$m-grey-400
);
}
}
}
}
}
.m-error
{
padding
:
16px
;
letter-spacing
:
2px
;
font-size
:
14px
;
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
font-weight
:
300
;
margin
:
16px
0
;
border-radius
:
2px
;
}
.m-revenue--options-cancel
,
.m-revenue--options-requirements
{
margin-top
:
32px
;
&
.m-revenue--options-requirements
{
margin-top
:
0
;
}
padding
:
16px
;
h3
{
margin
:
0
;
text-transform
:
uppercase
;
letter-spacing
:
2px
;
font-size
:
24px
;
}
p
{
font-family
:
'Roboto'
,
Helvetica
,
sans-serif
;
//margin:0;
}
button
{
width
:
200px
;
}
}
}
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding-extras/cash-onboarding-extras.component.ts
View file @
f640281d
...
...
@@ -2,8 +2,14 @@
// from certain countries/regions (e.g. Australia, NZ, Europe)
// before their accounts can be verified
import
{
Component
,
OnInit
,
ChangeDetectorRef
,
Input
}
from
'
@angular/core
'
;
import
{
ActivatedRoute
,
Router
}
from
'
@angular/router
'
;
import
{
Component
,
OnInit
,
ChangeDetectorRef
,
Input
,
Output
,
EventEmitter
,
}
from
'
@angular/core
'
;
import
{
WalletDashboardService
}
from
'
../../dashboard.service
'
;
import
{
Client
,
Upload
}
from
'
../../../../../services/api
'
;
...
...
@@ -13,9 +19,10 @@ import { Client, Upload } from '../../../../../services/api';
templateUrl
:
'
./cash-onboarding-extras.component.html
'
,
})
export
class
WalletCashOnboardingExtrasComponent
implements
OnInit
{
loaded
:
boolean
=
false
;
inProgress
:
boolean
=
true
;
account
;
@
Input
()
account
;
@
Input
()
allowedCountries
:
string
[];
@
Output
()
submitted
:
EventEmitter
<
any
>
=
new
EventEmitter
();
inProgress
:
boolean
;
error
:
string
=
''
;
constructor
(
protected
walletService
:
WalletDashboardService
,
...
...
@@ -25,25 +32,10 @@ export class WalletCashOnboardingExtrasComponent implements OnInit {
)
{}
ngOnInit
()
{
this
.
getAccount
();
}
async
getAccount
()
{
this
.
error
=
''
;
this
.
inProgress
=
true
;
this
.
detectChanges
();
this
.
walletService
.
getStripeAccount
()
.
then
((
account
:
any
)
=>
{
this
.
account
=
account
;
})
.
catch
(
e
=>
{
this
.
error
=
e
.
message
;
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
// if (!this.account) {
// this.submitted.emit();
// // this.detectChanges();
// }
}
async
uploadDocument
(
fileInput
:
HTMLInputElement
,
documentType
:
string
)
{
...
...
@@ -55,8 +47,8 @@ export class WalletCashOnboardingExtrasComponent implements OnInit {
[
file
]
);
this
.
inProgress
=
false
;
this
.
account
=
null
;
this
.
getAccoun
t
();
this
.
detectChanges
()
;
this
.
submitted
.
emi
t
();
}
async
updateField
(
fieldName
:
string
,
value
:
string
)
{
...
...
@@ -66,8 +58,8 @@ export class WalletCashOnboardingExtrasComponent implements OnInit {
body
[
fieldName
]
=
value
;
await
this
.
client
.
post
(
'
api/v2/payments/stripe/connect/update
'
,
body
);
this
.
inProgress
=
false
;
this
.
account
=
null
;
this
.
getAccoun
t
();
this
.
detectChanges
()
;
this
.
submitted
.
emi
t
();
}
async
acceptTos
()
{
...
...
@@ -75,8 +67,8 @@ export class WalletCashOnboardingExtrasComponent implements OnInit {
this
.
detectChanges
();
await
this
.
client
.
put
(
'
api/v2/payments/stripe/connect/terms
'
);
this
.
inProgress
=
false
;
this
.
account
=
null
;
this
.
getAccoun
t
();
this
.
detectChanges
()
;
this
.
submitted
.
emi
t
();
}
detectChanges
()
{
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding/cash-onboarding.component.html
View file @
f640281d
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
*ngIf=
"!loaded"
></div>
<div
class=
"m-walletCashOnboarding"
*ngIf=
"loaded"
>
<div
class=
"m-walletCashOnboarding"
>
<div
class=
"m-walletCashOnboardingView--addDetails"
*ngIf=
"!editing"
>
<m-shadowboxSubmitButton
(click)=
"toggleEditMode(true)"
[disabled]=
"inProgress"
<p>
Add your bank account details where cash rewards will be deposited.
</p>
<m-shadowboxSubmitButton
(click)=
"enterEditMode()"
color=
"grey"
>
Set up cash payments
</m-shadowboxSubmitButton
>
</div>
<div
class=
"m-walletCashOnboardingView--form"
*ngIf=
"editing"
>
<form
[formGroup]=
"
accountForm"
*ngIf=
"!isMonetized() && editingAccount
"
>
<form
[formGroup]=
"
form
"
>
<p>
Enter personal details to setup your cash payment account.
</p>
<!-- ------------------------------------------------------------ -->
...
...
@@ -23,7 +21,6 @@
type=
"text"
id=
"country"
name=
"country"
formControlName=
"country"
class=
"form-control"
data-minds=
"country"
[allowed]=
"allowedCountries"
...
...
@@ -84,7 +81,12 @@
<label
for=
"dob"
i18n
>
Date of Birth
</label>
</div>
<div
class=
"m-walletForm__row--input"
>
<minds-date-input
<m-date
__dropdowns
name=
"dob"
class=
"form-control"
(selectedDateChange)=
"dob.setValue($event)"
></m-date
__dropdowns
>
<!-- <minds-date-input
id="dob"
name="dob"
class="form-control"
...
...
@@ -92,7 +94,7 @@
data-minds="dob"
[date]="dob.value"
(dateChange)="dob.setValue($event)"
></minds-date-input>
></minds-date-input>
-->
</div>
</div>
...
...
@@ -207,9 +209,9 @@
<div
class=
"m-walletForm__row--input"
>
<input
type=
"text"
id=
"
city
"
name=
"
city
"
formControlName=
"
city
"
id=
"
state
"
name=
"
state
"
formControlName=
"
state
"
class=
"form-control"
/>
</div>
...
...
@@ -261,22 +263,25 @@
<!-- ------------------------------------------------------------ -->
<!-- **** INPUT: TOS CHECKBOX -->
<div
class=
"m-wallet
Settings
__field--checkbox"
>
<div
class=
"m-wallet
Form
__field--checkbox"
>
<div
class=
"m-walletSettings__row--input"
>
<m-formInput
__checkbox
formControlName=
"stripeAgree"
>
I have read and agree to the
<a
href=
"https://stripe.com/legal"
target=
"_blank"
>
Stripe Services Agreement
</a
>
.
Stripe Services Agreement
</a>
</m-formInput
__checkbox
>
</div>
</div>
<!-- ------------------------------------------------------------ -->
<!-- ERROR -------------- -->
<div
class=
"m-walletForm__error"
>
<p>
{{ error }}
</p>
</div>
<!-- FORM BUTTONS -------------- -->
<div
class=
"m-walletForm__buttonsContainer"
>
<!-- TODOOJM confirmation popup on cancel -->
<m-shadowboxSubmitButton
(click)=
"toggleEditMode(false)"
[disabled]=
"inProgress"
...
...
@@ -286,9 +291,30 @@
<m-shadowboxSubmitButton
(click)=
"createAccount()"
[disabled]=
"inProgress"
[saving]=
"inProgress"
>
Update Personal Information
</m-shadowboxSubmitButton
>
</div>
</form>
</div>
<!-- CONFIRMATION MODAL: LEAVE EDIT MODE -------------------- -->
<m-walletModal
[showModal]=
"showModal"
(closeModal)=
"showModal = false"
class=
"m-walletModal--confirmation"
>
<p>
Are you sure you want to stop? Any personal information you've entered
will be lost.
</p>
<div
class=
"m-walletForm__buttonsContainer"
>
<m-shadowboxSubmitButton
color=
"grey"
(click)=
"showModal = false"
>
Cancel
</m-shadowboxSubmitButton
>
<m-shadowboxSubmitButton
color=
"red"
(click)=
"leaveEditMode()"
>
I'm sure
</m-shadowboxSubmitButton
>
</div>
</m-walletModal>
</div>
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding/cash-onboarding.component.ts
View file @
f640281d
import
{
Component
,
OnInit
,
Input
,
ChangeDetectorRef
}
from
'
@angular/core
'
;
import
{
Component
,
OnInit
,
Input
,
ChangeDetectorRef
,
Output
,
EventEmitter
,
}
from
'
@angular/core
'
;
import
{
FormBuilder
,
Validators
}
from
'
@angular/forms
'
;
import
{
requiredFor
,
optionalFor
}
from
'
./../settings-cash.validators
'
;
import
{
WalletDashboardService
}
from
'
../../dashboard.service
'
;
...
...
@@ -10,12 +17,15 @@ import { FormToastService } from '../../../../../common/services/form-toast.serv
})
export
class
WalletCashOnboardingComponent
implements
OnInit
{
@
Input
()
allowedCountries
:
string
[];
@
Input
()
account
;
@
Output
()
submitted
:
EventEmitter
<
any
>
=
new
EventEmitter
();
form
;
user
;
loaded
:
boolean
=
false
;
inProgress
:
boolean
=
false
;
showModal
:
boolean
=
false
;
editing
;
error
:
string
=
''
;
constructor
(
private
cd
:
ChangeDetectorRef
,
...
...
@@ -25,6 +35,11 @@ export class WalletCashOnboardingComponent implements OnInit {
)
{}
ngOnInit
()
{
// if (!this.account) {
// this.submitted.emit();
// // this.detectChanges();
// return;
// }
this
.
form
=
this
.
fb
.
group
({
country
:
[
'
US
'
,
Validators
.
required
],
...
...
@@ -42,39 +57,19 @@ export class WalletCashOnboardingComponent implements OnInit {
postCode
:
[
''
,
optionalFor
([
'
HK
'
,
'
IE
'
,
'
JP
'
])],
stripeAgree
:
[
''
,
Validators
.
required
],
});
this
.
getAccount
();
}
async
getAccount
()
{
this
.
inProgress
=
true
;
this
.
detectChanges
();
this
.
walletService
.
getStripeAccount
()
.
then
((
account
:
any
)
=>
{})
.
catch
(
e
=>
{
this
.
formToastService
.
error
(
e
.
message
);
});
this
.
loaded
=
true
;
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
async
createAccount
()
{
this
.
inProgress
=
true
;
//
this.error = '';
this
.
error
=
''
;
const
formVal
=
this
.
form
.
value
;
formVal
.
stripeAgree
=
this
.
stripeAgree
.
value
;
console
.
log
(
'
formVal w/ agree
'
,
formVal
);
this
.
walletService
.
createStripeAccount
(
formVal
)
.
createStripeAccount
(
this
.
form
.
value
)
.
then
((
response
:
any
)
=>
{
console
.
log
(
'
createAccount response
'
,
response
);
this
.
inProgress
=
false
;
//
Is this kind of stuff necessary anymore
?
//
TODOOJM ask: Is this kind of stuff necessary? Is it ephemeral? what's it doing
?
if
(
!
this
.
user
.
programs
)
{
this
.
user
.
programs
=
[];
}
...
...
@@ -89,19 +84,28 @@ export class WalletCashOnboardingComponent implements OnInit {
amount
:
10
,
},
};
this
.
detectChanges
();
})
.
catch
(
e
=>
{
this
.
inProgress
=
false
;
// TODOOJM handle errors inline
// this.error = e.message;
// TODO backend should include e.param and handle errors inline
this
.
error
=
e
.
message
;
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
if
(
!
this
.
error
)
{
this
.
submitted
.
emit
();
}
}
toggleEditMode
(
bool
)
{
this
.
editing
=
bool
;
enterEditMode
()
{
this
.
editing
=
true
;
this
.
detectChanges
();
}
leaveEditMode
()
{
this
.
editing
=
false
;
this
.
form
.
reset
();
this
.
detectChanges
();
}
...
...
@@ -114,13 +118,6 @@ export class WalletCashOnboardingComponent implements OnInit {
this
.
cd
.
detectChanges
();
}
isMonetized
()
{
// TODOOJM uncomment after form is done
// if (this.user && this.user.merchant.id) {
// return true;
// }
return
false
;
}
get
country
()
{
return
this
.
form
.
get
(
'
country
'
);
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/settings-cash.component.html
View file @
f640281d
...
...
@@ -3,24 +3,25 @@
<h4>
Bank Information
</h4>
<!-- ONBOARDING FORM ------------------ -->
<m-walletCashOnboarding
*ngIf=
"view === 'onboardingForm'"
*ngIf=
"view === 'onboarding'"
[account]=
"account"
[allowedCountries]=
"allowedCountries"
(
accountCreated)=
"getAccount(); checkAdditionalReqts
()"
(
submitted)=
"setView
()"
></m-walletCashOnboarding>
<!-- ADDITIONAL REQUIREMENTS FORM ----------- -->
<m-walletCashOnboardingExtras
*ngIf=
"view === 'additionalReqtsForm'"
(submittedRequirements)=
"getAccount(); checkAdditionalReqts()"
></m-walletCashOnboardingExtras>
<!-- BANK FORM --------------------------- -->
<m-walletBankForm
*ngIf=
"view === 'bankForm'"
*ngIf=
"view === 'bank'"
[account]=
"account"
[allowedCountries]=
"allowedCountries"
(submitted)=
"setView()"
></m-walletBankForm>
<!-- PENDING APPROVAL ----------------------- -->
<div
*ngIf=
"view === 'pendingApproval'"
></div>
<!-- ERROR ---------------------------------- -->
<div
*ngIf=
"view === 'error'"
>
<p>
{{ error }}
</p>
</div>
<!-- EXTRA REQUIREMENTS FORM ----------- -->
<m-walletCashOnboardingExtras
*ngIf=
"view === 'extras'"
[account]=
"account"
[allowedCountries]=
"allowedCountries"
(submitted)=
"setView()"
></m-walletCashOnboardingExtras>
<!-- ERROR --------------------------- -->
<p
*ngIf=
"view === 'error'"
class=
"m-walletForm__error"
>
{{ error }}
</p>
</div>
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/settings-cash.component.scss
View file @
f640281d
// additional shared styles located in dashboard.component.scss
m-walletSettings--cash
{
.m-walletSettingsView--accountSplash
{
.m-walletSettings
{
h4
{
margin-bottom
:
15px
;
}
}
.m-walletSettingsView--hasAccount__detailsWrapper
{
max-width
:
460px
;
margin
:
38px
0
59px
0
;
display
:
flex
;
flex-flow
:
row
wrap
;
justify-content
:
space-between
;
margin
:
38px
0
59px
0
;
max-width
:
460px
;
}
.m-walletSettingsView--
accountSplash__bankPreview
Wrapper
{
.m-walletSettingsView--
hasAccount__bank
Wrapper
{
display
:
flex
;
flex-flow
:
row
nowrap
;
justify-content
:
flex-start
;
...
...
@@ -17,14 +23,14 @@ m-walletSettings--cash {
margin-right
:
8px
;
}
}
.m-walletSettingsView--
accountSplash__link
Container
{
.m-walletSettingsView--
hasAccount__links
Container
{
display
:
flex
;
flex-flow
:
row
nowrap
;
justify-content
:
space-between
;
justify-content
:
flex-start
;
flex
:
1
0
auto
;
max-width
:
146px
;
a
:last-child
{
margin-left
:
8px
;
margin-left
:
2
8px
;
}
}
...
...
@@ -33,18 +39,14 @@ m-walletSettings--cash {
margin-bottom
:
19px
;
}
.m-walletForm__nameFieldsContainer
{
display
:
flex
;
box-sizing
:
border-box
;
[
class
*=
'm-walletForm__field'
]
{
flex
:
1
0
50%
;
&
:first-child
{
margin-right
:
19px
;
}
}
}
.m-tooltip--bubble
{
right
:
12px
;
}
// TOS checkbox
m-walletCashOnboarding
{
.m-walletForm__field--checkbox
{
margin-top
:
100px
;
}
}
}
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/settings-cash.component.ts
View file @
f640281d
import
{
Component
,
OnInit
,
ChangeDetectorRef
}
from
'
@angular/core
'
;
import
{
WalletDashboardService
}
from
'
../dashboard.service
'
;
import
{
FormToastService
}
from
'
../../../../common/services/form-toast.service
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
@
Component
({
...
...
@@ -14,12 +13,7 @@ export class WalletSettingsCashComponent implements OnInit {
account
;
error
:
string
=
''
;
view
:
|
'
onboardingForm
'
|
'
additionalReqtsForm
'
|
'
bankForm
'
|
'
pendingApproval
'
|
'
error
'
;
view
:
'
onboarding
'
|
'
bank
'
|
'
extras
'
|
'
error
'
;
allowedCountries
:
string
[]
=
[
'
AT
'
,
...
...
@@ -48,7 +42,6 @@ export class WalletSettingsCashComponent implements OnInit {
constructor
(
protected
walletService
:
WalletDashboardService
,
private
formToastService
:
FormToastService
,
private
cd
:
ChangeDetectorRef
,
protected
session
:
Session
)
{}
...
...
@@ -56,58 +49,70 @@ export class WalletSettingsCashComponent implements OnInit {
ngOnInit
()
{
this
.
user
=
this
.
session
.
getLoggedInUser
();
this
.
setFormView
();
this
.
setView
();
this
.
loaded
=
true
;
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
setFormView
()
{
async
setView
()
{
// Flow should be:
// 1. onboarding
// 2. bank
// 3. (if necessary) extras
// 4. (once verified) bank
this
.
view
=
null
;
this
.
inProgress
=
true
;
this
.
detectChanges
();
const
hasMerchant
=
this
.
user
&&
this
.
user
.
merchant
.
id
;
// todoojm uncomment
// const hasMerchant = this.user && this.user.merchant.id;
const
hasMerchant
=
true
;
if
(
!
hasMerchant
)
{
this
.
view
=
'
onboarding
Form
'
;
this
.
view
=
'
onboarding
'
;
}
else
{
this
.
getAccount
();
await
this
.
getAccount
();
if
(
this
.
error
)
{
return
;
}
// if pending (???) pending; return
// if additional reqts, additinoalReqts
// else bankForm
if
(
!
this
.
hasBankAccount
()
||
this
.
account
.
verified
)
{
this
.
view
=
'
bank
'
;
}
else
if
(
!
this
.
account
.
verified
&&
this
.
account
.
requirement
)
{
this
.
view
=
'
extras
'
;
}
}
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
async
getAccount
()
{
this
.
inProgress
=
true
;
this
.
error
=
''
;
this
.
walletService
.
getStripeAccount
()
.
then
((
account
:
any
)
=>
{
this
.
account
=
account
;
// TODOOJM handle view selection
// if (!this.account.bankAccount || !this.account.bankAccount.last4) {
// this.view = 'bankForm';
// } else {
// }
// console.log('888 this account', this.account);
// this.setView();
})
.
catch
(
e
=>
{
this
.
error
=
e
.
message
;
this
.
view
=
'
error
'
;
this
.
inProgress
=
false
;
this
.
detectChanges
();
});
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
switchView
(
view
)
{
this
.
view
=
view
;
this
.
detectChanges
();
hasBankAccount
()
{
if
(
this
.
account
.
requirement
)
{
return
this
.
account
.
requirement
.
indexOf
(
'
external_account
'
)
===
-
1
;
}
else
{
return
true
;
}
}
detectChanges
()
{
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-eth/settings-eth.component.html
View file @
f640281d
...
...
@@ -14,16 +14,11 @@
</p>
<div
*ngIf=
"wallet.onchain.address"
>
<div>
<p>
Ether total
</p>
<p
class=
"m-walletForm__row--label"
>
Ether total
</p>
<p>
{{ wallet.eth.balance }}
</p>
</div>
<!-- TODOOJM make it so you don't have to go to /token to buy eth -->
<!-- <m-shadowboxSubmitButton (click)="showModal()"> -->
<m-shadowboxSubmitButton
[routerLink]=
"['/token', { purchaseEth: 'open' }]"
>
Buy Ether
</m-shadowboxSubmitButton>
</div>
</div>
<m-walletModal
[showModal]=
"showModal"
(closeModal)=
"showModal = false"
>
<p>
TODOOJM: implement 'buy eth' modal. See issue #2423
</p>
</m-walletModal>
This diff is collapsed.
src/app/modules/wallet/v2/transactions-cash/transactions-cash.component.html
View file @
f640281d
...
...
@@ -3,20 +3,20 @@
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
></div>
</div>
<div
class=
"m-walletTransactionsTable__wrapper"
*ngIf=
"init"
>
<div
class=
"m-walletTransactionsTable__row--top"
>
<
!-- <
div class="m-walletTransactionsTable__row--top">
<div class="m-walletTransactionsTable__time">
Upcoming
</div>
<div class="m-walletTransactionsTable__typeWrapper">
<!--
(mouseenter)="showRewardsPopup = true"
(mouseleave)="showRewardsPopup = false"
-->
(mouseenter)="showRewardsPopup = true"
(mouseleave)="showRewardsPopup = false"
<i class="material-icons">star_border</i
><span>Estimated Pro Earnings</span>
</div>
<
!-- <
m-walletPendingCashPayout
<m-walletPendingCashPayout
*ngIf="showRewardsPopup"
></m-walletPendingCashPayout>
-->
</div>
></m-walletPendingCashPayout>
</div>
-->
<ng-container
*ngIf=
"!inProgress || transactions"
>
<m-walletTransactionsTable
[currency]=
"currency"
...
...
This diff is collapsed.
src/app/modules/wallet/v2/transactions-cash/transactions-cash.component.ts
View file @
f640281d
...
...
@@ -48,15 +48,15 @@ export class WalletTransactionsCashComponent implements OnInit {
}
async
getStripeAccount
()
{
const
stripeA
ccount
=
await
this
.
walletService
.
getStripeAccount
();
if
(
!
stripeA
ccount
)
{
const
a
ccount
=
await
this
.
walletService
.
getStripeAccount
();
if
(
!
a
ccount
)
{
return
;
}
else
{
if
(
stripeA
ccount
.
bankAccount
)
{
this
.
currency
=
stripeA
ccount
.
bankAccount
.
currency
.
toUpperCase
();
if
(
a
ccount
.
bankAccount
)
{
this
.
currency
=
a
ccount
.
bankAccount
.
currency
.
toUpperCase
();
}
this
.
runningTotal
=
stripeA
ccount
.
pendingBalance
.
amount
/
100
;
this
.
runningTotal
=
a
ccount
.
pendingBalance
.
amount
/
100
;
this
.
detectChanges
();
}
...
...
This diff is collapsed.
Please
register
or
sign in
to comment