Remove betaUI preference state, replace with completedUiMigration

feature/default_network_editable
Whymarrh Whitby 6 years ago
parent a7a6318c13
commit c52ba96b85
  1. 14
      app/scripts/controllers/preferences.js
  2. 29
      app/scripts/migrations/032.js
  3. 8
      test/unit/ui/app/reducers/metamask.spec.js

@ -33,10 +33,7 @@ class PreferencesController {
tokens: [],
suggestedTokens: {},
useBlockie: false,
featureFlags: {
betaUI: true,
skipAnnounceBetaUI: true,
},
featureFlags: {},
knownMethodData: {},
currentLocale: opts.initLangCode,
identities: {},
@ -47,6 +44,7 @@ class PreferencesController {
useNativeCurrencyAsPrimaryCurrency: true,
},
completedOnboarding: false,
completedUiMigration: false,
}, opts.initState)
this.diagnostics = opts.diagnostics
@ -552,6 +550,14 @@ class PreferencesController {
return Promise.resolve(true)
}
/**
* Sets the {@code completedUiMigration} state to {@code true}, indicating that the user has completed the UI switch.
*/
completeUiMigration () {
this.store.updateState({ completedUiMigration: true })
return Promise.resolve(true)
}
//
// PRIVATE METHODS
//

@ -0,0 +1,29 @@
const version = 32
const clone = require('clone')
/**
* The purpose of this migration is to set the {@code completedUiMigration} flag based on the user's UI preferences
*/
module.exports = {
version,
migrate: async function (originalVersionedData) {
const versionedData = clone(originalVersionedData)
versionedData.meta.version = version
const state = versionedData.data
versionedData.data = transformState(state)
return versionedData
},
}
function transformState (state) {
const { PreferencesController } = state
if (PreferencesController) {
const { betaUI } = PreferencesController.featureFlags || {}
// Users who have been using the "beta" UI are considered to have completed the migration
// as they'll see no difference in this version
PreferencesController.completedUiMigration = betaUI
}
return state
}

@ -502,17 +502,15 @@ describe('MetaMask Reducers', () => {
assert.equal(state.useBlockie, true)
})
it('updates feature flag', () => {
it('updates an arbitrary feature flag', () => {
const state = reduceMetamask({}, {
type: actions.UPDATE_FEATURE_FLAGS,
value: {
betaUI: true,
skipAnnounceBetaUI: true,
foo: true,
},
})
assert.equal(state.featureFlags.betaUI, true)
assert.equal(state.featureFlags.skipAnnounceBetaUI, true)
assert.equal(state.featureFlags.foo, true)
})
it('updates network endpoint type', () => {

Loading…
Cancel
Save