Skip to content

Commit a4cf4c4

Browse files
committed
Adding support for payout status
1 parent 376f3c5 commit a4cf4c4

File tree

43 files changed

+295
-103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+295
-103
lines changed

browser/extensions/api/brave_rewards_api.cc

+8-3
Original file line numberDiff line numberDiff line change
@@ -578,12 +578,11 @@ BraveRewardsGetRewardsParametersFunction::Run() {
578578
}
579579

580580
rewards_service->GetRewardsParameters(base::BindOnce(
581-
&BraveRewardsGetRewardsParametersFunction::OnGet,
582-
this));
581+
&BraveRewardsGetRewardsParametersFunction::OnGetRewardsParameters, this));
583582
return RespondLater();
584583
}
585584

586-
void BraveRewardsGetRewardsParametersFunction::OnGet(
585+
void BraveRewardsGetRewardsParametersFunction::OnGetRewardsParameters(
587586
ledger::type::RewardsParametersPtr parameters) {
588587
base::DictionaryValue data;
589588

@@ -604,6 +603,12 @@ void BraveRewardsGetRewardsParametersFunction::OnGet(
604603
}
605604
data.SetList("autoContributeChoices", std::move(ac_choices));
606605

606+
auto payout_status = std::make_unique<base::DictionaryValue>();
607+
for (const auto& [key, value] : parameters->payout_status) {
608+
payout_status->SetString(key, value);
609+
}
610+
data.Set("payoutStatus", std::move(payout_status));
611+
607612
Respond(OneArgument(std::move(data)));
608613
}
609614

browser/extensions/api/brave_rewards_api.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class BraveRewardsGetRewardsParametersFunction : public ExtensionFunction {
180180
ResponseAction Run() override;
181181

182182
private:
183-
void OnGet(ledger::type::RewardsParametersPtr parameters);
183+
void OnGetRewardsParameters(ledger::type::RewardsParametersPtr parameters);
184184
};
185185

186186
class BraveRewardsGetBalanceReportFunction : public ExtensionFunction {

browser/ui/webui/brave_rewards_page_ui.cc

+13-6
Original file line numberDiff line numberDiff line change
@@ -667,14 +667,21 @@ void RewardsDOMHandler::OnGetRewardsParameters(
667667

668668
base::DictionaryValue data;
669669
if (parameters) {
670-
auto choices = std::make_unique<base::ListValue>();
671-
for (double const& choice : parameters->auto_contribute_choices) {
672-
choices->Append(choice);
670+
base::ListValue auto_contribute_choices;
671+
for (double const& item : parameters->auto_contribute_choices) {
672+
auto_contribute_choices.Append(item);
673673
}
674674

675-
data.SetDouble("rate", parameters->rate);
676-
data.SetDouble("autoContributeChoice", parameters->auto_contribute_choice);
677-
data.SetList("autoContributeChoices", std::move(choices));
675+
base::DictionaryValue payout_status;
676+
for (const auto& [key, value] : parameters->payout_status) {
677+
payout_status.SetStringKey(key, value);
678+
}
679+
680+
data.SetDoubleKey("rate", parameters->rate);
681+
data.SetDoubleKey("autoContributeChoice",
682+
parameters->auto_contribute_choice);
683+
data.SetKey("autoContributeChoices", std::move(auto_contribute_choices));
684+
data.SetKey("payoutStatus", std::move(payout_status));
678685
}
679686
CallJavascriptFunction("brave_rewards.rewardsParameters", data);
680687
}

browser/ui/webui/brave_tip_ui.cc

+6
Original file line numberDiff line numberDiff line change
@@ -459,10 +459,16 @@ void TipMessageHandler::GetRewardsParametersCallback(
459459
ac_choices.Append(item);
460460
}
461461

462+
base::Value payout_status(base::Value::Type::DICTIONARY);
463+
for (const auto& item : parameters->payout_status) {
464+
payout_status.SetStringKey(item.first, item.second);
465+
}
466+
462467
data.SetDoubleKey("rate", parameters->rate);
463468
data.SetKey("tipChoices", std::move(tip_choices));
464469
data.SetKey("monthlyTipChoices", std::move(monthly_choices));
465470
data.SetKey("autoContributeChoices", std::move(ac_choices));
471+
data.SetKey("payoutStatus", std::move(payout_status));
466472
}
467473

468474
FireWebUIListener("rewardsParametersUpdated", data);

common/extensions/api/brave_rewards.json

+7-1
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@
705705
{
706706
"name": "getRewardsParameters",
707707
"type": "function",
708-
"description": "Get default values that we get from the server",
708+
"description": "Get default Rewards parameters",
709709
"parameters": [
710710
{
711711
"type": "function",
@@ -734,6 +734,12 @@
734734
"type": "number",
735735
"minimum": 0
736736
}
737+
},
738+
"payoutStatus": {
739+
"type": "object",
740+
"additionalProperties": {
741+
"type": "string"
742+
}
737743
}
738744
}
739745
}

components/brave_new_tab_ui/components/default/rewards/index.tsx

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* This Source Code Form is subject to the terms of the Mozilla Public
2-
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
3-
* You can obtain one at http://mozilla.org/MPL/2.0/. */
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
3+
* You can obtain one at http://mozilla.org/MPL/2.0/. */
44

55
import * as React from 'react'
66

@@ -9,6 +9,7 @@ import createWidget from '../widget/index'
99
import { StyledTitleTab } from '../widgetTitleTab'
1010

1111
import { LocaleContext } from '../../../../brave_rewards/resources/shared/lib/locale_context'
12+
import { getProviderPayoutStatus } from '../../../../brave_rewards/resources/shared/lib/provider_payout_status'
1213
import { WithThemeVariables } from '../../../../brave_rewards/resources/shared/components/with_theme_variables'
1314
import { GrantInfo } from '../../../../brave_rewards/resources/shared/lib/grant_info'
1415
import { OnboardingCompletedStore } from '../../../../brave_rewards/resources/shared/lib/onboarding_completed_store'
@@ -92,6 +93,12 @@ export const RewardsWidget = createWidget((props: RewardsProps) => {
9293
const adsInfo = props.adsAccountStatement || null
9394
const grantInfo = getVisibleGrant(props.promotions || [])
9495

96+
const externalWallet = externalWalletFromExtensionData(props.externalWallet)
97+
const walletProvider = externalWallet ? externalWallet.provider : null
98+
const providerPayoutStatus = props.parameters.payoutStatus
99+
? getProviderPayoutStatus(props.parameters.payoutStatus, walletProvider)
100+
: 'off'
101+
95102
const onClaimGrant = () => {
96103
if (grantInfo) {
97104
chrome.braveRewards.showGrantCaptcha(grantInfo.id)
@@ -107,8 +114,9 @@ export const RewardsWidget = createWidget((props: RewardsProps) => {
107114
rewardsBalance={props.balance.total}
108115
exchangeCurrency='USD'
109116
exchangeRate={props.parameters.rate}
117+
providerPayoutStatus={providerPayoutStatus}
110118
grantInfo={grantInfo}
111-
externalWallet={externalWalletFromExtensionData(props.externalWallet)}
119+
externalWallet={externalWallet}
112120
nextPaymentDate={adsInfo ? adsInfo.nextPaymentDate : 0}
113121
earningsThisMonth={adsInfo ? adsInfo.earningsThisMonth : 0}
114122
earningsLastMonth={adsInfo ? adsInfo.earningsLastMonth : 0}

components/brave_new_tab_ui/storage/new_tab_storage.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ export const defaultState: NewTab.State = {
8181
totalContribution: 0.0,
8282
parameters: {
8383
rate: 0,
84-
monthlyTipChoices: []
84+
monthlyTipChoices: [],
85+
payoutStatus: {}
8586
}
8687
},
8788
currentStackWidget: '',

components/brave_rewards/browser/rewards_service.cc

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ void RewardsService::RegisterProfilePrefs(PrefRegistrySimple* registry) {
8080
"");
8181
registry->RegisterStringPref(prefs::kParametersTipChoices, "");
8282
registry->RegisterStringPref(prefs::kParametersMonthlyTipChoices, "");
83+
registry->RegisterStringPref(prefs::kParametersPayoutStatus, "");
8384
registry->RegisterBooleanPref(prefs::kFetchOldBalance, true);
8485
registry->RegisterBooleanPref(prefs::kEmptyBalanceChecked, false);
8586
registry->RegisterStringPref(prefs::kWalletBrave, "");

components/brave_rewards/common/pref_names.cc

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ const char kParametersTipChoices[] =
6464
"brave.rewards.parameters.tip.choices";
6565
const char kParametersMonthlyTipChoices[] =
6666
"brave.rewards.parameters.tip.monthly_choices";
67+
const char kParametersPayoutStatus[] = "brave.rewards.parameters.payout_status";
6768
const char kFetchOldBalance[] =
6869
"brave.rewards.fetch_old_balance";
6970
const char kEmptyBalanceChecked[] =

components/brave_rewards/common/pref_names.h

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ extern const char kParametersAutoContributeChoice[];
5454
extern const char kParametersAutoContributeChoices[];
5555
extern const char kParametersTipChoices[];
5656
extern const char kParametersMonthlyTipChoices[];
57+
extern const char kParametersPayoutStatus[];
5758
extern const char kFetchOldBalance[];
5859
extern const char kEmptyBalanceChecked[];
5960
extern const char kWalletBrave[];

components/brave_rewards/resources/android_page/components/adsBox.tsx

+11
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import {
2323
StyledNeedsBrowserUpdateContentBody
2424
} from './style'
2525

26+
import { externalWalletProviderFromString } from '../../shared/lib/external_wallet'
27+
import { getProviderPayoutStatus } from '../../shared/lib/provider_payout_status'
2628
import { PaymentStatusView } from '../../shared/components/payment_status_view'
2729

2830
// Utils
@@ -221,6 +223,7 @@ class AdsBox extends React.Component<Props, {}> {
221223
const {
222224
adsData,
223225
balanceReport,
226+
externalWallet,
224227
safetyNetFailed,
225228
parameters
226229
} = this.props.rewardsData
@@ -269,6 +272,13 @@ class AdsBox extends React.Component<Props, {}> {
269272

270273
const tokenString = getLocale('tokens')
271274

275+
const walletStatus = externalWallet ? externalWallet.status : null
276+
const walletProvider = externalWallet
277+
? externalWalletProviderFromString(externalWallet.type) : null
278+
const providerPayoutStatus = getProviderPayoutStatus(
279+
parameters.payoutStatus,
280+
walletProvider && walletStatus ? walletProvider : null)
281+
272282
return (
273283
<BoxMobile
274284
title={getLocale('adsTitle')}
@@ -282,6 +292,7 @@ class AdsBox extends React.Component<Props, {}> {
282292
earningsLastMonth={earningsLastMonth}
283293
earningsReceived={adEarningsReceived}
284294
nextPaymentDate={nextPaymentDate}
295+
providerPayoutStatus={providerPayoutStatus}
285296
/>
286297
</StyledArrivingSoon>
287298
<List title={<StyledListContent>{getLocale('adsCurrentEarnings')}</StyledListContent>}>

components/brave_rewards/resources/android_page/components/pageWallet.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
} from '../../ui/components'
1414
import { PendingContributionsModal } from './pending_contributions_modal'
1515
import { WalletCard, ExternalWalletAction } from '../../shared/components/wallet_card'
16+
import { getProviderPayoutStatus } from '../../shared/lib/provider_payout_status'
1617
import { ExternalWallet, ExternalWalletProvider, ExternalWalletStatus } from '../../shared/lib/external_wallet'
1718
import { Provider } from '../../ui/components/profile'
1819
import { DetailRow as PendingDetailRow, PendingType } from '../../ui/components/tablePending'
@@ -760,6 +761,10 @@ class PageWallet extends React.Component<Props, State> {
760761
}
761762
}
762763

764+
const providerPayoutStatus = getProviderPayoutStatus(
765+
parameters.payoutStatus,
766+
walletProvider && walletStatus ? walletProvider : null)
767+
763768
const summaryData = {
764769
adEarnings: balanceReport && balanceReport.ads || 0,
765770
autoContributions: balanceReport && balanceReport.contribute || 0,
@@ -773,6 +778,7 @@ class PageWallet extends React.Component<Props, State> {
773778
<WalletCard
774779
balance={total}
775780
externalWallet={externalWalletInfo}
781+
providerPayoutStatus={providerPayoutStatus}
776782
earningsThisMonth={adsData.adsEarningsThisMonth || 0}
777783
earningsLastMonth={adsData.adsEarningsLastMonth || 0}
778784
nextPaymentDate={0}

components/brave_rewards/resources/android_page/storage.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { debounce } from '../../../common/debounce'
88
const keyName = 'rewards-data'
99

1010
export const defaultState: Rewards.State = {
11-
version: 1,
11+
version: 2,
1212
createdTimestamp: null,
1313
enabledAds: true,
1414
enabledAdsMigrated: false,
@@ -77,7 +77,8 @@ export const defaultState: Rewards.State = {
7777
parameters: {
7878
autoContributeChoice: 0,
7979
autoContributeChoices: [],
80-
rate: 0
80+
rate: 0,
81+
payoutStatus: {}
8182
},
8283
initializing: true,
8384
paymentId: '',

components/brave_rewards/resources/extension/brave_rewards/background/storage.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ export const defaultState: RewardsExtension.State = {
77
parameters: {
88
monthlyTipChoices: [],
99
rate: 0,
10-
autoContributeChoices: [5, 10, 15, 20]
10+
autoContributeChoices: [5, 10, 15, 20],
11+
payoutStatus: {}
1112
},
1213
balanceReport: {
1314
ads: 0.0,

components/brave_rewards/resources/page/components/adsBox.tsx

+12-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import {
2020
import { Grid, Column, Select, ControlWrapper } from 'brave-ui/components'
2121
import { AlertCircleIcon } from 'brave-ui/components/icons'
2222

23+
import { externalWalletProviderFromString } from '../../shared/lib/external_wallet'
24+
import { getProviderPayoutStatus } from '../../shared/lib/provider_payout_status'
2325
import { PaymentStatusView } from '../../shared/components/payment_status_view'
2426

2527
import * as style from './style'
@@ -415,6 +417,7 @@ class AdsBox extends React.Component<Props, State> {
415417
adsData,
416418
adsHistory,
417419
balanceReport,
420+
externalWallet,
418421
parameters
419422
} = this.props.rewardsData
420423

@@ -442,6 +445,13 @@ class AdsBox extends React.Component<Props, State> {
442445
const rows = this.getGroupedAdsHistory(historyEntries, savedOnly)
443446
const tokenString = getLocale('tokens')
444447

448+
const walletStatus = externalWallet ? externalWallet.status : null
449+
const walletProvider = externalWallet
450+
? externalWalletProviderFromString(externalWallet.type) : null
451+
const providerPayoutStatus = getProviderPayoutStatus(
452+
parameters.payoutStatus,
453+
walletProvider && walletStatus ? walletProvider : null)
454+
445455
return (
446456
<>
447457
<Box
@@ -468,6 +478,7 @@ class AdsBox extends React.Component<Props, State> {
468478
earningsLastMonth={earningsLastMonth}
469479
earningsReceived={adEarningsReceived}
470480
nextPaymentDate={nextPaymentDate}
481+
providerPayoutStatus={providerPayoutStatus}
471482
/>
472483
</style.PaymentStatus>
473484
<List title={getLocale('adsCurrentEarnings')}>
@@ -496,7 +507,7 @@ class AdsBox extends React.Component<Props, State> {
496507
</List>
497508
{
498509
<ShowAdsHistory
499-
onAdsHistoryOpen={this.onAdsHistoryToggle}
510+
onAdsHistoryOpen={this.onAdsHistoryToggle}
500511
/>
501512
}
502513
</Box>

components/brave_rewards/resources/page/components/pageWallet.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
ModalQRCode
1414
} from '../../ui/components'
1515
import { WalletCard, ExternalWalletAction } from '../../shared/components/wallet_card'
16+
import { getProviderPayoutStatus } from '../../shared/lib/provider_payout_status'
1617
import { ExternalWallet, ExternalWalletProvider, ExternalWalletStatus } from '../../shared/lib/external_wallet'
1718
import { Provider } from '../../ui/components/profile'
1819
import { DetailRow as PendingDetailRow, PendingType } from '../../ui/components/tablePending'
@@ -760,6 +761,10 @@ class PageWallet extends React.Component<Props, State> {
760761
}
761762
}
762763

764+
const providerPayoutStatus = getProviderPayoutStatus(
765+
parameters.payoutStatus,
766+
walletProvider && walletStatus ? walletProvider : null)
767+
763768
const summaryData = {
764769
adEarnings: balanceReport && balanceReport.ads || 0,
765770
autoContributions: balanceReport && balanceReport.contribute || 0,
@@ -773,6 +778,7 @@ class PageWallet extends React.Component<Props, State> {
773778
<WalletCard
774779
balance={total}
775780
externalWallet={externalWalletInfo}
781+
providerPayoutStatus={providerPayoutStatus}
776782
earningsThisMonth={adsData.adsEarningsThisMonth || 0}
777783
earningsLastMonth={adsData.adsEarningsLastMonth || 0}
778784
nextPaymentDate={0}

components/brave_rewards/resources/page/storage.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { debounce } from '../../../common/debounce'
88
const keyName = 'rewards-data'
99

1010
export const defaultState: Rewards.State = {
11-
version: 1,
11+
version: 2,
1212
createdTimestamp: null,
1313
enabledAds: false,
1414
enabledAdsMigrated: false,
@@ -76,7 +76,8 @@ export const defaultState: Rewards.State = {
7676
parameters: {
7777
autoContributeChoice: 0,
7878
autoContributeChoices: [],
79-
rate: 0
79+
rate: 0,
80+
payoutStatus: {}
8081
},
8182
initializing: true,
8283
paymentId: '',

0 commit comments

Comments
 (0)