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
403
Merge Requests
69
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
f254fd21
Commit
f254fd21
authored
8 hours ago
by
Olivia Madrid
Browse files
Options
Download
token onboarding notice flow
parent
8df6b49e
epic/wallet-80
1 merge request
!686
WIP: Epic/wallet 80
Pipeline
#118263163
passed with stages
in 89 minutes and 24 seconds
Changes
26
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
515 additions
and
373 deletions
+515
-373
src/app/modules/wallet/v2/balance-cash/balance-cash.component.html
View file @
f254fd21
<div
class=
"m-walletBalance--cash"
*ngIf=
"!inProgress"
>
<div
*ngIf=
"!loaded"
class=
"m-wallet__spinner"
>
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
></div>
</div>
<div
class=
"m-walletBalance--cash"
*ngIf=
"loaded"
>
<div
class=
"m-walletBalance---cash__onboardingNotice"
*ngIf=
"
!hasAccount || !account.bankAccount
"
*ngIf=
"
viewId !== 'settings' && (!hasAccount || !account.bankAccount)
"
>
<p
(click)=
"scrollToSettings()"
>
<a>
Add your bank information
</a>
</p>
<p>
Start receiving cash payouts by adding your bank details.
</p>
<p>
<ng-container
*ngIf=
"!hasAccount"
>
Start receiving cash payouts by adding your bank details.
</ng-container>
<ng-container
*ngIf=
"hasAccount"
>
Finish adding your bank details to start receiving cash payouts.
</ng-container>
</p>
</div>
<div
class=
"m-walletBalance--cash__colContainer"
>
<!-- ---PENDING BALANCE ------------------------------------------------- -->
<!-- ---PENDING BALANCE ------------------- -->
<div
class=
"m-walletBalance--cash__col"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
Pending Balance
<m-tooltip
icon=
"help"
>
The total amount of cash you are scheduled to receive from wires
and/or earnings. The payout date is estimated and it may take up to 7
days before your balance reaches your bank account.
>
The total amount of cash you are scheduled to receive from
wires
<ng-container
*ngIf=
"isPro"
>
and/or Pro earnings
</ng-container>
.
The payout date is an estimation and it may take up to 7 days before
your cash reaches your bank account.
</m-tooltip>
</div>
<div
class=
"m-walletBalance--cash__colValWrapper"
*ngIf=
"!hasAccount"
>
...
...
@@ -41,7 +53,8 @@
</div>
</ng-container>
</div>
<!-- ---TOTAL PAID OUT------------------------------------------------- -->
<!-- ---TOTAL PAID OUT ------------------- -->
<div
class=
"m-walletBalance--cash__col"
*ngIf=
"hasAccount"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
...
...
@@ -61,7 +74,9 @@
>
</div>
</div>
<!-- ---PRO EARNINGS------------------------------------------------- -->
<!-- ---PRO EARNINGS ------------------- -->
<div
class=
"m-walletBalance--cash__col"
*ngIf=
"isPro"
>
<div
class=
"m-walletBalance--cash__colTitle"
>
Pro Earnings
<m-tooltip
icon=
"help"
...
...
This diff is collapsed.
src/app/modules/wallet/v2/balance-cash/balance-cash.component.ts
View file @
f254fd21
...
...
@@ -10,7 +10,7 @@ import {
}
from
'
@angular/core
'
;
import
{
Client
}
from
'
../../../../services/api/client
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
import
{
WalletDashboardService
}
from
'
../dashboard.service
'
;
import
{
WalletDashboardService
,
WalletCurrency
}
from
'
../dashboard.service
'
;
import
{
ActivatedRoute
,
ParamMap
}
from
'
@angular/router
'
;
import
*
as
moment
from
'
moment
'
;
import
{
Subscription
}
from
'
rxjs
'
;
...
...
@@ -21,7 +21,10 @@ import { ConfigsService } from '../../../../common/services/configs.service';
changeDetection
:
ChangeDetectionStrategy
.
OnPush
,
})
export
class
WalletBalanceCashComponent
implements
OnInit
,
OnDestroy
{
inProgress
:
boolean
=
true
;
@
Output
()
scrollToCashSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
();
@
Input
()
viewId
:
string
;
@
Input
()
cashWallet
:
WalletCurrency
;
// TODOOJM USE ME & make me a setter
account
;
hasAccount
:
boolean
=
true
;
isPro
:
boolean
=
false
;
...
...
@@ -34,8 +37,6 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
paramsSubscription
:
Subscription
;
loaded
:
boolean
=
false
;
@
Output
()
scrollToCashSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
();
constructor
(
protected
client
:
Client
,
protected
cd
:
ChangeDetectorRef
,
...
...
@@ -76,19 +77,25 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
.
endOf
(
'
month
'
)
.
format
(
'
ddd Do MMM
'
);
this
.
account
=
await
this
.
walletService
.
getStripeAccount
();
if
(
!
this
.
account
||
!
this
.
account
.
accountNumber
)
{
//
this.account = await this.walletService.getStripeAccount();
// if (!this.account || !this.account.accountNumber) {
if
(
this
.
cashWallet
.
address
!==
'
stripe
'
)
{
this
.
hasAccount
=
false
;
this
.
pendingBalance
=
this
.
formatBalance
(
0
);
this
.
totalPaidOut
=
this
.
formatBalance
(
0
);
}
else
{
this
.
pendingBalance
=
this
.
formatBalance
(
this
.
account
.
pendingBalance
.
amount
/
100
);
if
(
this
.
account
.
bankAccount
)
{
this
.
currency
=
this
.
account
.
bankAccount
.
currency
.
toUpperCase
();
}
this
.
hasAccount
=
true
;
this
.
pendingBalance
=
this
.
formatBalance
(
this
.
cashWallet
.
balance
);
this
.
currency
=
this
.
cashWallet
.
label
.
toUpperCase
();
this
.
account
=
await
this
.
walletService
.
getStripeAccount
();
// this.pendingBalance = this.formatBalance(
// this.account.pendingBalance.amount / 100
// );
// if (this.account.bankAccount) {
// this.currency = this.account.bankAccount.currency.toUpperCase();
// }
let
totalPaidOutRaw
=
(
this
.
account
.
totalBalance
.
amount
-
...
...
@@ -103,14 +110,10 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
this
.
totalPaidOut
=
this
.
formatBalance
(
totalPaidOutRaw
);
}
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
async
getProEarnings
()
{
this
.
inProgress
=
true
;
this
.
detectChanges
();
try
{
const
response
:
number
=
await
this
.
walletService
.
getProEarnings
();
this
.
proEarnings
=
this
.
formatBalance
(
response
);
...
...
@@ -118,7 +121,6 @@ export class WalletBalanceCashComponent implements OnInit, OnDestroy {
console
.
error
(
e
.
message
);
this
.
proEarnings
=
this
.
formatBalance
(
0
);
}
this
.
inProgress
=
false
;
this
.
detectChanges
();
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.component.html
View file @
f254fd21
...
...
@@ -21,12 +21,19 @@
(tabChanged)=
"updateCurrency($event)"
></m-shadowboxHeader
__tabs
>
<div
class=
"m-shadowboxLayout__body"
>
<div
class=
"m-walletDashboardBalances__wrapper"
>
<div
class=
"m-walletDashboardBalances__wrapper"
*ngIf=
"
activeCurrencyId === 'tokens' || activeCurrencyId === 'cash'
"
>
<m-walletTokenOnboarding
*ngIf=
"
activeCurrencyId === 'tokens' && !tokenOnboardingComplete
"
(onboardingCompleted)=
"tokenOnboardingCompleted()"
[hasAddress]=
"hasOnchainAddress"
[phoneVerified]=
"phoneVerified"
(onboardingComplete)=
"tokenOnboardingCompleted()"
(scrollToTokenSettings)=
"scrollToSettings('tokens')"
></m-walletTokenOnboarding>
<m-walletBalance--tokens
...
...
@@ -37,6 +44,8 @@
<m-walletBalance--cash
class=
"m-shadowboxLayout__body"
*ngIf=
"activeCurrencyId === 'cash'"
[viewId]=
"activeViewId"
[cashWallet]=
"wallet.cash"
(scrollToCashSettings)=
"scrollToSettings('cash')"
></m-walletBalance--cash>
</div>
...
...
@@ -67,6 +76,7 @@
*ngIf=
"activeCurrencyId === 'tokens'"
></m-walletTransactions--tokens>
<m-walletTransactions--cash
[cashWallet]=
"wallet.cash"
*ngIf=
"activeCurrencyId === 'cash'"
[noAccount]=
"wallet.cash.address === null"
></m-walletTransactions--cash>
...
...
@@ -76,18 +86,18 @@
<m-walletSettings--tokens
class=
"m-walletDashboardViews__view"
*ngIf=
"activeCurrencyId === 'tokens'"
(onchainAddressChanged)=
"loadWallet()"
#tokenSettings
(onchainAddressChanged)=
"onchainAddressChanged()"
></m-walletSettings--tokens>
<m-walletSettings--cash
class=
"m-walletDashboardViews__view"
*ngIf=
"activeCurrencyId === 'cash'"
[cashWallet]=
"wallet.cash"
(accountChanged)=
"loadWallet()"
#cashSettings
></m-walletSettings--cash>
<m-walletSettings--eth
class=
"m-walletDashboardViews__view"
*ngIf=
"activeCurrencyId === 'eth'"
[ethWallet]=
"wallet.eth"
(scrollToTokenSettings)=
"scrollToSettings('tokens')"
></m-walletSettings--eth>
<m-walletSettings--btc
...
...
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.component.scss
View file @
f254fd21
...
...
@@ -363,203 +363,261 @@ m-walletDashboard {
}
}
}
}
// *******************************************************
// ** SETTINGS - COMMON STYLES ***************************
// *******************************************************
// *******************************************************
// ** SETTINGS - COMMON STYLES ***************************
// *******************************************************
.m-walletSettings
{
// font-weight: 300;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
m-shadowboxSubmitButton
{
margin
:
27px
0
0
0
;
}
h2
{
margin
:
0
;
font-size
:
26px
;
line-height
:
34px
;
}
h4
{
margin
:
0
;
font-size
:
21px
;
line-height
:
28px
;
}
ul
{
list-style
:
none
;
margin
:
0
;
padding
:
0
;
.m-walletSettings
{
// font-weight: 300;
}
a
{
// font-weight: 300;
text-decoration
:
underline
;
cursor
:
pointer
;
font-size
:
14px
;
line-height
:
19px
;
}
p
{
font-size
:
14px
;
line-height
:
19px
;
margin
:
23px
0
0
0
;
font-weight
:
400
;
// TODOOJM - make this 300 on the install metamask page
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
color
:
themed
(
$m-textColor--primary
);
}
m-shadowboxSubmitButton
{
margin
:
27px
0
0
0
;
}
}
.m-walletSettingsView--addressCurrent
{
h2
{
margin-bottom
:
23px
;
margin
:
0
;
font-size
:
26px
;
line-height
:
34px
;
}
}
.m-walletSettingsView--addressCurrent__title
{
margin-bottom
:
13px
;
}
.m-walletSettingsView--addressCurrent__addressContainer
{
display
:
flex
;
flex-flow
:
row
wrap
;
font-size
:
15px
;
line-height
:
20px
;
div
:first-child
{
margin
:
0
18px
8px
0
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
h4
{
margin
:
0
;
font-size
:
21px
;
line-height
:
28px
;
}
ul
{
list-style
:
none
;
margin
:
0
;
padding
:
0
;
// font-weight: 300;
}
a
{
// font-weight: 300;
text-decoration
:
underline
;
cursor
:
pointer
;
font-size
:
14px
;
line-height
:
20px
;
font-weight
:
300
;
line-height
:
19px
;
}
p
{
font-size
:
14px
;
line-height
:
19px
;
margin
:
23px
0
0
0
;
font-weight
:
400
;
// TODOOJM - make this 300 on the install metamask page
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
}
}
.m-walletSettings__setupOptions__recommendation
{
display
:
flex
;
flex-flow
:
row
nowrap
;
align-items
:
flex-end
;
font-size
:
12px
;
line-height
:
16px
;
margin
:
31px
0
0
0
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
.m-walletSettingsView--addressCurrent
{
h2
{
margin-bottom
:
23px
;
}
}
i
{
font-size
:
18px
;
margin-right
:
8px
;
.m-walletSettingsView--addressCurrent__title
{
margin-bottom
:
13px
;
}
}
.m-walletSettingsView__setupOptions__container
{
display
:
flex
;
flex-flow
:
row
wrap
;
li
{
box-sizing
:
border-box
;
flex
:
1
1
50%
;
padding
:
16px
0
16px
54px
;
.m-walletSettingsView--addressCurrent__addressContainer
{
display
:
flex
;
flex-flow
:
row
wrap
;
font-size
:
15px
;
line-height
:
20px
;
div
:first-child
{
margin
:
0
18px
8px
0
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
}
a
{
font-size
:
14px
;
line-height
:
20px
;
font-weight
:
300
;
}
}
p
{
.m-walletSettings__setupOptions__recommendation
{
display
:
flex
;
flex-flow
:
row
nowrap
;
align-items
:
flex-end
;
font-size
:
12px
;
line-height
:
16px
;
margin
:
31px
0
0
0
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
color
:
themed
(
$m-textColor--tertiary
);
}
i
{
font-size
:
18px
;
margin-right
:
8px
;
}
}
.m-walletSettingsView__setupOption--custom
{
div
{
margin-top
:
16px
;
display
:
inline-block
;
a
,
span
{
.m-walletSettingsView__setupOptions__container
{
display
:
flex
;
flex-flow
:
row
wrap
;
li
{
box-sizing
:
border-box
;
flex
:
1
1
50%
;
padding
:
16px
0
16px
54px
;
}
p
{
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
}
.m-walletSettingsView__setupOption--custom
{
div
{
margin-top
:
16px
;
display
:
inline-block
;
margin-right
:
5px
;
a
,
span
{
display
:
inline-block
;
margin-right
:
5px
;
font-weight
:
300
;
}
span
{
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
}
}
}
.m-walletSettingsView__setupOption--metamask
{
padding-right
:
32px
;
padding-left
:
0
;
border-width
:
0
;
border-right-width
:
1px
;
border-style
:
solid
;
@include
m-theme
()
{
border-image
:
linear-gradient
(
transparent
,
rgba
(
themed
(
$m-grey-200
)
,
0
.6
)
,
transparent
)
10
100%
;
}
a
{
font-weight
:
300
;
}
span
{
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
}
div
{
display
:
flex
;
flex-flow
:
row
nowrap
;
align-items
:
center
;
img
{
height
:
34px
;
margin-right
:
12px
;
}
}
}
.m-walletSettingsView__setupOption--metamask
{
padding-right
:
32px
;
padding-left
:
0
;
border-width
:
0
;
border-right-width
:
1px
;
border-style
:
solid
;
span
.m-walletSettings__address--emphasis
{
@include
m-theme
()
{
border-image
:
linear-gradient
(
transparent
,
rgba
(
themed
(
$m-grey-200
)
,
0
.6
)
,
transparent
)
10
100%
;
}
a
{
font-weight
:
300
;
color
:
themed
(
$m-textColor--primary
);
}
}
div
{
display
:
flex
;
a
.m-walletSettings__backButton
{
margin-top
:
33px
;
display
:
inline-flex
;
flex-flow
:
row
nowrap
;
align-items
:
center
;
img
{
height
:
34px
;
margin-right
:
12px
;
align-items
:
baseline
;
text-decoration
:
none
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
&
:hover
{
span
{
text-decoration
:
underline
;
}
}
i
{
font-size
:
14px
;
font-weight
:
300
;
margin-right
:
10px
;
}
}
}
span
.m-walletSettings__address--emphasis
{
@include
m-theme
()
{
color
:
themed
(
$m-textColor--primary
);
}
}
a
.m-walletSettings__backButton
{
margin-top
:
33px
;
display
:
inline-flex
;
flex-flow
:
row
nowrap
;
align-items
:
baseline
;
text-decoration
:
none
;
@include
m-theme
()
{
color
:
themed
(
$m-textColor--tertiary
);
}
&
:hover
{
span
{
text-decoration
:
underline
;
@media
screen
and
(
max-width
:
$min-tablet
)
{
.m-walletSettingsView__setupOptions__container
{
li
.m-walletSettingsView__setupOption--custom
{
padding-left
:
32px
;
}
}
}
i
{
font-size
:
14px
;
font-weight
:
300
;
margin-right
:
10px
;
}
}
@media
screen
and
(
max-width
:
$min-tablet
)
{
.m-walletSettingsView__setupOptions__container
{
li
.m-walletSettingsView__setupOption--custom
{
padding-left
:
32px
;
@media
screen
and
(
max-width
:
520px
)
{
.m-walletSettingsView__setupOptions__container
{
li
{
flex-basis
:
100%
;
&
.m-walletSettingsView__setupOption--metamask
{
padding
:
16px
0
32px
0
;
border-right-width
:
0
;
}
&
.m-walletSettingsView__setupOption--custom
{
padding
:
32px
0
0
0
;
}
}
}
}
}
@media
screen
and
(
max-width
:
520px
)
{
.m-walletSettingsView__setupOptions__container
{
li
{
flex-basis
:
100%
;
&
.m-walletSettingsView__setupOption--metamask
{
padding
:
16px
0
32px
0
;
border-right-width
:
0
;
@media
screen
and
(
max-width
:
$max-mobile
)
{
[
class
*=
'm-walletTokenOnboardingStep--'
]
{
padding
:
19px
;
}
m-walletModal
{
.m-walletModal__close
{
top
:
14px
;
right
:
20px
;
@include
m-theme
()
{
background-color
:
rgba
(
0
,
0
,
0
,
0
);
box-shadow
:
none
;
}
&
:hover
{
@include
m-theme
()
{
box-shadow
:
none
;
}
}
}
.m-walletModal
{
min-width
:
90vw
;
min-height
:
96vh
;
padding
:
20px
;
.m-phoneInput__wrapper
{
min-width
:
200px
;
}
.m-walletForm__wrapper
{
margin-bottom
:
0px
;
}
.m-walletModal__title
{
// font-size: 20px;
// line-height: 25px;
}
.m-walletModal__desc
p
{
// font-size: 14px;
// line-height: 19px;
}
.m-walletModal__footnote--formStatus
{
font-size
:
13px
;
line-height
:
18px
;
>
div
{
&
:first-child
{
margin-bottom
:
8px
;
}
}
}
&
.m-walletSettingsView__setupOption--custom
{
padding
:
32px
0
0
0
;
m-shadowboxSubmitButton
{
margin-bottom
:
10px
;
}
m-phoneInput
{
.m-phoneInput__countryList
{
max-height
:
124px
;
}
}
}
}
}
}
///////////////////////////////////
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.component.ts
View file @
f254fd21
...
...
@@ -25,8 +25,6 @@ import { ShadowboxHeaderTab } from '../../../interfaces/dashboard';
changeDetection
:
ChangeDetectionStrategy
.
OnPush
,
})
export
class
WalletDashboardComponent
implements
OnInit
,
OnDestroy
{
@
ViewChild
(
'
tokensSettings
'
,
{
static
:
false
})
tokenSettingsEl
:
ElementRef
;
@
ViewChild
(
'
cashSettings
'
,
{
static
:
false
})
cashSettingsEl
:
ElementRef
;
@
ViewChild
(
'
dashboardViews
'
,
{
static
:
false
})
dashboardViewsEl
:
ElementRef
;
...
...
@@ -37,7 +35,9 @@ export class WalletDashboardComponent implements OnInit, OnDestroy {
activeCurrencyId
:
string
;
activeViewId
:
string
;
tokenOnboardingComplete
=
false
;
tokenOnboardingComplete
:
boolean
=
false
;
hasOnchainAddress
:
boolean
=
false
;
phoneVerified
:
boolean
=
false
;
views
:
any
=
{
tokens
:
[
...
...
@@ -70,10 +70,9 @@ export class WalletDashboardComponent implements OnInit, OnDestroy {
return
;
}
if
(
this
.
session
.
getLoggedInUser
().
rewards
&&
this
.
session
.
getLoggedInUser
().
eth_wallet
)
{
this
.
phoneVerified
=
this
.
session
.
getLoggedInUser
().
rewards
;
this
.
hasOnchainAddress
=
this
.
session
.
getLoggedInUser
().
eth_wallet
;
if
(
this
.
phoneVerified
&&
this
.
hasOnchainAddress
)
{
this
.
tokenOnboardingComplete
=
true
;
}
...
...
@@ -135,6 +134,7 @@ export class WalletDashboardComponent implements OnInit, OnDestroy {
};
// Handle currency formatting for cash
// TODOOJM this isn't going to work
if
(
currency
===
'
cash
'
)
{
if
(
this
.
wallet
.
cash
.
unit
===
'
cash
'
)
{
headerTab
.
unit
=
'
usd
'
;
...
...
@@ -165,32 +165,33 @@ export class WalletDashboardComponent implements OnInit, OnDestroy {
this
.
detectChanges
();
}
scrollToSettings
(
currency
:
string
)
{
if
(
this
.
activeCurrencyId
!==
currency
)
{
this
.
router
.
navigate
([
`/wallet/
${
currency
}
/settings`
]);
}
else
{
const
settingsEl
=
currency
===
'
cash
'
?
this
.
cashSettingsEl
.
nativeElement
:
this
.
tokenSettingsEl
.
nativeElement
;
onchainAddressChanged
()
{
this
.
hasOnchainAddress
=
true
;
this
.
detectChanges
();
if
(
!
settingsEl
)
{
this
.
updateView
(
'
settings
'
);
}
}
this
.
loadWallet
();
}
if
(
isPlatformBrowser
(
this
.
platformId
))
{
setTimeout
(
()
=>
this
.
dashboardViewsEl
.
nativeElement
.
scrollIntoView
({
behavior
:
'
smooth
'
,
}),
0
);
scrollToSettings
(
currency
:
string
)
{
if
(
this
.
activeCurrencyId
!==
currency
||
this
.
activeViewId
!==
'
settings
'
)
{
this
.
router
.
navigate
([
`/wallet/
${
currency
}
/settings`
]).
then
(()
=>
{
this
.
scrollToSettingsEl
();
});
}
else
{
this
.
scrollToSettingsEl
();
}
this
.
detectChanges
();
}
scrollToSettingsEl
()
{
this
.
dashboardViewsEl
.
nativeElement
.
scrollIntoView
({
behavior
:
'
smooth
'
,
});
}
detectChanges
()
{
this
.
cd
.
markForCheck
();
this
.
cd
.
detectChanges
();
...
...
This diff is collapsed.
src/app/modules/wallet/v2/dashboard.service.ts
View file @
f254fd21
...
...
@@ -5,11 +5,24 @@ import { Web3WalletService } from '../../blockchain/web3-wallet.service';
import
{
TokenContractService
}
from
'
../../blockchain/contracts/token-contract.service
'
;
import
toFriendlyCryptoVal
from
'
../../../helpers/friendly-crypto
'
;
export
interface
SplitBalance
{
total
:
number
;
int
:
number
;
frac
:
number
|
null
;
}
export
interface
StripeDetails
{
pendingBalance
:
SplitBalance
;
totalPaidOut
:
SplitBalance
;
isLocalCurrency
:
boolean
;
}
export
interface
WalletCurrency
{
label
:
string
;
unit
:
string
;
balance
:
number
;
address
:
string
|
null
;
stripeDetails
?:
StripeDetails
;
}
export
interface
Wallet
{
...
...
@@ -23,7 +36,6 @@ export interface Wallet {
}
@
Injectable
()
export
class
WalletDashboardService
{
walletLoaded
=
false
;
totalTokens
=
0
;
wallet
:
Wallet
=
{
tokens
:
{
...
...
@@ -82,7 +94,7 @@ export class WalletDashboardService {
await
this
.
getEthAccount
();
await
this
.
getStripeAccount
();
this
.
walletLoaded
=
true
;
console
.
log
(
'
***
'
,
this
.
wallet
)
;
return
this
.
wallet
;
}
...
...
@@ -155,16 +167,19 @@ export class WalletDashboardService {
}
async
getEthAccount
()
{
const
address
=
await
this
.
web3Wallet
.
getCurrentWallet
();
if
(
!
address
)
{
return
;
}
this
.
wallet
.
eth
.
address
=
address
;
const
ethBalance
=
await
this
.
web3Wallet
.
getBalance
(
address
);
if
(
ethBalance
)
{
this
.
wallet
.
eth
.
balance
=
toFriendlyCryptoVal
(
ethBalance
);
try
{
const
address
=
await
this
.
web3Wallet
.
getCurrentWallet
();
if
(
address
)
{
this
.
wallet
.
eth
.
address
=
address
;
const
ethBalance
=
await
this
.
web3Wallet
.
getBalance
(
address
);
if
(
ethBalance
)
{
this
.
wallet
.
eth
.
balance
=
toFriendlyCryptoVal
(
ethBalance
);
}
}
return
this
.
wallet
.
eth
;
}
catch
(
e
)
{
console
.
error
(
e
);
}
return
this
.
wallet
.
eth
;
}
async
getStripeAccount
()
{
...
...
@@ -175,21 +190,32 @@ export class WalletDashboardService {
const
{
account
}
=
<
any
>
(
await
this
.
client
.
get
(
'
api/v2/payments/stripe/connect
'
)
);
if
(
account
)
{
console
.
log
(
'
svc getAcc
'
,
account
);
this
.
wallet
.
cash
.
address
=
'
stripe
'
;
this
.
wallet
.
cash
.
balance
=
(
account
.
totalBalance
.
amount
-
account
.
pendingBalance
.
amount
)
/
100
;
if
(
account
.
bankAccount
)
{
const
bankCurrency
:
string
=
account
.
bankAccount
.
currency
;
this
.
wallet
.
cash
.
label
=
bankCurrency
.
toUpperCase
();
this
.
wallet
.
cash
.
unit
=
bankCurrency
;
}
else
{
// Has stripe account but not setup bank account
this
.
wallet
.
cash
.
label
=
'
USD
'
;
this
.
wallet
.
cash
.
unit
=
'
usd
'
;
}
const
friendlyAccount
=
{
...
account
};
console
.
log
(
'
svc getAcc
'
,
account
);
this
.
wallet
.
cash
.
address
=
'
stripe
'
;
this
.
wallet
.
cash
.
balance
=
(
account
.
totalBalance
.
amount
-
account
.
pendingBalance
.
amount
)
/
100
;
if
(
!
account
.
bankAccount
)
{
// Has stripe account but not setup bank account
this
.
wallet
.
cash
.
label
=
'
USD
'
;
this
.
wallet
.
cash
.
unit
=
'
usd
'
;
friendlyAccount
.
isLocalCurrency
=
false
;
}
else
{
const
bankCurrency
:
string
=
account
.
bankAccount
.
currency
;
this
.
wallet
.
cash
.
label
=
bankCurrency
.
toUpperCase
();
this
.
wallet
.
cash
.
unit
=
bankCurrency
;
friendlyAccount
.
isLocalCurrency
=
true
;
}
// TODOOJM
//pendingBalanceFriendly
// totalPaidOutFriendly = (account.totalBalance.amount - account.pendingBalance.amount) / 100;
// formatBalance(int, frac, total)
//return friendlyAccount
return
account
;
}
catch
(
e
)
{
console
.
error
(
e
);
...
...
@@ -201,6 +227,7 @@ export class WalletDashboardService {
}
async
createStripeAccount
(
form
)
{
console
.
log
(
'
creatingstripeaccount
'
,
form
);
try
{
const
response
=
<
any
>
(
await
this
.
client
.
put
(
'
api/v2/wallet/usd/account
'
,
form
)
...
...
@@ -268,7 +295,6 @@ export class WalletDashboardService {
);
return
response
;
// TODOOJM toggle fake data
// return fakeData.tx_usd;
}
catch
(
e
)
{
console
.
error
(
e
);
...
...
@@ -276,22 +302,6 @@ export class WalletDashboardService {
}
}
async
getStripePayouts
()
{
try
{
const
response
=
<
any
>
(
await
this
.
client
.
get
(
'
api/v1/monetization/service/analytics/list?offset=&limit=12&type=payouts
'
)
);
// TODOOJM toggle fake data
return
response
.
transactions
;
}
catch
(
e
)
{
console
.
error
(
e
);
return
;
}
}
async
getTokenChart
(
activeTimespanId
)
{
const
opts
=
{
metric
:
'
token_balance
'
,
...
...
@@ -384,4 +394,23 @@ export class WalletDashboardService {
return
false
;
}
}
// Returns an object with separated dollars and cents
// as well as the original total
public
splitBalance
(
balance
)
{
const
splitBalance
:
SplitBalance
=
{
total
:
balance
,
int
:
0
,
frac
:
null
,
};
const
balanceArray
=
balance
.
toString
().
split
(
'
.
'
);
splitBalance
.
int
=
balanceArray
[
0
];
if
(
balanceArray
[
1
])
{
splitBalance
.
frac
=
balanceArray
[
1
].
slice
(
0
,
2
);
}
return
splitBalance
;
}
}
This diff is collapsed.
src/app/modules/wallet/v2/modal/modal.component.scss
View file @
f254fd21
...
...
@@ -120,13 +120,14 @@ m-walletModal {
.m-walletModal
{
padding
:
46px
50px
;
max-width
:
80vw
;
width
:
80vw
;
max-height
:
90vh
;
}
}
@media
screen
and
(
max-width
:
$max-mobile
)
{
.m-walletModal
{
padding
:
26px
35px
;
max-
width
:
90vw
;
width
:
90vw
;
max-height
:
95vh
;
}
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/phone-verification/phone-verification.component.scss
View file @
f254fd21
...
...
@@ -20,7 +20,6 @@ m-walletPhoneVerification {
width
:
100%
;
}
}
// TODOOJM tweak this so countryList max-height doesn't overflow
@media
screen
and
(
max-width
:
771px
)
{
m-shadowboxSubmitButton
{
margin
:
0
0
21px
0
;
...
...
@@ -46,10 +45,5 @@ m-walletPhoneVerification {
}
}
}
m-phoneInput
{
.m-phoneInput__countryList
{
max-height
:
200px
;
}
}
}
}
This diff is collapsed.
src/app/modules/wallet/v2/settings-btc/settings-btc.component.html
View file @
f254fd21
<div
*ngIf=
"!loaded"
class=
"m-wallet__spinner"
>
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
></div>
</div>
<div
class=
"m-walletSettings"
*ngIf=
"loaded"
>
<!---PROVIDE ADDRESS---------------------------->
<div
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-btc/settings-btc.component.ts
View file @
f254fd21
...
...
@@ -3,7 +3,6 @@ import {
ChangeDetectorRef
,
Component
,
OnInit
,
EventEmitter
,
}
from
'
@angular/core
'
;
import
{
FormGroup
,
...
...
@@ -36,18 +35,25 @@ export class WalletSettingsBTCComponent implements OnInit {
)
{}
ngOnInit
()
{
this
.
load
();
}
async
load
()
{
// Check if already has an address
const
{
address
}
=
<
any
>
await
this
.
client
.
get
(
'
api/v2/wallet/btc/address
'
);
this
.
currentAddress
=
address
;
this
.
form
=
new
FormGroup
({
addressInput
:
new
FormControl
(
''
,
{
validators
:
[
Validators
.
required
,
this
.
validateAddressFormat
],
}),
});
this
.
load
();
}
async
load
()
{
try
{
// Check if already has an address
const
{
address
}
=
<
any
>
(
await
this
.
client
.
get
(
'
api/v2/wallet/btc/address
'
)
);
if
(
address
)
{
this
.
currentAddress
=
address
;
}
}
catch
(
e
)
{
console
.
error
(
e
);
}
this
.
loaded
=
true
;
this
.
detectChanges
();
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-bank-form/cash-bank-form.component.html
View file @
f254fd21
...
...
@@ -2,7 +2,7 @@
<!-- HAS NOT SET UP BANK ACCOUNT / IS UPDATING BANK ACCOUNT ------------------ -->
<ng-container
*ngIf=
"!leftMonetization"
>
<form
[formGroup]=
"form"
*ngIf=
"!hasBankAccount() || editing"
>
<p>
Enter bank account details to receive paymen
ts.
</p>
<p>
Finish adding your bank details to start receiving cash payou
ts.
</p>
<!-- ***INPUT COUNTRY DROPDOWN-->
<div
class=
"m-walletForm__field--text stretchedField"
>
<div
class=
"m-walletSettings__row--label"
>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding-extras/cash-onboarding-extras.component.html
View file @
f254fd21
<div
class=
"m-walletOnboardingExtrasForm"
*ngIf=
"account"
>
<p>
Start receiving cash payouts by adding your bank details.
</p>
<!-- **** INPUT: PHOTO ID -->
<ng-container
*ngIf=
"account.requirement.indexOf('individual.verification.document') > -1"
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/cash-onboarding/cash-onboarding.component.html
View file @
f254fd21
...
...
@@ -8,8 +8,8 @@
<div
class=
"m-walletCashOnboardingView--form"
*ngIf=
"editing"
>
<form
[formGroup]=
"form"
>
<p>
Enter personal details to start setting up your cash account
.
</p>
<!-- -----------------------------------------------
-------------
-->
<p>
Start receiving cash payouts by adding your bank details
.
</p>
<!-- ----------------------------------------------- -->
<!-- **** INPUT: COUNTRY DROPDOWN -->
<div
class=
"m-walletForm__multifieldGroup"
>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/settings-cash.component.html
View file @
f254fd21
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
*ngIf=
"!loaded"
></div>
<div
*ngIf=
"!loaded"
class=
"m-wallet__spinner"
>
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
></div>
</div>
<div
class=
"m-walletSettings"
*ngIf=
"loaded"
>
<h4>
Bank Information
</h4>
<!-- ONBOARDING FORM ------------------ -->
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-cash/settings-cash.component.ts
View file @
f254fd21
...
...
@@ -4,8 +4,9 @@ import {
ChangeDetectorRef
,
Output
,
EventEmitter
,
Input
,
}
from
'
@angular/core
'
;
import
{
WalletDashboardService
}
from
'
../dashboard.service
'
;
import
{
WalletDashboardService
,
WalletCurrency
}
from
'
../dashboard.service
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
@
Component
({
...
...
@@ -13,6 +14,7 @@ import { Session } from '../../../../services/session';
templateUrl
:
'
./settings-cash.component.html
'
,
})
export
class
WalletSettingsCashComponent
implements
OnInit
{
@
Input
()
cashWallet
:
WalletCurrency
;
// TODOOJM handle
@
Output
()
accountChanged
:
EventEmitter
<
any
>
=
new
EventEmitter
<
any
>
();
@
Output
()
scrollToCashSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
<
any
>
();
...
...
@@ -69,13 +71,13 @@ export class WalletSettingsCashComponent implements OnInit {
// 2. bank
// 3. (if necessary) extras
// 4. (once verified) bank
console
.
log
(
'
888 ... setting view
'
);
const
previousView
=
this
.
view
;
// this.view = null;
this
.
inProgress
=
true
;
this
.
detectChanges
();
const
hasMerchant
=
this
.
user
&&
this
.
user
.
merchant
.
id
;
const
hasMerchant
=
this
.
user
&&
this
.
user
.
merchant
.
service
===
'
stripe
'
;
if
(
!
hasMerchant
)
{
this
.
view
=
'
onboarding
'
;
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-eth/settings-eth.component.html
View file @
f254fd21
<div
class=
"m-walletSettings"
*ngIf=
"ethWallet"
>
<!-- <div *ngIf="!ethWallet" class="m-wallet__spinner">
<div class="mdl-spinner mdl-js-spinner is-active" [mdl]></div>
</div> -->
<!-- <div class="m-walletSettings" *ngIf="ethWallet"> -->
<div
class=
"m-walletSettings"
>
<h2>
Ether Address
</h2>
<p>
Your Ether address is the same as your on-chain address.
<m-tooltip
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-eth/settings-eth.component.ts
View file @
f254fd21
import
{
Component
,
OnInit
,
Output
,
EventEmitter
,
ChangeDetectorRef
,
Input
,
}
from
'
@angular/core
'
;
import
{
WalletDashboardService
,
WalletCurrency
}
from
'
../dashboard.service
'
;
...
...
@@ -11,24 +11,40 @@ import { WalletDashboardService, WalletCurrency } from '../dashboard.service';
selector
:
'
m-walletSettings--eth
'
,
templateUrl
:
'
./settings-eth.component.html
'
,
})
export
class
WalletSettingsETHComponent
implements
OnInit
{
ethWallet
:
WalletCurrency
;
export
class
WalletSettingsETHComponent
{
@
Input
()
ethWallet
:
WalletCurrency
;
@
Output
()
scrollToTokenSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
();
constructor
(
protected
walletService
:
WalletDashboardService
,
private
cd
:
ChangeDetectorRef
)
{}
constructor
(
)
{}
//
protected walletService: WalletDashboardService,
//
private cd: ChangeDetectorRef
//
{}
ngOnInit
()
{
this
.
load
();
}
//
ngOnInit() {
//
this.load();
//
}
async
load
()
{
this
.
ethWallet
=
await
this
.
walletService
.
getEthAccount
();
this
.
detectChanges
();
}
detectChanges
()
{
this
.
cd
.
markForCheck
();
this
.
cd
.
detectChanges
();
}
// async load() {
// this.inProgress = true;
// this.error = '';
// this.walletService
// .getStripeAccount()
// .then((account: any) => {
// this.account = account;
// this.setView();
// })
// .catch(e => {
// this.error = e.message;
// this.view = 'error';
// this.inProgress = false;
// this.detectChanges();
// });
// this.ethWallet = await this.walletService.getEthAccount();
// this.detectChanges();
// }
// detectChanges() {
// this.cd.markForCheck();
// this.cd.detectChanges();
// }
}
This diff is collapsed.
src/app/modules/wallet/v2/settings-tokens/settings-tokens.component.html
View file @
f254fd21
<div
*ngIf=
"!wallet"
class=
"m-wallet__spinner"
>
<div
class=
"mdl-spinner mdl-js-spinner is-active"
[
mdl
]
></div>
</div>
<div
class=
"m-walletSettings"
*ngIf=
"wallet"
>
<div
class=
"m-walletSettingsView--setup"
*ngIf=
"!display"
>
<h4>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/settings-tokens/settings-tokens.component.ts
View file @
f254fd21
...
...
@@ -41,7 +41,7 @@ enum Views {
changeDetection
:
ChangeDetectionStrategy
.
OnPush
,
})
export
class
WalletSettingsTokensComponent
implements
OnInit
,
OnDestroy
{
@
Output
()
addressSetupComplete
:
EventEmitter
<
any
>
=
new
EventEmitter
();
@
Output
()
onchainAddressChanged
:
EventEmitter
<
any
>
=
new
EventEmitter
();
wallet
;
inProgress
:
boolean
=
false
;
linkingMetamask
:
boolean
=
false
;
...
...
@@ -81,6 +81,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
ngOnInit
()
{
this
.
load
();
}
async
load
()
{
this
.
wallet
=
await
this
.
walletService
.
getWallet
();
// Check if already has an address
...
...
@@ -88,7 +89,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
this
.
session
.
getLoggedInUser
().
eth_wallet
||
this
.
wallet
.
receiver
.
address
;
if
(
this
.
currentAddress
)
{
this
.
display
=
Views
.
CurrentAddress
;
this
.
addressSetupComplete
.
emit
();
this
.
onchainAddressChanged
.
emit
();
}
this
.
form
=
new
FormGroup
({
...
...
@@ -144,7 +145,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
if
(
window
.
navigator
.
msSaveOrOpenBlob
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
filename
);
this
.
inProgress
=
false
;
this
.
addressSetupComplete
.
emit
();
this
.
onchainAddressChanged
.
emit
();
this
.
detectChanges
();
}
else
{
const
link
=
window
.
document
.
createElement
(
'
a
'
),
...
...
@@ -161,7 +162,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
setTimeout
(()
=>
{
URL
.
revokeObjectURL
(
objectUrl
);
this
.
generatedAccount
=
null
;
this
.
addressSetupComplete
.
emit
();
this
.
onchainAddressChanged
.
emit
();
this
.
inProgress
=
false
;
if
(
!
(
this
.
cd
as
ViewRef
).
destroyed
)
{
this
.
detectChanges
();
...
...
@@ -194,7 +195,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
this
.
detectChanges
();
await
this
.
blockchain
.
setWallet
({
address
:
this
.
addressInput
.
value
});
this
.
addressSetupComplete
.
emit
();
this
.
onchainAddressChanged
.
emit
();
}
catch
(
e
)
{
// TODOOJM get rid of form toast
this
.
formToastService
.
error
(
e
);
...
...
@@ -269,7 +270,7 @@ export class WalletSettingsTokensComponent implements OnInit, OnDestroy {
await
this
.
blockchain
.
setWallet
({
address
:
address
});
this
.
currentAddress
=
address
;
this
.
display
=
Views
.
CurrentAddress
;
this
.
addressSetupComplete
.
emit
();
this
.
onchainAddressChanged
.
emit
();
}
catch
(
e
)
{
// TODOOJM get rid of form toast
this
.
formToastService
.
error
(
e
);
...
...
This diff is collapsed.
src/app/modules/wallet/v2/token-onboarding/token-onboarding.component.html
View file @
f254fd21
...
...
@@ -18,11 +18,11 @@
<span>
2.
</span>
<a
(click)=
"clickedAddressStep()"
[ngClass]=
"{ disabled: !phoneVerified, stepComplete:
addressAdded
}"
[ngClass]=
"{ disabled: !phoneVerified, stepComplete:
hasAddress
}"
>
Add your on-chain address
</a
>
<i
class=
"material-icons"
*ngIf=
"
addressAdded
"
>
check
</i>
<i
class=
"material-icons"
*ngIf=
"
hasAddress
"
>
check
</i>
</div>
<div
class=
"m-walletTokenOnboardingStep__desc"
>
Your Ethereum address allows you to start receiving payments on the
...
...
This diff is collapsed.
src/app/modules/wallet/v2/token-onboarding/token-onboarding.component.scss
View file @
f254fd21
...
...
@@ -88,11 +88,6 @@ m-walletTokenOnboarding {
}
// ***************************************************
@media
screen
and
(
max-width
:
$max-mobile
)
{
[
class
*=
'm-walletTokenOnboardingStep--'
]
{
padding
:
19px
;
}
}
@media
screen
and
(
max-width
:
890px
)
{
[
class
*=
'm-walletTokenOnboardingStep--'
]
{
...
...
This diff is collapsed.
src/app/modules/wallet/v2/token-onboarding/token-onboarding.component.ts
View file @
f254fd21
import
{
Component
,
OnInit
,
Input
,
Output
,
EventEmitter
,
ChangeDetectionStrategy
,
ChangeDetectorRef
,
}
from
'
@angular/core
'
;
import
{
Router
,
ActivatedRoute
}
from
'
@angular/router
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
import
{
FormToastService
}
from
'
../../../../common/services/form-toast.service
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
type
TokenOnboardingStep
=
'
phone
'
|
'
address
'
;
@
Component
({
selector
:
'
m-walletTokenOnboarding
'
,
templateUrl
:
'
./token-onboarding.component.html
'
,
changeDetection
:
ChangeDetectionStrategy
.
OnPush
,
})
export
class
WalletTokenOnboardingComponent
implements
OnInit
{
phoneVerified
=
false
;
addressAdded
=
false
;
export
class
WalletTokenOnboardingComponent
{
private
_hasAddress
:
boolean
;
@
Input
()
set
hasAddress
(
value
:
boolean
)
{
this
.
_hasAddress
=
value
;
if
(
value
)
{
this
.
addressSetupComplete
();
}
this
.
detectChanges
();
}
get
hasAddress
():
boolean
{
return
this
.
_hasAddress
;
}
private
_phoneVerified
:
boolean
;
@
Input
()
set
phoneVerified
(
value
:
boolean
)
{
this
.
_phoneVerified
=
value
;
if
(
value
)
{
this
.
phoneVerificationComplete
();
}
this
.
detectChanges
();
}
get
phoneVerified
():
boolean
{
return
this
.
_phoneVerified
;
}
showModal
=
false
;
activeStep
=
'
phone
'
;
// || address
activeStep
:
TokenOnboardingStep
=
'
phone
'
;
user
;
@
Output
()
onboardingComplete
:
EventEmitter
<
any
>
=
new
EventEmitter
();
@
Output
()
scrollToTokenSettings
:
EventEmitter
<
any
>
=
new
EventEmitter
();
constructor
(
protected
session
:
Session
,
protected
cd
:
ChangeDetectorRef
,
private
formToastService
:
FormToastService
,
protected
router
:
Router
,
private
route
:
ActivatedRoute
protected
session
:
Session
)
{}
ngOnInit
()
{
this
.
phoneVerified
=
this
.
session
.
getLoggedInUser
().
rewards
;
this
.
addressAdded
=
this
.
session
.
getLoggedInUser
().
eth_wallet
;
if
(
this
.
phoneVerified
&&
this
.
addressAdded
)
{
this
.
onboardingComplete
.
emit
();
}
this
.
detectChanges
();
}
clickedPhoneStep
()
{
if
(
!
this
.
phoneVerified
)
{
this
.
activeStep
=
'
phone
'
;
...
...
@@ -51,7 +62,7 @@ export class WalletTokenOnboardingComponent implements OnInit {
}
clickedAddressStep
()
{
if
(
!
this
.
addressAdded
)
{
if
(
!
this
.
hasAddress
)
{
this
.
activeStep
=
'
address
'
;
this
.
scrollToTokenSettings
.
emit
();
}
...
...
@@ -59,29 +70,36 @@ export class WalletTokenOnboardingComponent implements OnInit {
}
phoneVerificationComplete
()
{
this
.
phoneVerified
=
true
;
this
.
_phoneVerified
=
true
;
this
.
session
.
getLoggedInUser
().
rewards
=
true
;
this
.
showModal
=
false
;
this
.
formToastService
.
success
(
'
Your phone number has been verified
'
);
if
(
!
this
.
addressAdded
)
{
if
(
!
this
.
_hasAddress
)
{
this
.
activeStep
=
'
address
'
;
this
.
detectChanges
();
}
else
{
this
.
onboardingComplete
.
emit
();
this
.
finishedOnboarding
();
}
}
addressSetupComplete
()
{
this
.
addressAdded
=
true
;
this
.
_hasAddress
=
true
;
this
.
session
.
getLoggedInUser
().
eth_wallet
=
true
;
this
.
showModal
=
false
;
if
(
!
this
.
phoneVerified
)
{
if
(
!
this
.
_
phoneVerified
)
{
this
.
activeStep
=
'
phone
'
;
this
.
detectChanges
();
}
else
{
this
.
formToastService
.
success
(
"
Congratulations! You're ready to start earning rewards
"
);
this
.
onboardingComplete
.
emit
();
this
.
finishedOnboarding
();
}
}
finishedOnboarding
()
{
this
.
formToastService
.
success
(
"
You're ready to start earning token rewards!
"
);
this
.
onboardingComplete
.
emit
();
this
.
detectChanges
();
}
detectChanges
()
{
this
.
cd
.
markForCheck
();
this
.
cd
.
detectChanges
();
...
...
This diff is collapsed.
src/app/modules/wallet/v2/transactions-cash/transactions-cash.component.html
View file @
f254fd21
...
...
@@ -5,7 +5,7 @@
<ng-container
*ngIf=
"init"
>
<div
class=
"m-walletTransactionsTable__wrapper"
*ngIf=
"transactions.length
>= 1 || !noAccount
"
*ngIf=
"transactions.length
!== 0
"
>
<m-walletTransactionsTable
[currency]=
"currency"
...
...
@@ -21,7 +21,7 @@
</div>
<div
class=
"m-walletTransactions__noTxNotice"
*ngIf=
"transactions.length === 0
|| noAccount
"
*ngIf=
"transactions.length === 0"
>
<p>
You don't have any cash transactions yet.
</p>
</div>
...
...
This diff is collapsed.
src/app/modules/wallet/v2/transactions-cash/transactions-cash.component.ts
View file @
f254fd21
...
...
@@ -10,7 +10,7 @@ import { ActivatedRoute, Router } from '@angular/router';
import
{
Client
}
from
'
../../../../services/api/client
'
;
import
{
Session
}
from
'
../../../../services/session
'
;
import
{
Web3WalletService
}
from
'
../../../blockchain/web3-wallet.service
'
;
import
{
WalletDashboardService
}
from
'
../dashboard.service
'
;
import
{
WalletDashboardService
,
WalletCurrency
}
from
'
../dashboard.service
'
;
import
*
as
moment
from
'
moment
'
;
...
...
@@ -21,6 +21,7 @@ import * as moment from 'moment';
})
export
class
WalletTransactionsCashComponent
implements
OnInit
{
@
Input
()
noAccount
:
boolean
=
false
;
@
Input
()
cashWallet
:
WalletCurrency
;
// TODOOJM USE ME
init
:
boolean
=
false
;
inProgress
:
boolean
=
true
;
...
...
@@ -47,6 +48,7 @@ export class WalletTransactionsCashComponent implements OnInit {
)
{}
ngOnInit
()
{
console
.
log
(
'
cash transactions noAccount:
'
,
this
.
noAccount
);
if
(
!
this
.
noAccount
)
{
this
.
getStripeAccount
();
}
else
{
...
...
@@ -58,13 +60,13 @@ export class WalletTransactionsCashComponent implements OnInit {
async
getStripeAccount
()
{
try
{
const
account
=
await
this
.
walletService
.
getStripeAccount
();
console
.
log
(
'
txcashAcct
'
,
account
);
if
(
account
)
{
if
(
account
.
bankAccount
)
{
this
.
currency
=
account
.
bankAccount
.
currency
.
toUpperCase
();
}
this
.
runningTotal
=
account
.
pendingBalance
.
amount
/
100
;
this
.
loadTransactions
(
true
);
}
}
catch
(
e
)
{
console
.
error
(
e
);
...
...
@@ -76,24 +78,6 @@ export class WalletTransactionsCashComponent implements OnInit {
}
}
// const account = await this.walletService.getStripeAccount();
// console.log('txcashAcct', account);
// if (!account) {
// this.init = true;
// this.detectChanges();
// return;
// } else {
// if (account.bankAccount) {
// this.currency = account.bankAccount.currency.toUpperCase();
// }
// this.runningTotal = account.pendingBalance.amount / 100;
// this.detectChanges();
// }
// this.loadTransactions(true);
// }
async
loadTransactions
(
refresh
:
boolean
)
{
if
(
this
.
inProgress
&&
!
refresh
)
{
return
;
...
...
@@ -117,12 +101,8 @@ export class WalletTransactionsCashComponent implements OnInit {
opts
);
if
(
refresh
)
{
this
.
transactions
=
[];
}
if
(
response
)
{
if
(
response
&&
response
.
transactions
)
{
if
(
response
.
transactions
)
{
this
.
formatResponse
(
response
.
transactions
);
}
...
...
@@ -143,6 +123,11 @@ export class WalletTransactionsCashComponent implements OnInit {
}
finally
{
this
.
init
=
true
;
this
.
inProgress
=
false
;
console
.
log
(
'
cash transactions:
'
,
this
.
transactions
.
length
,
this
.
transactions
);
this
.
detectChanges
();
}
}
...
...
This diff is collapsed.
src/app/modules/wallet/v2/transactions-tokens/transactions-tokens.component.html
View file @
f254fd21
...
...
@@ -30,7 +30,7 @@
></m-dropdownSelector>
</div>
</div>
<ng-container
*ngIf=
"transactions.length
>= 1
"
>
<ng-container
*ngIf=
"transactions.length
!== 0
"
>
<m-walletTransactionsTable
currency=
"tokens"
[transactions]=
"transactions"
...
...
This diff is collapsed.
src/app/modules/wallet/v2/transactions-tokens/transactions-tokens.component.ts
View file @
f254fd21
...
...
@@ -146,12 +146,8 @@ export class WalletTransactionsTokensComponent implements OnInit, OnDestroy {
const
response
:
any
=
await
this
.
walletService
.
getTokenTransactions
(
opts
);
if
(
refresh
)
{
this
.
transactions
=
[];
}
if
(
response
)
{
if
(
response
&&
response
.
transactions
)
{
if
(
response
.
transactions
)
{
this
.
formatResponse
(
response
.
transactions
);
}
...
...
This diff is collapsed.
Please
register
or
sign in
to comment