1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Default to the new UI for first time users

This commit is contained in:
Whymarrh Whitby 2018-09-24 13:27:37 -02:30
parent a7b3750a3e
commit c482c9926c
4 changed files with 26 additions and 32 deletions

View File

@ -32,7 +32,9 @@ class PreferencesController {
tokens: [], tokens: [],
suggestedTokens: {}, suggestedTokens: {},
useBlockie: false, useBlockie: false,
featureFlags: {}, featureFlags: {
betaUI: true,
},
currentLocale: opts.initLangCode, currentLocale: opts.initLangCode,
identities: {}, identities: {},
lostIdentities: {}, lostIdentities: {},

View File

@ -1,6 +1,7 @@
const injectCss = require('inject-css') const injectCss = require('inject-css')
const OldMetaMaskUiCss = require('../../old-ui/css') const OldMetaMaskUiCss = require('../../old-ui/css')
const NewMetaMaskUiCss = require('../../ui/css') const NewMetaMaskUiCss = require('../../ui/css')
const {getShouldUseNewUi} = require('../../ui/app/selectors')
const startPopup = require('./popup-core') const startPopup = require('./popup-core')
const PortStream = require('extension-port-stream') const PortStream = require('extension-port-stream')
const { getEnvironmentType } = require('./lib/util') const { getEnvironmentType } = require('./lib/util')
@ -33,10 +34,6 @@ async function start () {
return state return state
} }
// inject css
// const css = MetaMaskUiCss()
// injectCss(css)
// identify window type (popup, notification) // identify window type (popup, notification)
const windowType = getEnvironmentType(window.location.href) const windowType = getEnvironmentType(window.location.href)
global.METAMASK_UI_TYPE = windowType global.METAMASK_UI_TYPE = windowType
@ -51,15 +48,9 @@ async function start () {
startPopup({ container, connectionStream }, (err, store) => { startPopup({ container, connectionStream }, (err, store) => {
if (err) return displayCriticalError(err) if (err) return displayCriticalError(err)
// Code commented out until we begin auto adding users to NewUI const state = store.getState()
// const { isMascara, identities = {}, featureFlags = {} } = store.getState().metamask let betaUIState = Boolean(state.featureFlags && state.featureFlags.betaUI)
// const firstTime = Object.keys(identities).length === 0 const useBetaCss = getShouldUseNewUi(state)
const { isMascara, featureFlags = {} } = store.getState().metamask
let betaUIState = featureFlags.betaUI
// Code commented out until we begin auto adding users to NewUI
// const useBetaCss = isMascara || firstTime || betaUIState
const useBetaCss = isMascara || betaUIState
let css = useBetaCss ? NewMetaMaskUiCss() : OldMetaMaskUiCss() let css = useBetaCss ? NewMetaMaskUiCss() : OldMetaMaskUiCss()
let deleteInjectedCss = injectCss(css) let deleteInjectedCss = injectCss(css)

View File

@ -5,17 +5,14 @@ const h = require('react-hyperscript')
const { HashRouter } = require('react-router-dom') const { HashRouter } = require('react-router-dom')
const App = require('./app') const App = require('./app')
const OldApp = require('../../old-ui/app/app') const OldApp = require('../../old-ui/app/app')
const { autoAddToBetaUI } = require('./selectors') const { getShouldUseNewUi } = require('./selectors')
const { setFeatureFlag } = require('./actions') const { setFeatureFlag } = require('./actions')
const I18nProvider = require('./i18n-provider') const I18nProvider = require('./i18n-provider')
function mapStateToProps (state) { function mapStateToProps (state) {
return { return {
betaUI: state.metamask.featureFlags.betaUI,
autoAdd: autoAddToBetaUI(state),
isUnlocked: state.metamask.isUnlocked,
isMascara: state.metamask.isMascara, isMascara: state.metamask.isMascara,
firstTime: Object.keys(state.metamask.identities).length === 0, shouldUseNewUi: getShouldUseNewUi(state),
} }
} }
@ -56,17 +53,13 @@ SelectedApp.prototype.componentWillReceiveProps = function (nextProps) {
} }
SelectedApp.prototype.render = function () { SelectedApp.prototype.render = function () {
// Code commented out until we begin auto adding users to NewUI const { shouldUseNewUi } = this.props
// const { betaUI, isMascara, firstTime } = this.props const newUi = h(HashRouter, {
// const Selected = betaUI || isMascara || firstTime ? App : OldApp hashType: 'noslash',
}, [
const { betaUI, isMascara } = this.props h(I18nProvider, [
h(App),
return betaUI || isMascara ]),
? h(HashRouter, { ])
hashType: 'noslash', return shouldUseNewUi ? newUi : h(OldApp)
}, [
h(I18nProvider, [ h(App) ]),
])
: h(OldApp)
} }

View File

@ -31,6 +31,7 @@ const selectors = {
getSelectedTokenToFiatRate, getSelectedTokenToFiatRate,
getSelectedTokenContract, getSelectedTokenContract,
autoAddToBetaUI, autoAddToBetaUI,
getShouldUseNewUi,
getSendMaxModeState, getSendMaxModeState,
getCurrentViewContext, getCurrentViewContext,
getTotalUnapprovedCount, getTotalUnapprovedCount,
@ -185,6 +186,13 @@ function autoAddToBetaUI (state) {
return userIsNotInBeta && userPassesThreshold return userIsNotInBeta && userPassesThreshold
} }
function getShouldUseNewUi (state) {
const isAlreadyUsingBetaUi = state.metamask.featureFlags.betaUI
const isMascara = state.metamask.isMascara
const isFreshInstall = Object.keys(state.metamask.identities).length === 0
return isAlreadyUsingBetaUi || isMascara || isFreshInstall
}
function getCurrentViewContext (state) { function getCurrentViewContext (state) {
const { currentView = {} } = state.appState const { currentView = {} } = state.appState
return currentView.context return currentView.context