From 7f0be875f5d5a766330b1267f16bfa56d044f713 Mon Sep 17 00:00:00 2001 From: Nejc Zdovc Date: Thu, 31 Jan 2019 09:09:24 +0100 Subject: [PATCH] Merge pull request #1525 from brave/panel-ac Hide AC options in the panel if AC if off --- browser/extensions/api/brave_rewards_api.cc | 24 +++++++++++++++++++ browser/extensions/api/brave_rewards_api.h | 13 ++++++++++ common/extensions/api/brave_rewards.json | 17 +++++++++++++ .../actions/rewards_panel_actions.ts | 4 ++++ .../reducers/rewards_panel_reducer.ts | 8 +++++++ .../brave_rewards/background/storage.ts | 3 ++- .../brave_rewards/components/app.tsx | 3 +++ .../brave_rewards/components/panel.tsx | 3 ++- .../constants/rewards_panel_types.ts | 3 ++- components/definitions/chromel.d.ts | 1 + components/definitions/rewardsExtensions.d.ts | 1 + package-lock.json | 4 ++-- package.json | 2 +- 13 files changed, 80 insertions(+), 6 deletions(-) diff --git a/browser/extensions/api/brave_rewards_api.cc b/browser/extensions/api/brave_rewards_api.cc index ccfc8161810d..31400e47d8f0 100644 --- a/browser/extensions/api/brave_rewards_api.cc +++ b/browser/extensions/api/brave_rewards_api.cc @@ -239,5 +239,29 @@ ExtensionFunction::ResponseAction BraveRewardsSaveAdsSettingFunction::Run() { return RespondNow(NoArguments()); } +BraveRewardsGetACEnabledFunction:: +~BraveRewardsGetACEnabledFunction() { +} + +ExtensionFunction::ResponseAction +BraveRewardsGetACEnabledFunction::Run() { + Profile* profile = Profile::FromBrowserContext(browser_context()); + RewardsService* rewards_service_ = + RewardsServiceFactory::GetForProfile(profile); + + if (!rewards_service_) { + return RespondNow(Error("Rewards service is not initialized")); + } + + rewards_service_->GetAutoContribute(base::Bind( + &BraveRewardsGetACEnabledFunction::OnGetACEnabled, + this)); + return RespondLater(); +} + +void BraveRewardsGetACEnabledFunction::OnGetACEnabled(bool enabled) { + Respond(OneArgument(std::make_unique(enabled))); +} + } // namespace api } // namespace extensions diff --git a/browser/extensions/api/brave_rewards_api.h b/browser/extensions/api/brave_rewards_api.h index 704b11e8e7a8..bd2b1a940ca1 100644 --- a/browser/extensions/api/brave_rewards_api.h +++ b/browser/extensions/api/brave_rewards_api.h @@ -137,6 +137,19 @@ class BraveRewardsSaveAdsSettingFunction : public UIThreadExtensionFunction { ResponseAction Run() override; }; +class BraveRewardsGetACEnabledFunction : public UIThreadExtensionFunction { + public: + DECLARE_EXTENSION_FUNCTION("braveRewards.getACEnabled", UNKNOWN) + + protected: + ~BraveRewardsGetACEnabledFunction() override; + + ResponseAction Run() override; + + private: + void OnGetACEnabled(bool enabled); +}; + } // namespace api } // namespace extensions diff --git a/common/extensions/api/brave_rewards.json b/common/extensions/api/brave_rewards.json index a7ddc6505486..d3f64d127f4e 100644 --- a/common/extensions/api/brave_rewards.json +++ b/common/extensions/api/brave_rewards.json @@ -373,6 +373,23 @@ } ] }, + { + "name": "getACEnabled", + "type": "function", + "description": "Gets whether auto contribute is enabled", + "parameters": [ + { + "type": "function", + "name": "callback", + "parameters": [ + { + "name": "enabled", + "type": "boolean" + } + ] + } + ] + }, { "name": "saveAdsSetting", "type": "function", diff --git a/components/brave_rewards/resources/extension/brave_rewards/actions/rewards_panel_actions.ts b/components/brave_rewards/resources/extension/brave_rewards/actions/rewards_panel_actions.ts index 602591ebc143..6b6a0d98058a 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/actions/rewards_panel_actions.ts +++ b/components/brave_rewards/resources/extension/brave_rewards/actions/rewards_panel_actions.ts @@ -94,3 +94,7 @@ export const OnPendingContributionsTotal = (amount: number) => action(types.ON_P export const onEnabledMain = (enabledMain: boolean) => action(types.ON_ENABLED_MAIN, { enabledMain }) + +export const onEnabledAC = (enabled: boolean) => action(types.ON_ENABLED_AC, { + enabled +}) diff --git a/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts b/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts index c710140a1c01..a0db0208f80f 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts +++ b/components/brave_rewards/resources/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts @@ -242,6 +242,14 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a state.enabledMain = payload.enabledMain break } + case types.ON_ENABLED_AC: + { + if (payload.enabled == null) { + break + } + state.enabledAC = payload.enabled + break + } } return state diff --git a/components/brave_rewards/resources/extension/brave_rewards/background/storage.ts b/components/brave_rewards/resources/extension/brave_rewards/background/storage.ts index dd83c24a7fff..8354bc9eb20c 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/background/storage.ts +++ b/components/brave_rewards/resources/extension/brave_rewards/background/storage.ts @@ -32,7 +32,8 @@ export const defaultState: RewardsExtension.State = { notifications: {}, currentNotification: undefined, pendingContributionTotal: 0, - enabledMain: false + enabledMain: false, + enabledAC: false } const cleanData = (state: RewardsExtension.State) => { diff --git a/components/brave_rewards/resources/extension/brave_rewards/components/app.tsx b/components/brave_rewards/resources/extension/brave_rewards/components/app.tsx index 3099509a34d1..0949e4c10e8c 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/components/app.tsx +++ b/components/brave_rewards/resources/extension/brave_rewards/components/app.tsx @@ -33,6 +33,9 @@ export class RewardsPanel extends React.Component { chrome.braveRewards.getRewardsMainEnabled(((enabled: boolean) => { this.props.actions.onEnabledMain(enabled) })) + chrome.braveRewards.getACEnabled(((enabled: boolean) => { + this.props.actions.onEnabledAC(enabled) + })) } componentDidUpdate (prevProps: Props, prevState: State) { diff --git a/components/brave_rewards/resources/extension/brave_rewards/components/panel.tsx b/components/brave_rewards/resources/extension/brave_rewards/components/panel.tsx index cc6fa1724815..364eb58a4eef 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/components/panel.tsx +++ b/components/brave_rewards/resources/extension/brave_rewards/components/panel.tsx @@ -289,7 +289,7 @@ export class Panel extends React.Component { } render () { - const { grant, pendingContributionTotal } = this.props.rewardsPanelData + const { grant, pendingContributionTotal, enabledAC } = this.props.rewardsPanelData const { balance, rates, grants } = this.props.rewardsPanelData.walletProperties const publisher: RewardsExtension.Publisher | undefined = this.getPublisher() const converted = utils.convertBalance(balance.toString(), rates) @@ -357,6 +357,7 @@ export class Panel extends React.Component { onAmountChange={this.doNothing} onIncludeInAuto={this.switchAutoContribute} showUnVerified={!publisher.verified} + acEnabled={enabledAC} moreLink={'https://brave.com/faq-rewards/#unclaimed-funds'} /> : null diff --git a/components/brave_rewards/resources/extension/brave_rewards/constants/rewards_panel_types.ts b/components/brave_rewards/resources/extension/brave_rewards/constants/rewards_panel_types.ts index c802cd520d3c..c1fc6f748b57 100644 --- a/components/brave_rewards/resources/extension/brave_rewards/constants/rewards_panel_types.ts +++ b/components/brave_rewards/resources/extension/brave_rewards/constants/rewards_panel_types.ts @@ -26,7 +26,8 @@ export const enum types { ON_GRANT_DELETE = '@@rewards_panel/ON_GRANT_DELETE', ON_GRANT_FINISH = '@@rewards_panel/ON_GRANT_FINISH', ON_PENDING_CONTRIBUTIONS_TOTAL = '@@rewards_panel/ON_PENDING_CONTRIBUTIONS_TOTAL', - ON_ENABLED_MAIN = '@@rewards_panel/ON_ENABLED_MAIN' + ON_ENABLED_MAIN = '@@rewards_panel/ON_ENABLED_MAIN', + ON_ENABLED_AC = '@@rewards_panel/ON_ENABLED_AC' } // Note: This declaration must match the RewardsNotificationType enum in diff --git a/components/definitions/chromel.d.ts b/components/definitions/chromel.d.ts index b491b7b4fab4..25fdd377530e 100644 --- a/components/definitions/chromel.d.ts +++ b/components/definitions/chromel.d.ts @@ -56,6 +56,7 @@ declare namespace chrome.braveRewards { const onWalletFailed: { addListener: (callback: () => void) => void } + const getACEnabled: (callback: (enabled: boolean) => void) => {} } declare namespace chrome.rewardsNotifications { diff --git a/components/definitions/rewardsExtensions.d.ts b/components/definitions/rewardsExtensions.d.ts index 9889ce8ca576..2ff47e632e7d 100644 --- a/components/definitions/rewardsExtensions.d.ts +++ b/components/definitions/rewardsExtensions.d.ts @@ -1,6 +1,7 @@ declare namespace RewardsExtension { interface State { currentNotification?: string + enabledAC: boolean enabledMain: boolean notifications: Record publishers: Record diff --git a/package-lock.json b/package-lock.json index 79e181430cef..64deb763fb51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1237,8 +1237,8 @@ } }, "brave-ui": { - "version": "github:brave/brave-ui#c46dbea2ad970f5b01c66a87a588379b2871e298", - "from": "github:brave/brave-ui#c46dbea2ad970f5b01c66a87a588379b2871e298", + "version": "github:brave/brave-ui#844d6b067596f6863f834a8de4921333e832cad0", + "from": "github:brave/brave-ui#844d6b067596f6863f834a8de4921333e832cad0", "dev": true, "requires": { "emptykit.css": "^1.0.1", diff --git a/package.json b/package.json index 6a0306f52c49..5bb5ca70fa3b 100644 --- a/package.json +++ b/package.json @@ -273,7 +273,7 @@ "@types/react-dom": "^16.0.7", "@types/react-redux": "6.0.4", "awesome-typescript-loader": "^5.2.0", - "brave-ui": "github:brave/brave-ui#c46dbea2ad970f5b01c66a87a588379b2871e298", + "brave-ui": "github:brave/brave-ui#844d6b067596f6863f834a8de4921333e832cad0", "css-loader": "^0.28.9", "csstype": "^2.5.5", "emptykit.css": "^1.0.1",