diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json
index 97f54b51f..ad94572ae 100644
--- a/app/_locales/en/messages.json
+++ b/app/_locales/en/messages.json
@@ -2515,6 +2515,19 @@
"message": "Swapping on mobile is here!",
"description": "Title for a notification in the 'See What's New' popup. Tells users that they can now use MetaMask Swaps on Mobile."
},
+ "notifications20ActionText": {
+ "message": "Learn more",
+ "description": "The 'call to action' on the button, or link, of the 'Stay secure' notification. Upon clicking, users will be taken to a ledger page to resolve the U2F connection issue."
+ },
+
+ "notifications20Description": {
+ "message": "If you're on the latest version of Firefox, you might be experiencing an issue related to Firefox dropping U2F support.",
+ "description": "Description of a notification in the 'See What's New' popup. Describes the U2F support being dropped by firefox and that it affects ledger users."
+ },
+ "notifications20Title": {
+ "message": "Ledger and Firefox Users Experiencing Connection Issues",
+ "description": "Title for a notification in the 'See What's New' popup. Tells users that latest firefox users using U2F may experience connection issues."
+ },
"notifications3ActionText": {
"message": "Read more",
"description": "The 'call to action' on the button, or link, of the 'Stay secure' notification. Upon clicking, users will be taken to a page about security on the metamask support website."
@@ -4518,6 +4531,22 @@
"transferFrom": {
"message": "Transfer from"
},
+ "troubleConnectingToLedgerU2FOnFirefox": {
+ "message": "We're having trouble connecting your Ledger. $1",
+ "description": "$1 is a link to the wallet connection guide;"
+ },
+ "troubleConnectingToLedgerU2FOnFirefox2": {
+ "message": "Review our hardware wallet connection guide and try again.",
+ "description": "$1 of the ledger wallet connection guide"
+ },
+ "troubleConnectingToLedgerU2FOnFirefoxLedgerSolution": {
+ "message": "If you're on the latest version of Firefox, you might be experiencing an issue related to Firefox dropping U2F support. Learn how to fix this issue $1.",
+ "description": "It is a link to the ledger website for the workaround."
+ },
+ "troubleConnectingToLedgerU2FOnFirefoxLedgerSolution2": {
+ "message": "here",
+ "description": "Second part of the error message; It is a link to the ledger website for the workaround."
+ },
"troubleConnectingToWallet": {
"message": "We had trouble connecting to your $1, try reviewing $2 and try again.",
"description": "$1 is the wallet device name; $2 is a link to wallet connection guide"
diff --git a/coverage-targets.js b/coverage-targets.js
index 6097331d1..e246ecb14 100644
--- a/coverage-targets.js
+++ b/coverage-targets.js
@@ -6,10 +6,10 @@
// subset of files to check against these targets.
module.exports = {
global: {
- lines: 66,
- branches: 54.4,
- statements: 65,
- functions: 58.5,
+ lines: 66.7,
+ branches: 54.9,
+ statements: 65.75,
+ functions: 59.55,
},
transforms: {
branches: 100,
diff --git a/shared/notifications/index.js b/shared/notifications/index.js
index 10c24bbfe..9bf285957 100644
--- a/shared/notifications/index.js
+++ b/shared/notifications/index.js
@@ -102,6 +102,10 @@ export const UI_NOTIFICATIONS = {
width: '100%',
},
},
+ 20: {
+ id: 20,
+ date: null,
+ },
};
export const getTranslatedUINotifications = (t, locale) => {
@@ -279,5 +283,16 @@ export const getTranslatedUINotifications = (t, locale) => {
)
: '',
},
+ 20: {
+ ...UI_NOTIFICATIONS[20],
+ title: t('notifications20Title'),
+ description: [t('notifications20Description')],
+ actionText: t('notifications20ActionText'),
+ date: UI_NOTIFICATIONS[20].date
+ ? new Intl.DateTimeFormat(formattedLocale).format(
+ new Date(UI_NOTIFICATIONS[20].date),
+ )
+ : '',
+ },
};
};
diff --git a/ui/components/app/whats-new-popup/whats-new-popup.js b/ui/components/app/whats-new-popup/whats-new-popup.js
index 98c636e50..fd0bf14a7 100644
--- a/ui/components/app/whats-new-popup/whats-new-popup.js
+++ b/ui/components/app/whats-new-popup/whats-new-popup.js
@@ -73,6 +73,12 @@ function getActionFunctionById(id, history) {
updateViewedNotifications({ 19: true });
history.push(`${EXPERIMENTAL_ROUTE}#autodetect-nfts`);
},
+ 20: () => {
+ updateViewedNotifications({ 20: true });
+ global.platform.openTab({
+ url: ZENDESK_URLS.LEDGER_FIREFOX_U2F_GUIDE,
+ });
+ },
};
return actionFunctions[id];
diff --git a/ui/helpers/constants/zendesk-url.js b/ui/helpers/constants/zendesk-url.js
index 1e3f4aec9..79ea52ffb 100644
--- a/ui/helpers/constants/zendesk-url.js
+++ b/ui/helpers/constants/zendesk-url.js
@@ -15,6 +15,8 @@ const ZENDESK_URLS = {
'https://metamask.zendesk.com/hc/en-us/articles/360015289932',
INFURA_BLOCKAGE:
'https://metamask.zendesk.com/hc/en-us/articles/360059386712',
+ LEDGER_FIREFOX_U2F_GUIDE:
+ 'https://support.ledger.com/hc/en-us/articles/10371387758493-MetaMask-Firefox-Ledger-Integration-Issue?support=true',
LEGACY_WEB3: 'https://metamask.zendesk.com/hc/en-us/articles/360053147012',
NFT_TOKENS:
'https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-MetaMask-wallet',
diff --git a/ui/pages/create-account/connect-hardware/__snapshots__/index.test.tsx.snap b/ui/pages/create-account/connect-hardware/__snapshots__/index.test.tsx.snap
new file mode 100644
index 000000000..5284b9760
--- /dev/null
+++ b/ui/pages/create-account/connect-hardware/__snapshots__/index.test.tsx.snap
@@ -0,0 +1,110 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`ConnectHardwareForm should match snapshot 1`] = `
+
+
+
+
+ Connect a hardware wallet
+
+
+ Select a hardware wallet you'd like to use with MetaMask.
+