From 34aeef50a0519576da64f23d65afdfbfa278273d Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 14 Mar 2018 16:31:45 -0700 Subject: i18n - load locales manually --- app/scripts/popup.js | 133 ++++++++++++++++++++++++++++----------------------- 1 file changed, 74 insertions(+), 59 deletions(-) (limited to 'app/scripts/popup.js') diff --git a/app/scripts/popup.js b/app/scripts/popup.js index 11d50ee87..0677311da 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -1,3 +1,9 @@ +// setup i18n +const Translator = require('../../ui/create-i18n') +const translator = new Translator() +global.translator = translator +global.getMessage = translator.getMessage.bind(translator) + const injectCss = require('inject-css') const OldMetaMaskUiCss = require('../../old-ui/css') const NewMetaMaskUiCss = require('../../ui/css') @@ -10,68 +16,77 @@ const NotificationManager = require('./lib/notification-manager') const notificationManager = new NotificationManager() const setupRaven = require('./lib/setupRaven') -// create platform global -global.platform = new ExtensionPlatform() - -// setup sentry error reporting -const release = global.platform.getVersion() -setupRaven({ release }) - -// inject css -// const css = MetaMaskUiCss() -// injectCss(css) - -// identify window type (popup, notification) -const windowType = isPopupOrNotification() -global.METAMASK_UI_TYPE = windowType -closePopupIfOpen(windowType) - -// setup stream to background -const extensionPort = extension.runtime.connect({ name: windowType }) -const connectionStream = new PortStream(extensionPort) - -// start ui -const container = document.getElementById('app-content') -startPopup({ container, connectionStream }, (err, store) => { - if (err) return displayCriticalError(err) - - // Code commented out until we begin auto adding users to NewUI - // const { isMascara, identities = {}, featureFlags = {} } = store.getState().metamask - // const firstTime = Object.keys(identities).length === 0 - 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 deleteInjectedCss = injectCss(css) - let newBetaUIState - - store.subscribe(() => { - const state = store.getState() - newBetaUIState = state.metamask.featureFlags.betaUI - if (newBetaUIState !== betaUIState) { - deleteInjectedCss() - betaUIState = newBetaUIState - css = betaUIState ? NewMetaMaskUiCss() : OldMetaMaskUiCss() - deleteInjectedCss = injectCss(css) - } - if (state.appState.shouldClose) notificationManager.closePopup() +start().catch(log.error) + +async function start() { + + // create platform global + global.platform = new ExtensionPlatform() + + // setup sentry error reporting + const release = global.platform.getVersion() + setupRaven({ release }) + + // Load translator + await translator.setLocale('ja') + + // inject css + // const css = MetaMaskUiCss() + // injectCss(css) + + // identify window type (popup, notification) + const windowType = isPopupOrNotification() + global.METAMASK_UI_TYPE = windowType + closePopupIfOpen(windowType) + + // setup stream to background + const extensionPort = extension.runtime.connect({ name: windowType }) + const connectionStream = new PortStream(extensionPort) + + // start ui + const container = document.getElementById('app-content') + startPopup({ container, connectionStream }, (err, store) => { + if (err) return displayCriticalError(err) + + // Code commented out until we begin auto adding users to NewUI + // const { isMascara, identities = {}, featureFlags = {} } = store.getState().metamask + // const firstTime = Object.keys(identities).length === 0 + 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 deleteInjectedCss = injectCss(css) + let newBetaUIState + + store.subscribe(() => { + const state = store.getState() + newBetaUIState = state.metamask.featureFlags.betaUI + if (newBetaUIState !== betaUIState) { + deleteInjectedCss() + betaUIState = newBetaUIState + css = betaUIState ? NewMetaMaskUiCss() : OldMetaMaskUiCss() + deleteInjectedCss = injectCss(css) + } + if (state.appState.shouldClose) notificationManager.closePopup() + }) }) -}) -function closePopupIfOpen (windowType) { - if (windowType !== 'notification') { - notificationManager.closePopup() + function closePopupIfOpen (windowType) { + if (windowType !== 'notification') { + notificationManager.closePopup() + } + } + + function displayCriticalError (err) { + container.innerHTML = '
The MetaMask app failed to load: please open and close MetaMask again to restart.
' + container.style.height = '80px' + log.error(err.stack) + throw err } -} -function displayCriticalError (err) { - container.innerHTML = '
The MetaMask app failed to load: please open and close MetaMask again to restart.
' - container.style.height = '80px' - log.error(err.stack) - throw err } -- cgit From 5fe0be722b6514692a68e920ee8058c5d572237d Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 15 Mar 2018 21:59:45 -0230 Subject: Handle i18n with redux. --- app/scripts/popup.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'app/scripts/popup.js') diff --git a/app/scripts/popup.js b/app/scripts/popup.js index 0677311da..fe6aae799 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -1,8 +1,8 @@ // setup i18n -const Translator = require('../../ui/create-i18n') -const translator = new Translator() -global.translator = translator -global.getMessage = translator.getMessage.bind(translator) +// const Translator = require('../../ui/create-i18n') +// const translator = new Translator() +// global.translator = translator +// global.getMessage = translator.getMessage.bind(translator) const injectCss = require('inject-css') const OldMetaMaskUiCss = require('../../old-ui/css') @@ -15,6 +15,7 @@ const ExtensionPlatform = require('./platforms/extension') const NotificationManager = require('./lib/notification-manager') const notificationManager = new NotificationManager() const setupRaven = require('./lib/setupRaven') +const { fetchLocale } = require('../../ui/i18n-helper.js') start().catch(log.error) @@ -28,7 +29,8 @@ async function start() { setupRaven({ release }) // Load translator - await translator.setLocale('ja') + // await translator.setLocale('ja') + const localeMessages = await fetchLocale('ja') // inject css // const css = MetaMaskUiCss() @@ -45,7 +47,7 @@ async function start() { // start ui const container = document.getElementById('app-content') - startPopup({ container, connectionStream }, (err, store) => { + startPopup({ container, connectionStream, localeMessages }, (err, store) => { if (err) return displayCriticalError(err) // Code commented out until we begin auto adding users to NewUI -- cgit From a51e8f6a165163b9cc37a4eb5b315cd37af17f77 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 19 Mar 2018 13:36:16 -0230 Subject: Fetch localeMessages in front end only. --- app/scripts/popup.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'app/scripts/popup.js') diff --git a/app/scripts/popup.js b/app/scripts/popup.js index fe6aae799..5f526759a 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -1,9 +1,3 @@ -// setup i18n -// const Translator = require('../../ui/create-i18n') -// const translator = new Translator() -// global.translator = translator -// global.getMessage = translator.getMessage.bind(translator) - const injectCss = require('inject-css') const OldMetaMaskUiCss = require('../../old-ui/css') const NewMetaMaskUiCss = require('../../ui/css') @@ -28,10 +22,6 @@ async function start() { const release = global.platform.getVersion() setupRaven({ release }) - // Load translator - // await translator.setLocale('ja') - const localeMessages = await fetchLocale('ja') - // inject css // const css = MetaMaskUiCss() // injectCss(css) @@ -47,7 +37,7 @@ async function start() { // start ui const container = document.getElementById('app-content') - startPopup({ container, connectionStream, localeMessages }, (err, store) => { + startPopup({ container, connectionStream }, (err, store) => { if (err) return displayCriticalError(err) // Code commented out until we begin auto adding users to NewUI -- cgit From 2ddc2cc1fbe5249f70d80e2a74146cb87dcc8421 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 19 Mar 2018 16:53:06 -0230 Subject: Lint fixes. --- app/scripts/popup.js | 1 - 1 file changed, 1 deletion(-) (limited to 'app/scripts/popup.js') diff --git a/app/scripts/popup.js b/app/scripts/popup.js index 5f526759a..6ef0be1ff 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -9,7 +9,6 @@ const ExtensionPlatform = require('./platforms/extension') const NotificationManager = require('./lib/notification-manager') const notificationManager = new NotificationManager() const setupRaven = require('./lib/setupRaven') -const { fetchLocale } = require('../../ui/i18n-helper.js') start().catch(log.error) -- cgit