diff --git a/app/scripts/background.js b/app/scripts/background.js index d577ead41..c75f514d5 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -414,6 +414,7 @@ function setupController (initState, initLangCode) { controller.messageManager.on('updateBadge', updateBadge) controller.personalMessageManager.on('updateBadge', updateBadge) controller.typedMessageManager.on('updateBadge', updateBadge) + controller.providerApprovalController.store.on('update', updateBadge) /** * Updates the Web Extension's "badge" number, on the little fox in the toolbar. @@ -425,7 +426,8 @@ function setupController (initState, initLangCode) { var unapprovedMsgCount = controller.messageManager.unapprovedMsgCount var unapprovedPersonalMsgs = controller.personalMessageManager.unapprovedPersonalMsgCount var unapprovedTypedMsgs = controller.typedMessageManager.unapprovedTypedMessagesCount - var count = unapprovedTxCount + unapprovedMsgCount + unapprovedPersonalMsgs + unapprovedTypedMsgs + const pendingProviderRequests = controller.providerApprovalController.store.getState().providerRequests.length + var count = unapprovedTxCount + unapprovedMsgCount + unapprovedPersonalMsgs + unapprovedTypedMsgs + pendingProviderRequests if (count) { label = String(count) } diff --git a/app/scripts/controllers/provider-approval.js b/app/scripts/controllers/provider-approval.js index 21d7fd22e..53172c069 100644 --- a/app/scripts/controllers/provider-approval.js +++ b/app/scripts/controllers/provider-approval.js @@ -22,7 +22,9 @@ class ProviderApprovalController { this.platform = platform this.preferencesController = preferencesController this.publicConfigStore = publicConfigStore - this.store = new ObservableStore() + this.store = new ObservableStore({ + providerRequests: [], + }) if (platform && platform.addMessageListener) { platform.addMessageListener(({ action = '', force, origin, siteTitle, siteImage }) => { @@ -103,7 +105,7 @@ class ProviderApprovalController { */ approveProviderRequest (origin) { this.closePopup && this.closePopup() - const requests = this.store.getState().providerRequests || [] + const requests = this.store.getState().providerRequests this.platform && this.platform.sendMessage({ action: 'approve-provider-request', selectedAddress: this.publicConfigStore.getState().selectedAddress, @@ -121,7 +123,7 @@ class ProviderApprovalController { */ rejectProviderRequest (origin) { this.closePopup && this.closePopup() - const requests = this.store.getState().providerRequests || [] + const requests = this.store.getState().providerRequests this.platform && this.platform.sendMessage({ action: 'reject-provider-request' }, { active: true }) const providerRequests = requests.filter(request => request.origin !== origin) this.store.updateState({ providerRequests })