From e74a54ccbc0d18f8548bd0c1f030257e4a49fd6b Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Tue, 16 Nov 2021 18:52:01 -0330 Subject: [PATCH] Ensure the test network dismissal message in the network dropdown is permanently dismissed (#12723) --- app/scripts/controllers/app-state.js | 9 +++++++++ app/scripts/metamask-controller.js | 4 ++++ ui/components/app/dropdowns/network-dropdown.js | 2 +- ui/ducks/app/app.js | 7 ------- ui/ducks/app/app.test.js | 10 ---------- ui/store/actionConstants.js | 2 -- ui/store/actions.js | 10 ++++------ 7 files changed, 18 insertions(+), 26 deletions(-) diff --git a/app/scripts/controllers/app-state.js b/app/scripts/controllers/app-state.js index 84ee14394..f68579bad 100644 --- a/app/scripts/controllers/app-state.js +++ b/app/scripts/controllers/app-state.js @@ -30,6 +30,7 @@ export default class AppStateController extends EventEmitter { fullScreenGasPollTokens: [], recoveryPhraseReminderHasBeenShown: false, recoveryPhraseReminderLastShown: new Date().getTime(), + showTestnetMessageInDropdown: true, ...initState, }); this.timer = null; @@ -228,4 +229,12 @@ export default class AppStateController extends EventEmitter { fullScreenGasPollTokens: [], }); } + + /** + * Sets whether the testnet dismissal link should be shown in the network dropdown + * @returns {void} + */ + setShowTestnetMessageInDropdown(showTestnetMessageInDropdown) { + this.store.updateState({ showTestnetMessageInDropdown }); + } } diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 9ac44bee4..bdf26f80f 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -954,6 +954,10 @@ export default class MetamaskController extends EventEmitter { this.appStateController.setRecoveryPhraseReminderLastShown, this.appStateController, ), + setShowTestnetMessageInDropdown: nodeify( + this.appStateController.setShowTestnetMessageInDropdown, + this.appStateController, + ), // EnsController tryReverseResolveAddress: nodeify( diff --git a/ui/components/app/dropdowns/network-dropdown.js b/ui/components/app/dropdowns/network-dropdown.js index b20cce6f3..b446036e6 100644 --- a/ui/components/app/dropdowns/network-dropdown.js +++ b/ui/components/app/dropdowns/network-dropdown.js @@ -43,7 +43,7 @@ function mapStateToProps(state) { shouldShowTestNetworks: getShowTestNetworks(state), frequentRpcListDetail: state.metamask.frequentRpcListDetail || [], networkDropdownOpen: state.appState.networkDropdownOpen, - showTestnetMessageInDropdown: state.appState.showTestnetMessageInDropdown, + showTestnetMessageInDropdown: state.metamask.showTestnetMessageInDropdown, }; } diff --git a/ui/ducks/app/app.js b/ui/ducks/app/app.js index e7b4c2c9f..2baa2f53d 100644 --- a/ui/ducks/app/app.js +++ b/ui/ducks/app/app.js @@ -55,7 +55,6 @@ export default function reduceApp(state = {}, action) { ledgerWebHidConnectedStatus: WEBHID_CONNECTED_STATUSES.UNKNOWN, ledgerTransportStatus: TRANSPORT_STATES.NONE, newNetworkAdded: '', - showTestnetMessageInDropdown: true, ...state, }; @@ -73,12 +72,6 @@ export default function reduceApp(state = {}, action) { networkDropdownOpen: false, }; - case actionConstants.HIDE_TESTNET_MESSAGE: - return { - ...appState, - showTestnetMessageInDropdown: false, - }; - // alert methods case actionConstants.ALERT_OPEN: return { diff --git a/ui/ducks/app/app.test.js b/ui/ducks/app/app.test.js index 2ad0222d5..c71a539e0 100644 --- a/ui/ducks/app/app.test.js +++ b/ui/ducks/app/app.test.js @@ -38,16 +38,6 @@ describe('App State', () => { expect(newState.networkDropdownOpen).toStrictEqual(false); }); - it('sets showTestnetMessageInDropdown dropdown to false', () => { - const testnetMessage = { showTestnetMessageInDropdown: true }; - const state = { ...metamaskState, ...testnetMessage }; - const newState = reduceApp(state, { - type: actions.HIDE_TESTNET_MESSAGE, - }); - - expect(newState.showTestnetMessageInDropdown).toStrictEqual(false); - }); - it('opens alert', () => { const state = reduceApp(metamaskState, { type: actions.ALERT_OPEN, diff --git a/ui/store/actionConstants.js b/ui/store/actionConstants.js index 57e40f4bd..81683dcb4 100644 --- a/ui/store/actionConstants.js +++ b/ui/store/actionConstants.js @@ -9,8 +9,6 @@ export const QR_CODE_DETECTED = 'UI_QR_CODE_DETECTED'; // network dropdown open export const NETWORK_DROPDOWN_OPEN = 'UI_NETWORK_DROPDOWN_OPEN'; export const NETWORK_DROPDOWN_CLOSE = 'UI_NETWORK_DROPDOWN_CLOSE'; -// network dropdown -export const HIDE_TESTNET_MESSAGE = 'HIDE_TESTNET_MESSAGE'; // remote state export const UPDATE_METAMASK_STATE = 'UPDATE_METAMASK_STATE'; export const SELECTED_ADDRESS_CHANGED = 'SELECTED_ADDRESS_CHANGED'; diff --git a/ui/store/actions.js b/ui/store/actions.js index c12b0072f..0062a4c7e 100644 --- a/ui/store/actions.js +++ b/ui/store/actions.js @@ -1658,12 +1658,6 @@ export function hideNetworkDropdown() { }; } -export function hideTestNetMessage() { - return { - type: actionConstants.HIDE_TESTNET_MESSAGE, - }; -} - export function showModal(payload) { return { type: actionConstants.MODAL_OPEN, @@ -2924,3 +2918,7 @@ export async function setWeb3ShimUsageAlertDismissed(origin) { export async function detectNewTokens() { return promisifiedBackground.detectNewTokens(); } + +export function hideTestNetMessage() { + return promisifiedBackground.setShowTestnetMessageInDropdown(false); +}