From 7e57ba3c1c852432d55db959fd95c89c005830e0 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Tue, 23 Oct 2018 10:31:20 +0200 Subject: [PATCH 1/3] Fixes panel create wallet Fixes panel favicon Resolves https://github.com/brave/brave-browser/issues/1719 Resolves https://github.com/brave/brave-browser/issues/1792 --- .../browser/rewards_service_impl.cc | 7 +++++++ .../extension/brave_rewards/components/app.tsx | 17 +++++++++++++++++ .../brave_rewards/ui/reducers/wallet_reducer.ts | 4 ++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc index f4b87a77b2ad..dfba29282e3a 100644 --- a/components/brave_rewards/browser/rewards_service_impl.cc +++ b/components/brave_rewards/browser/rewards_service_impl.cc @@ -511,6 +511,13 @@ void RewardsServiceImpl::Shutdown() { void RewardsServiceImpl::OnWalletInitialized(ledger::Result result) { if (!ready_.is_signaled()) ready_.Signal(); + + if (result == ledger::Result::WALLET_CREATED) { + SetRewardsMainEnabled(true); + SetAutoContribute(true); + result = ledger::Result::LEDGER_OK; + } + TriggerOnWalletInitialized(result); } diff --git a/components/brave_rewards/extension/brave_rewards/components/app.tsx b/components/brave_rewards/extension/brave_rewards/components/app.tsx index dcd44af2cae5..fa8620d28111 100644 --- a/components/brave_rewards/extension/brave_rewards/components/app.tsx +++ b/components/brave_rewards/extension/brave_rewards/components/app.tsx @@ -32,6 +32,23 @@ export class RewardsPanel extends React.Component { chrome.windows.getCurrent({}, this.onWindowCallback) } + componentDidUpdate (prevProps: Props, prevState: State) { + if ( + !prevProps.rewardsPanelData.walletCreated && + this.props.rewardsPanelData.walletCreated + ) { + chrome.tabs.query({ + active: true, + currentWindow: true + }, (tabs) => { + if (!tabs || !tabs.length) { + return + } + this.props.actions.onTabRetrieved(tabs[0]) + }) + } + } + onWindowCallback = (window: chrome.windows.Window) => { this.setState({ windowId: window.id diff --git a/components/brave_rewards/ui/reducers/wallet_reducer.ts b/components/brave_rewards/ui/reducers/wallet_reducer.ts index ea379f8e74a8..259785852beb 100644 --- a/components/brave_rewards/ui/reducers/wallet_reducer.ts +++ b/components/brave_rewards/ui/reducers/wallet_reducer.ts @@ -14,10 +14,9 @@ const createWallet = (state: Rewards.State) => { state.enabledAds = true state.enabledContribute = true state.createdTimestamp = new Date().getTime() + chrome.send('brave_rewards.getReconcileStamp', []) chrome.send('brave_rewards.getAddresses', []) - chrome.send('brave_rewards.saveSetting', ['enabledMain', 'true']) - chrome.send('brave_rewards.saveSetting', ['enabledContribute', 'true']) chrome.send('brave_rewards.getContributionAmount', []) return state @@ -182,6 +181,7 @@ const walletReducer: Reducer = (state: Rewards.State, } state = { ...state } state = createWallet(state) + state.firstLoad = false break } case types.ON_CONTRIBUTION_AMOUNT: From 97a10815eab7b644ab4863fc1eeb7ec2417581b9 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Tue, 23 Oct 2018 12:34:08 +0200 Subject: [PATCH 2/3] Fixe panel show on restart Resolves https://github.com/brave/brave-browser/issues/1777 --- .../brave_rewards/components/app.tsx | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/components/brave_rewards/extension/brave_rewards/components/app.tsx b/components/brave_rewards/extension/brave_rewards/components/app.tsx index fa8620d28111..f646b545790e 100644 --- a/components/brave_rewards/extension/brave_rewards/components/app.tsx +++ b/components/brave_rewards/extension/brave_rewards/components/app.tsx @@ -37,22 +37,30 @@ export class RewardsPanel extends React.Component { !prevProps.rewardsPanelData.walletCreated && this.props.rewardsPanelData.walletCreated ) { - chrome.tabs.query({ - active: true, - currentWindow: true - }, (tabs) => { - if (!tabs || !tabs.length) { - return - } - this.props.actions.onTabRetrieved(tabs[0]) - }) + this.getTabData() } } + getTabData () { + chrome.tabs.query({ + active: true, + currentWindow: true + }, (tabs) => { + if (!tabs || !tabs.length) { + return + } + this.props.actions.onTabRetrieved(tabs[0]) + }) + } + onWindowCallback = (window: chrome.windows.Window) => { this.setState({ windowId: window.id }) + + if (this.props.rewardsPanelData.walletCreated) { + this.getTabData() + } } openRewards () { From e88e385378d2837b35be875ffba5829a112cffb0 Mon Sep 17 00:00:00 2001 From: NejcZdovc Date: Tue, 23 Oct 2018 12:50:19 +0200 Subject: [PATCH 3/3] Fixes panel not clearing after a switch Resolves https://github.com/brave/brave-browser/issues/1660 --- DEPS | 2 +- .../reducers/rewards_panel_reducer.ts | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/DEPS b/DEPS index 966b4e65c0e1..4c76ebbb9e97 100644 --- a/DEPS +++ b/DEPS @@ -10,7 +10,7 @@ deps = { "vendor/boto": "https://github.com/boto/boto@f7574aa6cc2c819430c1f05e9a1a1a666ef8169b", "vendor/python-patch": "https://github.com/svn2github/python-patch@a336a458016ced89aba90dfc3f4c8222ae3b1403", "vendor/sparkle": "https://github.com/brave/Sparkle.git@c0759cce415d7c0feae45005c8a013b1898711f0", - "vendor/bat-native-ledger": "https://github.com/brave-intl/bat-native-ledger@201a814e36dec9e4eca7c9c7a7f5c8d0f1f5be16", + "vendor/bat-native-ledger": "https://github.com/brave-intl/bat-native-ledger@9a4d0e00d78343de8863d60657727ae4eb5d6321", "vendor/bat-native-rapidjson": "https://github.com/brave-intl/bat-native-rapidjson.git@86aafe2ef89835ae71c9ed7c2527e3bb3000930e", "vendor/bip39wally-core-native": "https://github.com/brave-intl/bip39wally-core-native.git@9b119931c702d55be994117eb505d56310720b1d", "vendor/bat-native-anonize": "https://github.com/brave-intl/bat-native-anonize.git@adeff3254bb90ccdc9699040d5a4e1cd6b8393b7", diff --git a/components/brave_rewards/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts b/components/brave_rewards/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts index 37083bf196e4..ea13f621984c 100644 --- a/components/brave_rewards/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts +++ b/components/brave_rewards/extension/brave_rewards/background/reducers/rewards_panel_reducer.ts @@ -21,6 +21,14 @@ function setBadgeText (state: RewardsExtension.State): void { }) } +const getWindowId = (id: number) => { + return `id_${id}` +} + +const getNotificationId = (id: number) => { + return `n_${id}` +} + export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, action: any) => { if (state === undefined) { state = storage.load() @@ -59,14 +67,22 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a break } - state = { ...state } chrome.braveRewards.getPublisherData(tab.windowId, tab.url, tab.favIconUrl || '') + const id = getWindowId(tab.windowId) + let publishers: Record = state.publishers + if (publishers[id]) { + delete publishers[id] + } + state = { + ...state, + publishers + } break case types.ON_PUBLISHER_DATA: { const publisher = payload.publisher let publishers: Record = state.publishers - const id = `id_${payload.windowId}` + const id = getWindowId(payload.windowId) if (publisher && !publisher.publisher_key) { delete publishers[id] @@ -104,7 +120,7 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a return } - const id = `n_${payload.id}` + const id = getNotificationId(payload.id) let notifications: Record = state.notifications if (!notifications) { @@ -142,7 +158,7 @@ export const rewardsPanelReducer = (state: RewardsExtension.State | undefined, a return } - const id = `n_${payload.id}` + const id = getNotificationId(payload.id) let notifications: Record = state.notifications delete notifications[id]