diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js index 6f0f8a6f9120..1eb409d88a09 100644 --- a/ui/selectors/selectors.js +++ b/ui/selectors/selectors.js @@ -2472,19 +2472,27 @@ export function getShowRecoveryPhraseReminder(state) { * @param state - Redux state object. * @returns Number of unapproved transactions */ -export function getNumberOfAllUnapprovedTransactionsAndMessages(state) { - const unapprovedTxs = getUnapprovedTransactions(state); - - const allUnapprovedMessages = { - ...unapprovedTxs, - ...state.metamask.unapprovedDecryptMsgs, - ...state.metamask.unapprovedPersonalMsgs, - ...state.metamask.unapprovedEncryptionPublicKeyMsgs, - ...state.metamask.unapprovedTypedMessages, - }; - const numUnapprovedMessages = Object.keys(allUnapprovedMessages).length; - return numUnapprovedMessages; -} +export const getNumberOfAllUnapprovedTransactionsAndMessages = createSelector( + [ + getUnapprovedTransactions, + (state) => state.metamask.unapprovedDecryptMsgs, + (state) => state.metamask.unapprovedPersonalMsgs, + (state) => state.metamask.unapprovedEncryptionPublicKeyMsgs, + (state) => state.metamask.unapprovedTypedMessages, + ], + ( + unapprovedTxs, + unapprovedDecryptMsgs, + unapprovedPersonalMsgs, + unapprovedEncryptionPublicKeyMsgs, + unapprovedTypedMessages, + ) => + Object.keys(unapprovedTxs ?? {}).length + + Object.keys(unapprovedDecryptMsgs ?? {}).length + + Object.keys(unapprovedPersonalMsgs ?? {}).length + + Object.keys(unapprovedEncryptionPublicKeyMsgs ?? {}).length + + Object.keys(unapprovedTypedMessages ?? {}).length, +); export const getCurrentNetwork = createDeepEqualSelector( getNetworkConfigurationsByChainId,