From cdc1bce6884295e97c63ee9758646fc4287aa781 Mon Sep 17 00:00:00 2001 From: Monte Lai Date: Thu, 16 Feb 2023 02:07:33 +0800 Subject: [PATCH] SRP hold to reveal (#17232) * refactor class to functional component * update messages * fix: use classnames * feat: add hold to reveal modal * feat: add new zendesk url for secret recovery phrase and noncustodial wallet * update: clipboard to clear copied text after delay * fix: remove save to csv * feat: update styles for reveal seed page * fix: update reveal seed snapshot * add test to check for modal * fix: lint * fix: unused messages locale * fix: use new banner component * fix: use new button from design system * fix: update snapshot * fix: lint * revert text * fix: lint * fix: remove --copy-only * fix: marginBottom prop value * fix: iconName and prop error * --made the QR code slightly smaller so it's less likely to have a scrollbar --updated the snapshots * fix: error message not displaying * SRP hold to reveal using more DS components (#17583) * Updating to add DS components and remove CSS * Fixing rendered html and removing some unneeded props * fix: set block to true --------- Co-authored-by: Monte * fix: add descriptions to messages * Update ui/components/ui/export-text-container/export-text-container.component.js fix: lint Co-authored-by: HowardBraham * fix: remove using displayWarning in requestRevealSeedWords * fix: update test to remove displayError * fix: update design system enums * fix: messages descriptions * fix: banner to banneralert * fix: update preview * add additional tests * fix: use jest instead of sinon * add test if long press isn't completed * add test if password is wrong --------- Co-authored-by: Howard Braham Co-authored-by: George Marshall --- app/_locales/am/messages.json | 12 +- app/_locales/ar/messages.json | 12 +- app/_locales/bg/messages.json | 12 +- app/_locales/bn/messages.json | 12 +- app/_locales/ca/messages.json | 12 +- app/_locales/cs/messages.json | 3 +- app/_locales/da/messages.json | 12 +- app/_locales/de/messages.json | 12 +- app/_locales/el/messages.json | 12 +- app/_locales/en/messages.json | 67 ++- app/_locales/es/messages.json | 12 +- app/_locales/es_419/messages.json | 12 +- app/_locales/et/messages.json | 12 +- app/_locales/fa/messages.json | 12 +- app/_locales/fi/messages.json | 12 +- app/_locales/fil/messages.json | 12 +- app/_locales/fr/messages.json | 12 +- app/_locales/he/messages.json | 12 +- app/_locales/hi/messages.json | 12 +- app/_locales/hn/messages.json | 3 +- app/_locales/hr/messages.json | 12 +- app/_locales/ht/messages.json | 12 +- app/_locales/hu/messages.json | 12 +- app/_locales/id/messages.json | 12 +- app/_locales/it/messages.json | 12 +- app/_locales/ja/messages.json | 12 +- app/_locales/kn/messages.json | 12 +- app/_locales/ko/messages.json | 12 +- app/_locales/lt/messages.json | 12 +- app/_locales/lv/messages.json | 12 +- app/_locales/ms/messages.json | 12 +- app/_locales/nl/messages.json | 3 +- app/_locales/no/messages.json | 12 +- app/_locales/ph/messages.json | 12 +- app/_locales/pl/messages.json | 12 +- app/_locales/pt/messages.json | 12 +- app/_locales/pt_BR/messages.json | 12 +- app/_locales/ro/messages.json | 12 +- app/_locales/ru/messages.json | 12 +- app/_locales/sk/messages.json | 12 +- app/_locales/sl/messages.json | 12 +- app/_locales/sr/messages.json | 12 +- app/_locales/sv/messages.json | 12 +- app/_locales/sw/messages.json | 12 +- app/_locales/ta/messages.json | 3 +- app/_locales/th/messages.json | 3 +- app/_locales/tl/messages.json | 12 +- app/_locales/tr/messages.json | 12 +- app/_locales/uk/messages.json | 12 +- app/_locales/vi/messages.json | 12 +- app/_locales/zh_CN/messages.json | 12 +- app/_locales/zh_TW/messages.json | 12 +- .../hold-to-reveal-button.js | 31 +- .../hold-to-reveal-modal.js | 116 +++++ .../hold-to-reveal-modal.test.js | 114 +++++ .../app/modals/hold-to-reveal-modal/index.js | 1 + .../modals/hold-to-reveal-modal/index.scss | 8 + ui/components/app/modals/index.scss | 1 + ui/components/app/modals/modal.js | 14 + .../export-text-container.component.js | 89 ++-- .../ui/export-text-container/index.scss | 54 -- ui/components/ui/ui-components.scss | 1 - ui/helpers/constants/zendesk-url.js | 4 + ui/hooks/useCopyToClipboard.js | 9 +- .../__snapshots__/reveal-seed.test.js.snap | 182 ++++--- ui/pages/keychains/index.scss | 23 +- ui/pages/keychains/reveal-seed.js | 462 ++++++++++-------- ui/pages/keychains/reveal-seed.test.js | 70 ++- ui/pages/mobile-sync/mobile-sync.component.js | 2 +- ui/store/actions.test.js | 1 - ui/store/actions.ts | 3 - 71 files changed, 925 insertions(+), 894 deletions(-) create mode 100644 ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.js create mode 100644 ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.test.js create mode 100644 ui/components/app/modals/hold-to-reveal-modal/index.js create mode 100644 ui/components/app/modals/hold-to-reveal-modal/index.scss delete mode 100644 ui/components/ui/export-text-container/index.scss diff --git a/app/_locales/am/messages.json b/app/_locales/am/messages.json index c56e8399f..fd0a80961 100644 --- a/app/_locales/am/messages.json +++ b/app/_locales/am/messages.json @@ -630,14 +630,9 @@ "revealSeedWords": { "message": "የዘር ቃላትን ይግለጹ" }, - "revealSeedWordsDescription": { - "message": "ማሰሺያዎችን ከቀየሩ ወይም ኮምፒዩተሮቸን ከአንድ ቦታ ወደ ሌላ ቦታ ካንቀሳቀሱ፣ ወደ መለያዎችዎ ለመድረስ ይህ የዘር ሐረግ ያስፈልግዎታል። ደህንነቱና ሚስጥራዊነቱ በተጠበቀ ቦታ ያስቀምጧቸው።" - }, "revealSeedWordsWarning": { - "message": "እነዚህ ቃላት ሁሉንም መለያዎችዎን ለመስረቅ ሊውሉ ይችላሉ።" - }, - "revealSeedWordsWarningTitle": { - "message": "ይህን ሐረግ ለየትኛውም ሰው አያጋሩ!" + "message": "እነዚህ ቃላት ሁሉንም መለያዎችዎን ለመስረቅ ሊውሉ ይችላሉ።", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "አዲስ የ RPC URL" @@ -645,9 +640,6 @@ "save": { "message": "አስቀምጥ" }, - "saveAsCsvFile": { - "message": "እንደ CSV ፋይል አስቀምጥ" - }, "scanInstructions": { "message": "የ QR ኮዱን ከካሜራዎ ፊት ለፊት ያስቀምጡ" }, diff --git a/app/_locales/ar/messages.json b/app/_locales/ar/messages.json index 3d5a8863e..70384c11c 100644 --- a/app/_locales/ar/messages.json +++ b/app/_locales/ar/messages.json @@ -642,14 +642,9 @@ "revealSeedWords": { "message": "كشف كلمات عبارات الأمان" }, - "revealSeedWordsDescription": { - "message": "إذا كنت تنوي تغيير المتصفحات أو نقل أجهزة الكمبيوتر في أي وقت، فسوف تحتاج إلى عبارة الأمان هذه للوصول إلى حساباتك. احفظها في مكان آمن وسري." - }, "revealSeedWordsWarning": { - "message": "يمكن استخدام هذه الكلمات لسرقة جميع حساباتك." - }, - "revealSeedWordsWarningTitle": { - "message": "لا تشارك هذه الجملة مع أي شخص آخر!" + "message": "يمكن استخدام هذه الكلمات لسرقة جميع حساباتك.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "عنوان جديد لاستدعاء الإجراء عن بعد" @@ -657,9 +652,6 @@ "save": { "message": "حفظ" }, - "saveAsCsvFile": { - "message": "حفظ كملف CSV" - }, "scanInstructions": { "message": "ضع رمز الاستجابة السريعة أمام الكاميرا" }, diff --git a/app/_locales/bg/messages.json b/app/_locales/bg/messages.json index 65c702d8a..ef7558aa8 100644 --- a/app/_locales/bg/messages.json +++ b/app/_locales/bg/messages.json @@ -641,14 +641,9 @@ "revealSeedWords": { "message": "Разкрий думите зародиш" }, - "revealSeedWordsDescription": { - "message": "Ако някога смените браузъра или компютъра си, тази ключова фраза ще Ви трябва за достъп до Вашите акаунти. Запазете я някъде на сигурно и тайно място." - }, "revealSeedWordsWarning": { - "message": "Тези думи могат да бъдат използвани за кражба на всички ваши акаунти." - }, - "revealSeedWordsWarningTitle": { - "message": "НЕ споделяйте тази фраза с никого!" + "message": "Тези думи могат да бъдат използвани за кражба на всички ваши акаунти.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Нов URL адрес за RPC" @@ -656,9 +651,6 @@ "save": { "message": "Запазване" }, - "saveAsCsvFile": { - "message": "Запазване като CSV файл" - }, "scanInstructions": { "message": "Поставете QR кода пред камерата" }, diff --git a/app/_locales/bn/messages.json b/app/_locales/bn/messages.json index 2e6fc183e..b8f728bcf 100644 --- a/app/_locales/bn/messages.json +++ b/app/_locales/bn/messages.json @@ -645,14 +645,9 @@ "revealSeedWords": { "message": "সীড শব্দগুলি প্রকাশ করুন" }, - "revealSeedWordsDescription": { - "message": "আপনি কখনও ব্রাউজার পরিবর্তন করলে বা এক কম্পিউটার থেকে অন্য কম্পিউটারে গেলে, আপনাকে আপনার অ্যাকাউন্ট অ্যাক্সেস করার জন্য এই সীড ফ্রেজটি লাগবে। সেগুলি নিরাপদ ও গোপনীয় কোনো স্থানে সংরক্ষণ করুন। " - }, "revealSeedWordsWarning": { - "message": "আপনার সমস্ত অ্যাকাউন্ট চুরি করতে এই শব্দগুলি ব্যবহার করা যাবে।" - }, - "revealSeedWordsWarningTitle": { - "message": "এই ফ্রেজটি কারোর সাথে শেয়ার করবেন না!" + "message": "আপনার সমস্ত অ্যাকাউন্ট চুরি করতে এই শব্দগুলি ব্যবহার করা যাবে।", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "নতুন RPC URL" @@ -660,9 +655,6 @@ "save": { "message": "সেভ করুন" }, - "saveAsCsvFile": { - "message": "CSV ফাইল হিসাবে সংরক্ষণ করুন" - }, "scanInstructions": { "message": "QR কোডটি আপনার ক্যামেরার সামনে ধরুন" }, diff --git a/app/_locales/ca/messages.json b/app/_locales/ca/messages.json index 3679a1caa..1fec171b6 100644 --- a/app/_locales/ca/messages.json +++ b/app/_locales/ca/messages.json @@ -623,14 +623,9 @@ "revealSeedWords": { "message": "Revelar Paraules de Recuperació" }, - "revealSeedWordsDescription": { - "message": "Si mai canvies el navegador o l'ordinador, necessitaràs aquesta frase de recuperació per accedir als teus comptes. Guarda-la a un lloc segur i secret." - }, "revealSeedWordsWarning": { - "message": "Aquestes paraules poden ser utilitzades per a robar tots els teus comptes." - }, - "revealSeedWordsWarningTitle": { - "message": "NO comparteixis aquesta frase amb ningú!" + "message": "Aquestes paraules poden ser utilitzades per a robar tots els teus comptes.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nova URL de RPC" @@ -638,9 +633,6 @@ "save": { "message": "Desa" }, - "saveAsCsvFile": { - "message": "Guarda com a Arxiu CSV" - }, "scanInstructions": { "message": "Col·loca el codi QR davant la teva càmera" }, diff --git a/app/_locales/cs/messages.json b/app/_locales/cs/messages.json index febaeaa31..0b1b59e53 100644 --- a/app/_locales/cs/messages.json +++ b/app/_locales/cs/messages.json @@ -293,7 +293,8 @@ "message": "Zobrazit slova klíčové fráze" }, "revealSeedWordsWarning": { - "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů." + "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "Uložit" diff --git a/app/_locales/da/messages.json b/app/_locales/da/messages.json index 53e697c61..defb3f703 100644 --- a/app/_locales/da/messages.json +++ b/app/_locales/da/messages.json @@ -626,14 +626,9 @@ "revealSeedWords": { "message": "Vis Seedord" }, - "revealSeedWordsDescription": { - "message": "Hvis du nogensinde skifter browsere eller flytter computere, har du brug for denne backupsætning for at få adgang til dine konti. Gem den et sted sikkert og hemmeligt." - }, "revealSeedWordsWarning": { - "message": "Disse ord kan bruges til at stjæle alle dine konti." - }, - "revealSeedWordsWarningTitle": { - "message": "DEL IKKE denne sætning med nogen!" + "message": "Disse ord kan bruges til at stjæle alle dine konti.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Ny RPC-URL" @@ -641,9 +636,6 @@ "save": { "message": "Gem" }, - "saveAsCsvFile": { - "message": "Gem som CSV-fil" - }, "scanInstructions": { "message": "Placer QR-koden foran dit kamera" }, diff --git a/app/_locales/de/messages.json b/app/_locales/de/messages.json index d8d27051b..b9787b004 100644 --- a/app/_locales/de/messages.json +++ b/app/_locales/de/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Seed-Wörterfolge anzeigen" }, - "revealSeedWordsDescription": { - "message": "Wenn Sie einmal Ihren Browser oder Computer wechseln, benötigen Sie diesen Seed-Schlüssel, um auf Ihre Konten zuzugreifen. Bewahren Sie ihn an einem sicheren und geheimen Ort auf." - }, "revealSeedWordsWarning": { - "message": "Bitte niemals deine Seed-Wörterfolge an einem öffentlichen Ort kenntlich machen. Mit diesen Wörtern können alle deine Accounts gestohlen werden." - }, - "revealSeedWordsWarningTitle": { - "message": "Zeigen Sie diesen Schlüssel KEINER ANDEREN PERSON!" + "message": "Bitte niemals deine Seed-Wörterfolge an einem öffentlichen Ort kenntlich machen. Mit diesen Wörtern können alle deine Accounts gestohlen werden.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Seed-Phrase anzeigen" @@ -2961,9 +2956,6 @@ "save": { "message": "Speichern" }, - "saveAsCsvFile": { - "message": "Als CSV-Datei speichern" - }, "scanInstructions": { "message": "Platzieren Sie den QR-Code vor Ihrer Kamera." }, diff --git a/app/_locales/el/messages.json b/app/_locales/el/messages.json index ba0b251b5..c1c8ee7d2 100644 --- a/app/_locales/el/messages.json +++ b/app/_locales/el/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Αποκάλυψη Λέξεων Μυστικής Φράσης Ανάκτησης" }, - "revealSeedWordsDescription": { - "message": "Εάν αλλάξετε ποτέ προγράμματα περιήγησης ή μετακινήσετε υπολογιστές, θα χρειαστείτε αυτήν τη Μυστική Φράση Ανάκτησης για να αποκτήσετε πρόσβαση στους λογαριασμούς σας. Αποθηκεύστε την κάπου με ασφάλεια και μυστικότητα." - }, "revealSeedWordsWarning": { - "message": "Αυτές οι λέξεις μπορούν να χρησιμοποιηθούν για να κλαπούν όλοι οι λογαριασμοί σας." - }, - "revealSeedWordsWarningTitle": { - "message": "ΜΗΝ ΜΟΙΡΑΣΤΕΙΤΕ αυτήν τη φράση με κανέναν!" + "message": "Αυτές οι λέξεις μπορούν να χρησιμοποιηθούν για να κλαπούν όλοι οι λογαριασμοί σας.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Αποκάλυψη φράσης ανάκτησης" @@ -2961,9 +2956,6 @@ "save": { "message": "Αποθήκευση" }, - "saveAsCsvFile": { - "message": "Αποθηκεύστε ως Αρχείο CSV" - }, "scanInstructions": { "message": "Τοποθετήστε τον κώδικα QR μπροστά από την κάμερά σας" }, diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 2d11a2478..d8653a84f 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -828,7 +828,7 @@ "message": "CoolWallet" }, "copiedExclamation": { - "message": "Copied!" + "message": "Copied." }, "copyAddress": { "message": "Copy address to clipboard" @@ -1570,6 +1570,32 @@ "history": { "message": "History" }, + "holdToReveal": { + "message": "Hold to reveal SRP" + }, + "holdToRevealContent1": { + "message": "Your Secret Recovery Phrase provides $1", + "description": "$1 is a bolded text with the message from 'holdToRevealContent2'" + }, + "holdToRevealContent2": { + "message": "full access to your wallet and funds.", + "description": "Is the bolded text in 'holdToRevealContent1'" + }, + "holdToRevealContent3": { + "message": "Do not share this with anyone. $1 $2", + "description": "$1 is a message from 'holdToRevealContent4' and $2 is a text link with the message from 'holdToRevealContent5'" + }, + "holdToRevealContent4": { + "message": "MetaMask Support will not request this,", + "description": "Part of 'holdToRevealContent3'" + }, + "holdToRevealContent5": { + "message": "but phishers might.", + "description": "The text link in 'holdToRevealContent3'" + }, + "holdToRevealTitle": { + "message": "Keep your SRP safe" + }, "ignoreAll": { "message": "Ignore all" }, @@ -1898,7 +1924,7 @@ "message": "Create a new swap" }, "makeSureNoOneWatching": { - "message": "Make sure no one is watching your screen", + "message": "Make sure nobody is looking", "description": "Warning to users to be care while creating and saving their new Secret Recovery Phrase" }, "malformedData": { @@ -2993,14 +3019,36 @@ "revealSeedWords": { "message": "Reveal Secret Recovery Phrase" }, - "revealSeedWordsDescription": { - "message": "If you ever change browsers or move computers, you will need this Secret Recovery Phrase to access your accounts. Save them somewhere safe and secret." + "revealSeedWordsDescription1": { + "message": "The $1 provides $2", + "description": "This is a sentence consisting of link using 'revealSeedWordsSRPName' as $1 and bolded text using 'revealSeedWordsDescription3' as $2." + }, + "revealSeedWordsDescription2": { + "message": "MetaMask is a $1. That means you're the owner of your SRP.", + "description": "$1 is text link with the message from 'revealSeedWordsNonCustodialWallet'" + }, + "revealSeedWordsDescription3": { + "message": "full access to your wallet and funds.\n" + }, + "revealSeedWordsNonCustodialWallet": { + "message": "non-custodial wallet" + }, + "revealSeedWordsQR": { + "message": "QR" + }, + "revealSeedWordsSRPName": { + "message": "Secret Recovery Phrase (SRP)" + }, + "revealSeedWordsText": { + "message": "Text" }, "revealSeedWordsWarning": { - "message": "These words can be used to steal all your accounts." + "message": "Make sure no one is looking at your screen. $1", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, - "revealSeedWordsWarningTitle": { - "message": "DO NOT share this phrase with anyone!" + "revealSeedWordsWarning2": { + "message": "MetaMask Support will never request this.", + "description": "The bolded texted in the second part of 'revealSeedWordsWarning'" }, "revealTheSeedPhrase": { "message": "Reveal seed phrase" @@ -3032,9 +3080,6 @@ "save": { "message": "Save" }, - "saveAsCsvFile": { - "message": "Save as CSV file" - }, "scanInstructions": { "message": "Place the QR code in front of your camera" }, @@ -4481,7 +4526,7 @@ "message": "Your NFT may be at risk" }, "yourPrivateSeedPhrase": { - "message": "Your private Secret Recovery Phrase" + "message": "Your Secret Recovery Phrase" }, "zeroGasPriceOnSpeedUpError": { "message": "Zero gas price on speed up" diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json index 9ec27033e..ba186c96a 100644 --- a/app/_locales/es/messages.json +++ b/app/_locales/es/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Revelar frase secreta de recuperación" }, - "revealSeedWordsDescription": { - "message": "Si alguna vez cambia de explorador o de equipo, necesitará esta frase secreta de recuperación para acceder a sus cuentas. Guárdela en un lugar seguro y secreto." - }, "revealSeedWordsWarning": { - "message": "Estas palabras pueden usarse para robar todas sus cuentas." - }, - "revealSeedWordsWarningTitle": { - "message": "NO comparta esta frase con nadie." + "message": "Estas palabras pueden usarse para robar todas sus cuentas.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Revelar frase semilla" @@ -2961,9 +2956,6 @@ "save": { "message": "Guardar" }, - "saveAsCsvFile": { - "message": "Guardar como archivo CSV" - }, "scanInstructions": { "message": "Ponga el código QR frente a la cámara" }, diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json index ea9e19571..dc39d241e 100644 --- a/app/_locales/es_419/messages.json +++ b/app/_locales/es_419/messages.json @@ -1990,14 +1990,9 @@ "revealSeedWords": { "message": "Revelar frase secreta de recuperación" }, - "revealSeedWordsDescription": { - "message": "Si alguna vez cambia de explorador o de equipo, necesitará esta frase secreta de recuperación para acceder a sus cuentas. Guárdela en un lugar seguro y secreto." - }, "revealSeedWordsWarning": { - "message": "Estas palabras pueden usarse para robar todas sus cuentas." - }, - "revealSeedWordsWarningTitle": { - "message": "¡NO comparta esta frase con nadie!" + "message": "Estas palabras pueden usarse para robar todas sus cuentas.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nueva dirección URL de RPC" @@ -2005,9 +2000,6 @@ "save": { "message": "Guardar" }, - "saveAsCsvFile": { - "message": "Guardar como archivo CSV" - }, "scanInstructions": { "message": "Ponga el código QR frente a la cámara" }, diff --git a/app/_locales/et/messages.json b/app/_locales/et/messages.json index b01eed00b..66fb981e9 100644 --- a/app/_locales/et/messages.json +++ b/app/_locales/et/messages.json @@ -635,14 +635,9 @@ "revealSeedWords": { "message": "Kuva seemnesõnu" }, - "revealSeedWordsDescription": { - "message": "Kui vahetate veebilehitsejat või arvutit, vajate oma kontodele ligipääsemiseks seemnefraasi. Hoidke seda turvalises ja salajases kohas." - }, "revealSeedWordsWarning": { - "message": "Neid sõnu saab kasutada kõigi teie kontode tühjendamiseks." - }, - "revealSeedWordsWarningTitle": { - "message": "ÄRGE jagage seda fraasi mitte kellegagi!" + "message": "Neid sõnu saab kasutada kõigi teie kontode tühjendamiseks.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Uus RPC URL" @@ -650,9 +645,6 @@ "save": { "message": "Salvesta" }, - "saveAsCsvFile": { - "message": "Salvesta CSV-failina" - }, "scanInstructions": { "message": "Asetage QR-kood kaamera ette" }, diff --git a/app/_locales/fa/messages.json b/app/_locales/fa/messages.json index 610f8a550..89b2c9e60 100644 --- a/app/_locales/fa/messages.json +++ b/app/_locales/fa/messages.json @@ -645,14 +645,9 @@ "revealSeedWords": { "message": "کلمات بازیاب را آشکار کنید" }, - "revealSeedWordsDescription": { - "message": "در صورتیکه شما معمولًا براوزر ها را تغییر داده یا کمپیوتر ها را انتقال میدهید، شما این عبارت آغازین را نیاز خواهید داشت تا به حساب های تان دسترسی داشته باشید. آنها را در یکجای مصؤن و مخفی نگهدارید." - }, "revealSeedWordsWarning": { - "message": "این کلمات را میتوان جهت سرقت همه حساب های تان استفاده نمود." - }, - "revealSeedWordsWarningTitle": { - "message": "این عبارت را با هیچکس شریک نسازید!" + "message": "این کلمات را میتوان جهت سرقت همه حساب های تان استفاده نمود.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "RPC URL جدید" @@ -660,9 +655,6 @@ "save": { "message": "ذخیره" }, - "saveAsCsvFile": { - "message": "ذخیره منحیث فایل CSV" - }, "scanInstructions": { "message": "رمز QR را در مقابل کمره تان قرار دهید" }, diff --git a/app/_locales/fi/messages.json b/app/_locales/fi/messages.json index 7a8c6f5e7..b17d37b6a 100644 --- a/app/_locales/fi/messages.json +++ b/app/_locales/fi/messages.json @@ -642,14 +642,9 @@ "revealSeedWords": { "message": "Paljasta salaussanat" }, - "revealSeedWordsDescription": { - "message": "Mikäli vaihdat jossakin vaiheessa selainta tai tietokonetta, tarvitset tämän salaustekstin tiliesi käyttämiseen. Tallenna se johonkin turvalliseen ja salaiseen paikkaan." - }, "revealSeedWordsWarning": { - "message": "Näitä sanoja voidaan käyttää kaikkien tiliesi ryöstämiseen." - }, - "revealSeedWordsWarningTitle": { - "message": "ÄLÄ jaa tätä tekstiä kenellekään!" + "message": "Näitä sanoja voidaan käyttää kaikkien tiliesi ryöstämiseen.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Uusi RPC:n URL" @@ -657,9 +652,6 @@ "save": { "message": "Tallenna" }, - "saveAsCsvFile": { - "message": "Tallenna CSV-tiedostona" - }, "scanInstructions": { "message": "Aseta QR-koodi kamerasi eteen" }, diff --git a/app/_locales/fil/messages.json b/app/_locales/fil/messages.json index d7ae5a6f9..2bdf29437 100644 --- a/app/_locales/fil/messages.json +++ b/app/_locales/fil/messages.json @@ -572,14 +572,9 @@ "revealSeedWords": { "message": "Ipakita ang Seed Words" }, - "revealSeedWordsDescription": { - "message": "Kung lilipat ka ng browser o magpapalit ka ng computer, kakailanganin mo ang seed phrase na ito para ma-access ang iyong mga account. I-save ang mga iyon sa isang lugar na ligtas at lihim." - }, "revealSeedWordsWarning": { - "message": "Maaaring gamitin ang mga salitang ito para nakawin ang lahat ng iyong account." - }, - "revealSeedWordsWarningTitle": { - "message": "HUWAG ibahagi ang pariralang ito sa kahit sino!" + "message": "Maaaring gamitin ang mga salitang ito para nakawin ang lahat ng iyong account.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Bagong RPC URL" @@ -587,9 +582,6 @@ "save": { "message": "I-save" }, - "saveAsCsvFile": { - "message": "I-save bilang CSV File" - }, "scanInstructions": { "message": "Ilagay ang QR code sa harap ng iyong camera" }, diff --git a/app/_locales/fr/messages.json b/app/_locales/fr/messages.json index 076f85e97..d827b2009 100644 --- a/app/_locales/fr/messages.json +++ b/app/_locales/fr/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Révéler la phrase secrète de récupération" }, - "revealSeedWordsDescription": { - "message": "Si jamais vous changez de navigateur ou d’ordinateur, vous aurez besoin de cette phrase secrète de récupération pour accéder à vos comptes. Sauvegardez-la dans un emplacement sûr et secret." - }, "revealSeedWordsWarning": { - "message": "Ces mots peuvent être utilisés pour voler tous vos comptes." - }, - "revealSeedWordsWarningTitle": { - "message": "Ne communiquez PAS cette phrase à quelqu’un !" + "message": "Ces mots peuvent être utilisés pour voler tous vos comptes.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Révéler la phrase mnémonique" @@ -2961,9 +2956,6 @@ "save": { "message": "Enregistrer" }, - "saveAsCsvFile": { - "message": "Enregistrer comme fichier CSV" - }, "scanInstructions": { "message": "Placez le code QR devant votre appareil photo" }, diff --git a/app/_locales/he/messages.json b/app/_locales/he/messages.json index 69a9dbd9b..547a360a8 100644 --- a/app/_locales/he/messages.json +++ b/app/_locales/he/messages.json @@ -642,14 +642,9 @@ "revealSeedWords": { "message": "גלה מילות Seed" }, - "revealSeedWordsDescription": { - "message": "אם בעתיד תחליף/י דפדפנים או תעביר/י מחשבים, תצטרך/י seed phrase זה כדי לקבל גישה לחשבונות שלך. יש לשמור אותם במקום בטוח וסודי." - }, "revealSeedWordsWarning": { - "message": "במילים אלה עלול להיעשות שימוש כדי לגנוב את כל חשבונותיך." - }, - "revealSeedWordsWarningTitle": { - "message": "אין לשתף צירוף מילים זה עם אף אחד!" + "message": "במילים אלה עלול להיעשות שימוש כדי לגנוב את כל חשבונותיך.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "כתובת URL חדשה של RPC" @@ -657,9 +652,6 @@ "save": { "message": "שמור" }, - "saveAsCsvFile": { - "message": "שמירה כקובץ CSV" - }, "scanInstructions": { "message": "הצב/י את קוד ה-QR שלך מול המצלמה" }, diff --git a/app/_locales/hi/messages.json b/app/_locales/hi/messages.json index 35a644e1f..84d301c90 100644 --- a/app/_locales/hi/messages.json +++ b/app/_locales/hi/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "गुप्त रिकवरी फ्रेज प्रकट करें" }, - "revealSeedWordsDescription": { - "message": "यदि आप कभी ब्राउजर बदलते हैं या कंप्यूटर को स्थानांतरित करते हैं, तो आपको अपने खातों तक पहुंचने के लिए इस गुप्त रिकवरी फ्रेज की आवश्यकता होगी। उन्हें कहीं सुरक्षित और गोपनीय तरीके से सहेजें।" - }, "revealSeedWordsWarning": { - "message": "इन शब्दों का उपयोग आपके सभी खातों को चुराने के लिए किया जा सकता है।" - }, - "revealSeedWordsWarningTitle": { - "message": "इस फ्रेज को किसी के साथ साझा न करें!" + "message": "इन शब्दों का उपयोग आपके सभी खातों को चुराने के लिए किया जा सकता है।", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "सीड फ़्रेज़ दिखाएं" @@ -2961,9 +2956,6 @@ "save": { "message": "सहेजें" }, - "saveAsCsvFile": { - "message": "CSV फाइल के रूप में सहेजें" - }, "scanInstructions": { "message": "QR कोड को अपने कैमरे के सामने रखें" }, diff --git a/app/_locales/hn/messages.json b/app/_locales/hn/messages.json index d988c1fd6..6071dc3d3 100644 --- a/app/_locales/hn/messages.json +++ b/app/_locales/hn/messages.json @@ -270,7 +270,8 @@ "message": "बीज शब्द प्रकट करें" }, "revealSeedWordsWarning": { - "message": "किसी सार्वजनिक स्थान पर अपने बीज के शब्द ठीक नहीं करें! ये शब्द आपके सभी खातों को चोरी करने के लिए उपयोग किए जा सकते हैं।" + "message": "किसी सार्वजनिक स्थान पर अपने बीज के शब्द ठीक नहीं करें! ये शब्द आपके सभी खातों को चोरी करने के लिए उपयोग किए जा सकते हैं।", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "सहेजें" diff --git a/app/_locales/hr/messages.json b/app/_locales/hr/messages.json index 8f49b4d41..408d54f7a 100644 --- a/app/_locales/hr/messages.json +++ b/app/_locales/hr/messages.json @@ -638,14 +638,9 @@ "revealSeedWords": { "message": "Otkrij početne riječi" }, - "revealSeedWordsDescription": { - "message": "Ako ikada promijenite preglednike ili računala, trebate ovu početnu rečenicu za pristupanje svojim računima. Spremite ih negdje na sigurno i tajno mjesto." - }, "revealSeedWordsWarning": { - "message": "Ove se riječi mogu upotrijebiti za krađu vaših računa." - }, - "revealSeedWordsWarningTitle": { - "message": "NE DIJELITE ovu rečenicu ni s kim!" + "message": "Ove se riječi mogu upotrijebiti za krađu vaših računa.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Novi URL RPC-a" @@ -653,9 +648,6 @@ "save": { "message": "Spremi" }, - "saveAsCsvFile": { - "message": "Spremi kao datoteku CSV" - }, "scanInstructions": { "message": "Postavite kôd QR ispred kamere" }, diff --git a/app/_locales/ht/messages.json b/app/_locales/ht/messages.json index 72f24cddf..abb03ab08 100644 --- a/app/_locales/ht/messages.json +++ b/app/_locales/ht/messages.json @@ -458,21 +458,13 @@ "revealSeedWords": { "message": "Revele Seed Mo Yo" }, - "revealSeedWordsDescription": { - "message": "Si ou pa janm chanje navigatè ou deplase òdinatè, ou pral bezwen fraz seed la pou ka gen aksè a kont ou. Sere yo on kote an sekirite e an sekrè." - }, "revealSeedWordsWarning": { - "message": "Yo ka itilize mo sa pou vòlè kont ou." - }, - "revealSeedWordsWarningTitle": { - "message": "PA pataje fraz sa a avèk nenpòt moun!" + "message": "Yo ka itilize mo sa pou vòlè kont ou.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "Sove" }, - "saveAsCsvFile": { - "message": "Sove kòm dosye CSV" - }, "scanInstructions": { "message": "Mete kòd QR la devan kamera ou" }, diff --git a/app/_locales/hu/messages.json b/app/_locales/hu/messages.json index 681d20dbe..49e928122 100644 --- a/app/_locales/hu/messages.json +++ b/app/_locales/hu/messages.json @@ -638,14 +638,9 @@ "revealSeedWords": { "message": "Seed szavak megjelenítése" }, - "revealSeedWordsDescription": { - "message": "Ha valamikor böngészőt váltasz, vagy számítógépet cserélsz, a fiókjaid használatához szükséged lesz erre a kulcsszóláncra. Őrizd őket egy biztonságos és titkos helyen." - }, "revealSeedWordsWarning": { - "message": "Ezekkel a szavakkal ellophatóak a fiókjai." - }, - "revealSeedWordsWarningTitle": { - "message": "NE ossza meg ezt a mondatot senkivel!" + "message": "Ezekkel a szavakkal ellophatóak a fiókjai.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Új RPC URL" @@ -653,9 +648,6 @@ "save": { "message": "Mentés" }, - "saveAsCsvFile": { - "message": "Mentés CSV-fájlként" - }, "scanInstructions": { "message": "Helyezze a QR-kódot a fényképezőgép elé" }, diff --git a/app/_locales/id/messages.json b/app/_locales/id/messages.json index 459e76feb..9a9551d98 100644 --- a/app/_locales/id/messages.json +++ b/app/_locales/id/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Tampilkan Frasa Pemulihan Rahasia" }, - "revealSeedWordsDescription": { - "message": "Jika Anda pernah mengubah peramban atau mengganti komputer, Frasa Pemulihan Rahasia ini akan berguna untuk mengakses akun Anda. Simpan di tempat yang aman dan rahasia." - }, "revealSeedWordsWarning": { - "message": "Kata-kata ini dapat digunakan untuk mencuri semua akun Anda." - }, - "revealSeedWordsWarningTitle": { - "message": "JANGAN bagikan frasa ini kepada siapa pun!" + "message": "Kata-kata ini dapat digunakan untuk mencuri semua akun Anda.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Ungkap frasa seed" @@ -2961,9 +2956,6 @@ "save": { "message": "Simpan" }, - "saveAsCsvFile": { - "message": "Simpan sebagai file CSV" - }, "scanInstructions": { "message": "Tempatkan kode QR di bagian depan kamera Anda" }, diff --git a/app/_locales/it/messages.json b/app/_locales/it/messages.json index f66a15d38..91ba0f00c 100644 --- a/app/_locales/it/messages.json +++ b/app/_locales/it/messages.json @@ -1508,14 +1508,9 @@ "revealSeedWords": { "message": "Rivela Frase Seed" }, - "revealSeedWordsDescription": { - "message": "Se cambierai browser o computer, ti servirà questa frase seed per accedere ai tuoi account. Salvala in un posto sicuro e segreto." - }, "revealSeedWordsWarning": { - "message": "Non ripristinare la tua frase seed in pubblico!. Queste parole possono essere usate per rubare il tuo account." - }, - "revealSeedWordsWarningTitle": { - "message": "NON CONDIVIDERE questa frase con nessuno!" + "message": "Non ripristinare la tua frase seed in pubblico!. Queste parole possono essere usate per rubare il tuo account.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nuovo URL RPC" @@ -1523,9 +1518,6 @@ "save": { "message": "Salva" }, - "saveAsCsvFile": { - "message": "Salva Come File CSV" - }, "scanInstructions": { "message": "Posizione il codice QR davanti alla fotocamera" }, diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json index bb6199a54..f8029a653 100644 --- a/app/_locales/ja/messages.json +++ b/app/_locales/ja/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "シークレットリカバリーフレーズを公開" }, - "revealSeedWordsDescription": { - "message": "ブラウザを変更した場合や、コンピューターを移動した場合は、アカウントにアクセスするためにこのシークレットリカバリーフレーズが必要になります。安全な秘密の場所に保管してください。" - }, "revealSeedWordsWarning": { - "message": "これらの単語を使用すると、すべてのアカウントを窃取することができます。" - }, - "revealSeedWordsWarningTitle": { - "message": "このフレーズは誰にも教えないでください。" + "message": "これらの単語を使用すると、すべてのアカウントを窃取することができます。", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "シードフレーズを表示" @@ -2961,9 +2956,6 @@ "save": { "message": "保存" }, - "saveAsCsvFile": { - "message": "CSVファイルとして保存" - }, "scanInstructions": { "message": "QRコードにカメラを向けてください" }, diff --git a/app/_locales/kn/messages.json b/app/_locales/kn/messages.json index 6eebd9094..91f32c61c 100644 --- a/app/_locales/kn/messages.json +++ b/app/_locales/kn/messages.json @@ -645,14 +645,9 @@ "revealSeedWords": { "message": "ಸೀಡ್ ವರ್ಡ್ಸ್ ಬಹಿರಂಗಪಡಿಸಿ" }, - "revealSeedWordsDescription": { - "message": "ನೀವು ಬ್ರೌಸರ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿದರೆ ಅಥವಾ ಕಂಪ್ಯೂಟರ್‌ಗಳನ್ನು ಸರಿಸಿದರೆ, ನಿಮ್ಮ ಖಾತೆಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನಿಮಗೆ ಈ ಸೀಡ್ ಫ್ರೇಸ್‌ಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ಅವುಗಳನ್ನು ಎಲ್ಲಿಯಾದರೂ ಸುರಕ್ಷಿತವಾಗಿ ಮತ್ತು ರಹಸ್ಯವಾಗಿ ಉಳಿಸಿ." - }, "revealSeedWordsWarning": { - "message": "ಈ ಪದಗಳನ್ನು ನಿಮ್ಮ ಎಲ್ಲಾ ಖಾತೆಗಳನ್ನು ಕದಿಯಲು ಬಳಸಬಹುದು." - }, - "revealSeedWordsWarningTitle": { - "message": "ಈ ಫ್ರೇಸ್ ಅನ್ನು ಯಾರೊಂದಿಗೂ ಹಂಚಿಕೊಳ್ಳಬೇಡಿ!" + "message": "ಈ ಪದಗಳನ್ನು ನಿಮ್ಮ ಎಲ್ಲಾ ಖಾತೆಗಳನ್ನು ಕದಿಯಲು ಬಳಸಬಹುದು.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "ಹೊಸ RPC URL" @@ -660,9 +655,6 @@ "save": { "message": "ಉಳಿಸು" }, - "saveAsCsvFile": { - "message": "CSV ಫೈಲ್ ರೂಪದಲ್ಲಿ ಉಳಿಸಿ" - }, "scanInstructions": { "message": "ನಿಮ್ಮ ಕ್ಯಾಮರಾದ ಮುಂದೆ QR ಕೋಡ್ ಇರಿಸಿ" }, diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json index 73bd8d51d..e6ad39a2c 100644 --- a/app/_locales/ko/messages.json +++ b/app/_locales/ko/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "비밀 복구 구문 공개" }, - "revealSeedWordsDescription": { - "message": "브라우저를 변경하거나 컴퓨터를 옮긴 경우, 계정에 액세스하려면 이 비밀 복구 구문이 필요합니다. 기밀이 보장된 안전한 곳에 보관하세요." - }, "revealSeedWordsWarning": { - "message": "이 구문은 계정 전체를 도용하는 데 사용될 수 있습니다." - }, - "revealSeedWordsWarningTitle": { - "message": "이 구문은 누구와도 공유하지 마세요!" + "message": "이 구문은 계정 전체를 도용하는 데 사용될 수 있습니다.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "시드 구문 보기" @@ -2961,9 +2956,6 @@ "save": { "message": "저장" }, - "saveAsCsvFile": { - "message": "CSV 파일로 저장" - }, "scanInstructions": { "message": "QR 코드를 카메라 앞에 놓으세요" }, diff --git a/app/_locales/lt/messages.json b/app/_locales/lt/messages.json index 25fd4e0da..db7329a28 100644 --- a/app/_locales/lt/messages.json +++ b/app/_locales/lt/messages.json @@ -645,14 +645,9 @@ "revealSeedWords": { "message": "Atskleisti atkūrimo žodžius" }, - "revealSeedWordsDescription": { - "message": "Jei imsite naudotis kita naršykle arba kitu kompiuteriu, šios atkūrimo frazės jums reikės paskyroms pasiekti. Saugokite ją saugioje ir slaptoje vietoje." - }, "revealSeedWordsWarning": { - "message": "Šiuos žodžius galima panaudoti visoms jūsų paskyroms pavogti." - }, - "revealSeedWordsWarningTitle": { - "message": "Šia fraze su niekuo NESIDALINKITE!" + "message": "Šiuos žodžius galima panaudoti visoms jūsų paskyroms pavogti.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Naujas RPC URL" @@ -660,9 +655,6 @@ "save": { "message": "Išsaugoti" }, - "saveAsCsvFile": { - "message": "Įrašyti kaip CSV failą" - }, "scanInstructions": { "message": "Laikykite QR kodą priešais kamerą" }, diff --git a/app/_locales/lv/messages.json b/app/_locales/lv/messages.json index 9b22dec4f..6ec04c251 100644 --- a/app/_locales/lv/messages.json +++ b/app/_locales/lv/messages.json @@ -641,14 +641,9 @@ "revealSeedWords": { "message": "Parādīt atkopšanas vārdus" }, - "revealSeedWordsDescription": { - "message": "Ja mainīsiet pārlūku vai datoru, jūsu kontu piekļuvei būs nepieciešama šī atkopšanas frāze. Saglabājiet to drošā un slepenā vietā!" - }, "revealSeedWordsWarning": { - "message": "Šos vārdus var izmantot visu jūsu kontu nolaupīšanai." - }, - "revealSeedWordsWarningTitle": { - "message": "NEDALIETIES ar šo frāzi!" + "message": "Šos vārdus var izmantot visu jūsu kontu nolaupīšanai.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Jauns RPC URL" @@ -656,9 +651,6 @@ "save": { "message": "Saglabāt" }, - "saveAsCsvFile": { - "message": "Saglabāt kā CSV failu" - }, "scanInstructions": { "message": "Novietojiet QR kodu kameras priekšā" }, diff --git a/app/_locales/ms/messages.json b/app/_locales/ms/messages.json index 907c100c6..11ab1947e 100644 --- a/app/_locales/ms/messages.json +++ b/app/_locales/ms/messages.json @@ -625,14 +625,9 @@ "revealSeedWords": { "message": "Dedahkan Ungkapan Benih" }, - "revealSeedWordsDescription": { - "message": "Jika anda pernah menukar pelayar atau berpindah komputer, anda memerlukan ungkapan benih ini untuk mengakses akaun anda. Simpan ungkapan di tempat yang selamat dan rahsia." - }, "revealSeedWordsWarning": { - "message": "Perkataan ini boleh digunakan untuk mencuri kesemua akaun anda." - }, - "revealSeedWordsWarningTitle": { - "message": "JANGAN berkongsi ungkapan ini dengan orang lain!" + "message": "Perkataan ini boleh digunakan untuk mencuri kesemua akaun anda.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "URL RPC baru" @@ -640,9 +635,6 @@ "save": { "message": "Simpan" }, - "saveAsCsvFile": { - "message": "Simpan sebagai Fail CSV" - }, "scanInstructions": { "message": "Bawa kod QR ke hadapan kamera anda" }, diff --git a/app/_locales/nl/messages.json b/app/_locales/nl/messages.json index b5cc50044..46266da1c 100644 --- a/app/_locales/nl/messages.json +++ b/app/_locales/nl/messages.json @@ -260,7 +260,8 @@ "message": "Onthul back-up woorden" }, "revealSeedWordsWarning": { - "message": "Zorg dat je back-up woorden niet op een openbare plaats bekijkt! Deze woorden kunnen worden gebruikt om al uw accounts opnieuw te genereren (en dus uw account te stelen)." + "message": "Zorg dat je back-up woorden niet op een openbare plaats bekijkt! Deze woorden kunnen worden gebruikt om al uw accounts opnieuw te genereren (en dus uw account te stelen).", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "Opslaan" diff --git a/app/_locales/no/messages.json b/app/_locales/no/messages.json index 13fbdcc21..0aff5029e 100644 --- a/app/_locales/no/messages.json +++ b/app/_locales/no/messages.json @@ -632,14 +632,9 @@ "revealSeedWords": { "message": "Vis frøord" }, - "revealSeedWordsDescription": { - "message": "Hvis du noen gang bytter nettlesere eller flytter datamaskiner, trenger du denne mnemoniske gjenopprettingsfrasen for å få tilgang til kontoene dine. Lagre dem på et trygt og hemmelig sted." - }, "revealSeedWordsWarning": { - "message": "Disse ordene kan brukes for å stjele alle kontoene dine. " - }, - "revealSeedWordsWarningTitle": { - "message": "IKKE del denne frasen med noen! " + "message": "Disse ordene kan brukes for å stjele alle kontoene dine. ", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "NY RPC-URL " @@ -647,9 +642,6 @@ "save": { "message": "Lagre" }, - "saveAsCsvFile": { - "message": "Lagre som CSV-fil " - }, "scanInstructions": { "message": "Plasser QR-koden foran kameraet ditt" }, diff --git a/app/_locales/ph/messages.json b/app/_locales/ph/messages.json index 60040ec01..c1f48526c 100644 --- a/app/_locales/ph/messages.json +++ b/app/_locales/ph/messages.json @@ -1277,14 +1277,9 @@ "revealSeedWords": { "message": "Ipakita ang Secret Recovery Phrase" }, - "revealSeedWordsDescription": { - "message": "Kung magpapalit ka man ng browser o computer, kakailanganin mo ang Secret Recovery Phrase na ito para ma-access ang iyong mga account. I-save ang mga iyon sa isang ligtas at sikretong lugar." - }, "revealSeedWordsWarning": { - "message": "Magagamit ang mga salitang ito para manakaw ang lahat ng iyong account." - }, - "revealSeedWordsWarningTitle": { - "message": "Huwag ibahagi ang phrase na ito sa kahit sino!" + "message": "Magagamit ang mga salitang ito para manakaw ang lahat ng iyong account.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Bagong RPC URL" @@ -1292,9 +1287,6 @@ "save": { "message": "I-save" }, - "saveAsCsvFile": { - "message": "I-save bilang CSV File" - }, "scanInstructions": { "message": "Itapat ang QR code sa iyong camera" }, diff --git a/app/_locales/pl/messages.json b/app/_locales/pl/messages.json index bcac631b6..2da4f2873 100644 --- a/app/_locales/pl/messages.json +++ b/app/_locales/pl/messages.json @@ -639,14 +639,9 @@ "revealSeedWords": { "message": "Pokaż słowa seed" }, - "revealSeedWordsDescription": { - "message": "Jeśli kiedyś zmienisz przeglądarkę lub komputer, będziesz potrzebować tej frazy seed, żeby dostać się do swoich kont. Zapisz ją w bezpiecznym miejscu." - }, "revealSeedWordsWarning": { - "message": "Te słowa mogą być użyte żeby ukraść Twoje konta." - }, - "revealSeedWordsWarningTitle": { - "message": "NIE pokazuj tej frazy nikomu!" + "message": "Te słowa mogą być użyte żeby ukraść Twoje konta.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nowy adres URL RPC" @@ -654,9 +649,6 @@ "save": { "message": "Zapisz" }, - "saveAsCsvFile": { - "message": "Zapisz jako plik CSV" - }, "scanInstructions": { "message": "Umieść kod QR na wprost kamery" }, diff --git a/app/_locales/pt/messages.json b/app/_locales/pt/messages.json index e3297770c..508c9982e 100644 --- a/app/_locales/pt/messages.json +++ b/app/_locales/pt/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Revelar Palavras Seed" }, - "revealSeedWordsDescription": { - "message": "Se você alguma vez mudar de navegador ou trocar de computador, precisará dessa Frase de Recuperação Secreta para acessar suas contas. Salve-as em um lugar seguro e secreto." - }, "revealSeedWordsWarning": { - "message": "Não revele as palavras seed num espaço público! Estas palavras podem ser usadas para roubar todas as suas contas." - }, - "revealSeedWordsWarningTitle": { - "message": "NÃO compartilhe essa frase com ninguém!" + "message": "Não revele as palavras seed num espaço público! Estas palavras podem ser usadas para roubar todas as suas contas.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Revelar a frase de recuperação" @@ -2961,9 +2956,6 @@ "save": { "message": "Guardar" }, - "saveAsCsvFile": { - "message": "Salvar como arquivo CSV" - }, "scanInstructions": { "message": "Posicione o QR code na frente da sua câmera" }, diff --git a/app/_locales/pt_BR/messages.json b/app/_locales/pt_BR/messages.json index 42484c3de..d485739dd 100644 --- a/app/_locales/pt_BR/messages.json +++ b/app/_locales/pt_BR/messages.json @@ -1990,14 +1990,9 @@ "revealSeedWords": { "message": "Revelar Frase de Recuperação Secreta" }, - "revealSeedWordsDescription": { - "message": "Se você alguma vez mudar de navegador ou trocar de computador, precisará dessa Frase de Recuperação Secreta para acessar suas contas. Salve-as em um lugar seguro e secreto." - }, "revealSeedWordsWarning": { - "message": "Essas palavras podem ser usadas para roubar todas as suas contas." - }, - "revealSeedWordsWarningTitle": { - "message": "NÃO compartilhe essa frase com ninguém!" + "message": "Essas palavras podem ser usadas para roubar todas as suas contas.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Novo URL da RPC" @@ -2005,9 +2000,6 @@ "save": { "message": "Salvar" }, - "saveAsCsvFile": { - "message": "Salvar como arquivo CSV" - }, "scanInstructions": { "message": "Posicione o QR code na frente da sua câmera" }, diff --git a/app/_locales/ro/messages.json b/app/_locales/ro/messages.json index d51f9f281..9ea69c8bf 100644 --- a/app/_locales/ro/messages.json +++ b/app/_locales/ro/messages.json @@ -632,14 +632,9 @@ "revealSeedWords": { "message": "Arată cuvintele din seed" }, - "revealSeedWordsDescription": { - "message": "Dacă schimbați vreodată browserele sau vă mutați la alt computer, veți avea nevoie de această expresie sursă pentru a vă accesa conturile. Salvați-o într-un loc sigur și secret." - }, "revealSeedWordsWarning": { - "message": "Aceste cuvinte pot fi folosite pentru a vă fura toate conturile." - }, - "revealSeedWordsWarningTitle": { - "message": "NU împărtășiți această expresie nimănui!" + "message": "Aceste cuvinte pot fi folosite pentru a vă fura toate conturile.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "URL RPC nou" @@ -647,9 +642,6 @@ "save": { "message": "Salvează" }, - "saveAsCsvFile": { - "message": "Salvați ca fișier CSV " - }, "scanInstructions": { "message": "Așezați codul QR în fața camerei" }, diff --git a/app/_locales/ru/messages.json b/app/_locales/ru/messages.json index 080511928..74d6f804d 100644 --- a/app/_locales/ru/messages.json +++ b/app/_locales/ru/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Показать секретную фразу для восстановления" }, - "revealSeedWordsDescription": { - "message": "Если вы меняете браузер или переходите на другой компьютер, вам понадобится эта секретная фраза для восстановления для доступа к своим счетам. Сохраните ее в безопасном потайном месте." - }, "revealSeedWordsWarning": { - "message": "Эти слова можно использовать для кражи всех ваших счетов." - }, - "revealSeedWordsWarningTitle": { - "message": "НЕ сообщайте никому эту фразу!" + "message": "Эти слова можно использовать для кражи всех ваших счетов.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Показать сид-фразу" @@ -2961,9 +2956,6 @@ "save": { "message": "Сохранить" }, - "saveAsCsvFile": { - "message": "Сохранить как файл CSV" - }, "scanInstructions": { "message": "Поместите QR-код перед камерой" }, diff --git a/app/_locales/sk/messages.json b/app/_locales/sk/messages.json index d1050a994..379a4c8e0 100644 --- a/app/_locales/sk/messages.json +++ b/app/_locales/sk/messages.json @@ -617,14 +617,9 @@ "revealSeedWords": { "message": "Zobrazit slova klíčové fráze" }, - "revealSeedWordsDescription": { - "message": "Ak niekedy zmeníte prehliadač alebo presuniete počítače, budete potrebovať túto seed frázu na prístup k svojim účtom. Uložte ich niekde v bezpečí a v tajnosti." - }, "revealSeedWordsWarning": { - "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů." - }, - "revealSeedWordsWarningTitle": { - "message": "Túto frázu s nikým NEZDIEĽAJTE!" + "message": "Nebnovujte slova klíčové fráze na veřejnosti! Tato slova mohou být použita k odcizení veškerých vyašich účtů.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nová RPC URL" @@ -632,9 +627,6 @@ "save": { "message": "Uložit" }, - "saveAsCsvFile": { - "message": "Uložiť ako súbor CSV" - }, "scanInstructions": { "message": "Umiestnite QR kód pred kameru" }, diff --git a/app/_locales/sl/messages.json b/app/_locales/sl/messages.json index fb530fc92..96045cf19 100644 --- a/app/_locales/sl/messages.json +++ b/app/_locales/sl/messages.json @@ -633,14 +633,9 @@ "revealSeedWords": { "message": "Razkrij seed words" }, - "revealSeedWordsDescription": { - "message": "Če želite zamenjati brskalnik ali računalnik, potrebujete vaš seed phase za dostop do računa. Shranite ga na varno skrito mesto." - }, "revealSeedWordsWarning": { - "message": "S temi besedami lahko kdorkoli ukrade vse vaše račune." - }, - "revealSeedWordsWarningTitle": { - "message": "Tega ne delite z nikomer!" + "message": "S temi besedami lahko kdorkoli ukrade vse vaše račune.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Nov URL RPC" @@ -648,9 +643,6 @@ "save": { "message": "Shrani" }, - "saveAsCsvFile": { - "message": "Shrani kot CSV datoteko" - }, "scanInstructions": { "message": "Postavite QR kodo pred vašo kamero" }, diff --git a/app/_locales/sr/messages.json b/app/_locales/sr/messages.json index 7ed8d8648..381e6ccb4 100644 --- a/app/_locales/sr/messages.json +++ b/app/_locales/sr/messages.json @@ -636,14 +636,9 @@ "revealSeedWords": { "message": "Otkrivanje početnih reči" }, - "revealSeedWordsDescription": { - "message": "Ukoliko ikad promenite pregledač ili kompjuter, trebaće vam ova šifra za oporavak naloga (seed phrase) kako biste pristupili svojim nalozima. Čuvajte je na bezbednom i tajnom mestu." - }, "revealSeedWordsWarning": { - "message": "Ove reči se mogu iskoristiti za krađu svih vaših naloga." - }, - "revealSeedWordsWarningTitle": { - "message": "NE delite ovu frazu ni sa kim!" + "message": "Ove reči se mogu iskoristiti za krađu svih vaših naloga.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Novi RPC URL" @@ -651,9 +646,6 @@ "save": { "message": "Сачувај" }, - "saveAsCsvFile": { - "message": "Sačuvajte u formi CSV datoteke" - }, "scanInstructions": { "message": "Stavite QR kod ispred vaše kamere" }, diff --git a/app/_locales/sv/messages.json b/app/_locales/sv/messages.json index ede965a8a..5635ca008 100644 --- a/app/_locales/sv/messages.json +++ b/app/_locales/sv/messages.json @@ -629,14 +629,9 @@ "revealSeedWords": { "message": "Visa seed-ord" }, - "revealSeedWordsDescription": { - "message": "Om du någonsin byter webbläsare eller dator kommer du behöva denna" - }, "revealSeedWordsWarning": { - "message": "De här orden kan användas för att stjäla alla dina konton." - }, - "revealSeedWordsWarningTitle": { - "message": "DELA INTE frasen med någon!" + "message": "De här orden kan användas för att stjäla alla dina konton.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Ny RPC-URL" @@ -644,9 +639,6 @@ "save": { "message": "Spara" }, - "saveAsCsvFile": { - "message": "Spara som CSV-fil" - }, "scanInstructions": { "message": "Placera QR-koden framför din kamera" }, diff --git a/app/_locales/sw/messages.json b/app/_locales/sw/messages.json index bbf274cd4..113065384 100644 --- a/app/_locales/sw/messages.json +++ b/app/_locales/sw/messages.json @@ -623,14 +623,9 @@ "revealSeedWords": { "message": "Onyesha Maneno ya Kianzio" }, - "revealSeedWordsDescription": { - "message": "Ikiwa utabadilisha kisakuzi au kuhamisha kompyuta, utahitaji kirai hiki kianzio ili kufikia akaunti zako. Vihifadhi mahali fulani ambapo ni salamana pa siri." - }, "revealSeedWordsWarning": { - "message": "Maneno haya yanaweza kutumika kuiba akanti zako zote." - }, - "revealSeedWordsWarningTitle": { - "message": "USISHIRIKI kirai hiki na mtu yeyote!" + "message": "Maneno haya yanaweza kutumika kuiba akanti zako zote.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "RPC URL mpya" @@ -638,9 +633,6 @@ "save": { "message": "Hifadhi" }, - "saveAsCsvFile": { - "message": "Hifadhi kama Faili la CSV" - }, "scanInstructions": { "message": "Weka msimbo wa QR mbele ya kamera yako" }, diff --git a/app/_locales/ta/messages.json b/app/_locales/ta/messages.json index 1c83f5f2d..f6772badb 100644 --- a/app/_locales/ta/messages.json +++ b/app/_locales/ta/messages.json @@ -366,7 +366,8 @@ "message": "விதை வார்த்தைகள் வெளிப்படுத்த" }, "revealSeedWordsWarning": { - "message": "உங்கள் விதை வார்த்தைகள் ஒரு பொது இடத்தில் மீட்க வேண்டாம்! உங்கள் எல்லா கணக்குகளையும் திருட இந்த வார்த்தைகள் பயன்படுத்தப்படலாம்." + "message": "உங்கள் விதை வார்த்தைகள் ஒரு பொது இடத்தில் மீட்க வேண்டாம்! உங்கள் எல்லா கணக்குகளையும் திருட இந்த வார்த்தைகள் பயன்படுத்தப்படலாம்.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "சேமி" diff --git a/app/_locales/th/messages.json b/app/_locales/th/messages.json index c3dffa9de..7e35b9887 100644 --- a/app/_locales/th/messages.json +++ b/app/_locales/th/messages.json @@ -327,7 +327,8 @@ "message": "เปิดเผยกลุ่มคำชีด" }, "revealSeedWordsWarning": { - "message": "อย่าเปิดเผยคำกลุ่มคำชีดของคุณในที่สาธารณะ! คำเหล่านี้สามารถใช้เพื่อขโมยบัญชีทั้งหมดของคุณ" + "message": "อย่าเปิดเผยคำกลุ่มคำชีดของคุณในที่สาธารณะ! คำเหล่านี้สามารถใช้เพื่อขโมยบัญชีทั้งหมดของคุณ", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "save": { "message": "บันทึก" diff --git a/app/_locales/tl/messages.json b/app/_locales/tl/messages.json index 6ab34005d..e0648dbb8 100644 --- a/app/_locales/tl/messages.json +++ b/app/_locales/tl/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Ipakita ang Secret Recovery Phrase" }, - "revealSeedWordsDescription": { - "message": "Kung magpapalit ka man ng browser o computer, kakailanganin mo ang Secret Recovery Phrase na ito para ma-access ang iyong mga account. I-save ang mga iyon sa isang ligtas at sikretong lugar." - }, "revealSeedWordsWarning": { - "message": "Magagamit ang mga salitang ito para manakaw ang lahat ng iyong account." - }, - "revealSeedWordsWarningTitle": { - "message": "Huwag ibahagi ang phrase na ito sa sinuman!" + "message": "Magagamit ang mga salitang ito para manakaw ang lahat ng iyong account.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Ipakita ang seed phrase" @@ -2961,9 +2956,6 @@ "save": { "message": "I-save" }, - "saveAsCsvFile": { - "message": "I-save bilang CSV File" - }, "scanInstructions": { "message": "Itapat ang QR code sa iyong camera" }, diff --git a/app/_locales/tr/messages.json b/app/_locales/tr/messages.json index 01a899e50..d5ca577a7 100644 --- a/app/_locales/tr/messages.json +++ b/app/_locales/tr/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Gizli Kurtarma İfadesini Göster" }, - "revealSeedWordsDescription": { - "message": "Tarayıcı değiştirirseniz veya başka bir bilgisayar kullanmaya başlarsanız hesaplarınıza erişim sağlamak için bu Gizli Kurtarma İfadesine ihtiyacınız olacaktır. Güvenli ve gizli bir yerde saklayın." - }, "revealSeedWordsWarning": { - "message": "Bu kelimeler tüm hesaplarınızı çalmak için kullanılabilir." - }, - "revealSeedWordsWarningTitle": { - "message": "Bu ifadeyi hiç kimseyle PAYLAŞMAYIN!" + "message": "Bu kelimeler tüm hesaplarınızı çalmak için kullanılabilir.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Tohum ifadesini ortaya çıkar" @@ -2961,9 +2956,6 @@ "save": { "message": "Kaydet" }, - "saveAsCsvFile": { - "message": "CSV dosyası olarak kaydet" - }, "scanInstructions": { "message": "QR kodu kameranızın önüne getirin" }, diff --git a/app/_locales/uk/messages.json b/app/_locales/uk/messages.json index 8c08e5d1e..837dde933 100644 --- a/app/_locales/uk/messages.json +++ b/app/_locales/uk/messages.json @@ -645,14 +645,9 @@ "revealSeedWords": { "message": "Показати мнемонічні слова" }, - "revealSeedWordsDescription": { - "message": "При зміні браузера або комп'ютера, вам знадобиться seed-фраза для отримання доступу до ваших облікових записів. Збережіть її у надійному місці." - }, "revealSeedWordsWarning": { - "message": "Ці слова можуть бути використані, щоб вкрасти всі ваші облікові записи." - }, - "revealSeedWordsWarningTitle": { - "message": "НЕ передавайте цю фразу нікому!" + "message": "Ці слова можуть бути використані, щоб вкрасти всі ваші облікові записи.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "Новий RPC URL" @@ -660,9 +655,6 @@ "save": { "message": "Зберегти" }, - "saveAsCsvFile": { - "message": "Зберегти як файл CSV" - }, "scanInstructions": { "message": "Розташуйте QR-код перед вашою камерою" }, diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json index d801066f4..536349f94 100644 --- a/app/_locales/vi/messages.json +++ b/app/_locales/vi/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "Hiện Cụm mật khẩu khôi phục bí mật" }, - "revealSeedWordsDescription": { - "message": "Nếu thay đổi trình duyệt hoặc chuyển máy tính, bạn sẽ cần Cụm mật khẩu khôi phục bí mật này để truy cập tài khoản của mình. Hãy lưu Cụm mật khẩu khôi phục bí mật này ở nơi an toàn và bí mật." - }, "revealSeedWordsWarning": { - "message": "Kẻ xấu có thể dùng các từ này để đánh cắp tất cả các tài khoản của bạn." - }, - "revealSeedWordsWarningTitle": { - "message": "KHÔNG chia sẻ cụm mật khẩu này với bất kỳ ai!" + "message": "Kẻ xấu có thể dùng các từ này để đánh cắp tất cả các tài khoản của bạn.", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "Hiện cụm từ khôi phục bí mật" @@ -2961,9 +2956,6 @@ "save": { "message": "Lưu" }, - "saveAsCsvFile": { - "message": "Lưu dưới dạng tập tin CSV" - }, "scanInstructions": { "message": "Đặt mã QR vào trước máy ảnh" }, diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json index dd1256263..b9a0aeb40 100644 --- a/app/_locales/zh_CN/messages.json +++ b/app/_locales/zh_CN/messages.json @@ -2922,14 +2922,9 @@ "revealSeedWords": { "message": "显示助记词" }, - "revealSeedWordsDescription": { - "message": "如果更改浏览器或移动计算机,您将需要此助记词才能访问账户。将它们保存在安全、秘密的地方。" - }, "revealSeedWordsWarning": { - "message": "这些账户助记词可以用来窃取您的所有账户。" - }, - "revealSeedWordsWarningTitle": { - "message": "切勿与任何人分享此账户助记词!" + "message": "这些账户助记词可以用来窃取您的所有账户。", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "revealTheSeedPhrase": { "message": "显示助记词" @@ -2961,9 +2956,6 @@ "save": { "message": "保存" }, - "saveAsCsvFile": { - "message": "保存为 CSV 文件" - }, "scanInstructions": { "message": "将二维码放在摄像头前" }, diff --git a/app/_locales/zh_TW/messages.json b/app/_locales/zh_TW/messages.json index 20e52af9b..f1bc0be8a 100644 --- a/app/_locales/zh_TW/messages.json +++ b/app/_locales/zh_TW/messages.json @@ -1178,14 +1178,9 @@ "revealSeedWords": { "message": "顯示助憶詞" }, - "revealSeedWordsDescription": { - "message": "若想在不同瀏覽器或電腦登入,將需要使用助憶詞還原帳戶資訊。請妥善並安全的保管您的助憶詞。" - }, "revealSeedWordsWarning": { - "message": "絕對不要在公共場合輸入助憶詞!這可被用來竊取您的帳戶。" - }, - "revealSeedWordsWarningTitle": { - "message": "請勿將助憶詞洩漏予他人!" + "message": "絕對不要在公共場合輸入助憶詞!這可被用來竊取您的帳戶。", + "description": "$1 is bolded text using the message from 'revealSeedWordsWarning2'" }, "rpcUrl": { "message": "新的 RPC URL" @@ -1193,9 +1188,6 @@ "save": { "message": "儲存" }, - "saveAsCsvFile": { - "message": "儲存為 CSV 格式檔案" - }, "scanInstructions": { "message": "請將 QR code 放在攝影鏡頭前面" }, diff --git a/ui/components/app/hold-to-reveal-button/hold-to-reveal-button.js b/ui/components/app/hold-to-reveal-button/hold-to-reveal-button.js index fbc21097c..16e86396a 100644 --- a/ui/components/app/hold-to-reveal-button/hold-to-reveal-button.js +++ b/ui/components/app/hold-to-reveal-button/hold-to-reveal-button.js @@ -1,8 +1,9 @@ import React, { useCallback, useContext, useRef, useState } from 'react'; import PropTypes from 'prop-types'; -import Button from '../../ui/button'; +import classnames from 'classnames'; import { I18nContext } from '../../../contexts/i18n'; -import Box from '../../ui/box/box'; +import { Button } from '../../component-library'; +import Box from '../../ui/box'; import { AlignItems, DISPLAY, @@ -74,11 +75,10 @@ export default function HoldToRevealButton({ buttonText, onLongPressed }) { const renderPreCompleteContent = useCallback(() => { return ( @@ -120,9 +120,9 @@ export default function HoldToRevealButton({ buttonText, onLongPressed }) { const renderPostCompleteContent = useCallback(() => { return isUnlocking ? (
- {renderPreCompleteContent()} - {renderPostCompleteContent()} - - } className="hold-to-reveal-button__button-hold" > + + {renderPreCompleteContent()} + {renderPostCompleteContent()} + {buttonText} ); diff --git a/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.js b/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.js new file mode 100644 index 000000000..9d93d9da3 --- /dev/null +++ b/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.js @@ -0,0 +1,116 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import withModalProps from '../../../../helpers/higher-order-components/with-modal-props'; +import Box from '../../../ui/box'; +import { + Text, + Button, + BUTTON_TYPES, + ButtonIcon, + ICON_NAMES, +} from '../../../component-library'; +import { + AlignItems, + DISPLAY, + FLEX_DIRECTION, + JustifyContent, + Size, + TextVariant, +} from '../../../../helpers/constants/design-system'; +import HoldToRevealButton from '../../hold-to-reveal-button'; +import { useI18nContext } from '../../../../hooks/useI18nContext'; +import ZENDESK_URLS from '../../../../helpers/constants/zendesk-url'; + +const HoldToRevealModal = ({ onLongPressed, hideModal }) => { + const t = useI18nContext(); + + const unlock = () => { + onLongPressed(); + hideModal(); + }; + + const handleCancel = () => { + hideModal(); + }; + + return ( + + + {t('holdToRevealTitle')} + + + + + {t('holdToRevealContent1', [ + + {t('holdToRevealContent2')} + , + ])} + + + {t('holdToRevealContent3', [ + + {t('holdToRevealContent4')} + , + , + ])} + + + + + ); +}; + +HoldToRevealModal.propTypes = { + // The function to be executed after the hold to reveal long press has been completed + onLongPressed: PropTypes.func.isRequired, + hideModal: PropTypes.func, +}; + +export default withModalProps(HoldToRevealModal); diff --git a/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.test.js b/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.test.js new file mode 100644 index 000000000..4c0410366 --- /dev/null +++ b/ui/components/app/modals/hold-to-reveal-modal/hold-to-reveal-modal.test.js @@ -0,0 +1,114 @@ +import React from 'react'; +import configureMockState from 'redux-mock-store'; +import { fireEvent, waitFor } from '@testing-library/react'; +import thunk from 'redux-thunk'; +import { renderWithProvider } from '../../../../../test/lib/render-helpers'; +import mockState from '../../../../../test/data/mock-state.json'; +import { + holdToRevealContent1, + holdToRevealContent2, + holdToRevealContent3, + holdToRevealContent4, + holdToRevealContent5, + holdToRevealTitle, +} from '../../../../../app/_locales/en/messages.json'; +import HoldToRevealModal from '.'; + +const mockShowModal = jest.fn(); + +jest.mock('../../../../store/actions.ts', () => { + return { + showModal: () => mockShowModal, + }; +}); + +describe('Hold to Reveal Modal', () => { + const mockStore = configureMockState([thunk])(mockState); + const onLongPressStub = jest.fn().mockResolvedValue(); + const hideModalStub = jest.fn().mockResolvedValue(); + + global.platform = { openTab: jest.fn() }; + + it('should render the srp warning text and button', () => { + const { getByText } = renderWithProvider( + , + mockStore, + ); + + const holdButton = getByText('Hold to reveal SRP'); + expect(holdButton).toBeInTheDocument(); + + const warningTitle = getByText(holdToRevealTitle.message); + expect(warningTitle).toBeInTheDocument(); + const warningText1 = getByText( + holdToRevealContent1.message.replace(' $1', ''), + ); + expect(warningText1).toBeInTheDocument(); + + const warningText2 = getByText(holdToRevealContent2.message); + expect(warningText2).toBeInTheDocument(); + + const warningText3 = getByText( + holdToRevealContent3.message.replace(' $1 $2', ''), + ); + expect(warningText3).toBeInTheDocument(); + + const warningText4 = getByText(holdToRevealContent4.message); + expect(warningText4).toBeInTheDocument(); + + const warningText5 = getByText(holdToRevealContent5.message); + expect(warningText5).toBeInTheDocument(); + + fireEvent.click(holdButton); + + expect(holdButton).toBeDefined(); + + fireEvent.mouseUp(holdButton); + + expect(holdButton).toBeDefined(); + }); + + it('should should execute onLongPressed after long press', async () => { + const { getByText } = renderWithProvider( + , + mockStore, + ); + + const holdButton = getByText('Hold to reveal SRP'); + waitFor(() => { + expect(holdButton.firstChild).toHaveClass( + 'hold-to-reveal-button__unlock-icon-container', + ); + expect(onLongPressStub.callCount).toBe(1); + expect(hideModalStub.callCount).toBe(1); + }); + }); + + it('should remain open if long pressed was not complete', async () => { + const { getByText } = renderWithProvider( + , + mockStore, + ); + + const holdButton = getByText('Hold to reveal SRP'); + waitFor( + () => { + expect(holdButton.firstChild).toHaveClass( + 'hold-to-reveal-button__unlock-icon-container', + ); + expect(onLongPressStub.callCount).toBe(0); + expect(hideModalStub.callCount).toBe(0); + }, + { interval: 100 }, + ); + }); +}); diff --git a/ui/components/app/modals/hold-to-reveal-modal/index.js b/ui/components/app/modals/hold-to-reveal-modal/index.js new file mode 100644 index 000000000..7b0841288 --- /dev/null +++ b/ui/components/app/modals/hold-to-reveal-modal/index.js @@ -0,0 +1 @@ +export { default } from './hold-to-reveal-modal'; diff --git a/ui/components/app/modals/hold-to-reveal-modal/index.scss b/ui/components/app/modals/hold-to-reveal-modal/index.scss new file mode 100644 index 000000000..207c84efd --- /dev/null +++ b/ui/components/app/modals/hold-to-reveal-modal/index.scss @@ -0,0 +1,8 @@ +.hold-to-reveal-modal { + position: relative; + + &__close { + position: absolute; + right: 16px; + } +} diff --git a/ui/components/app/modals/index.scss b/ui/components/app/modals/index.scss index f4467b153..be8d35f3d 100644 --- a/ui/components/app/modals/index.scss +++ b/ui/components/app/modals/index.scss @@ -12,6 +12,7 @@ @import 'customize-nonce/index'; @import 'convert-token-to-nft-modal/index'; @import 'contract-details-modal/index'; +@import 'hold-to-reveal-modal/index'; .modal { z-index: 1050; diff --git a/ui/components/app/modals/modal.js b/ui/components/app/modals/modal.js index 7bce4f7e1..fa7c0c1c2 100644 --- a/ui/components/app/modals/modal.js +++ b/ui/components/app/modals/modal.js @@ -14,6 +14,7 @@ import ExportPrivateKeyModal from './export-private-key-modal'; import HideTokenConfirmationModal from './hide-token-confirmation-modal'; import QRScanner from './qr-scanner'; +import HoldToRevealModal from './hold-to-reveal-modal'; import ConfirmRemoveAccount from './confirm-remove-account'; import ConfirmResetAccount from './confirm-reset-account'; import TransactionConfirmed from './transaction-confirmed'; @@ -118,6 +119,19 @@ const MODALS = { ...accountModalStyle, }, + HOLD_TO_REVEAL_SRP: { + contents: , + mobileModalStyle: { + ...modalContainerMobileStyle, + }, + laptopModalStyle: { + ...modalContainerLaptopStyle, + }, + contentStyle: { + borderRadius: '8px', + }, + }, + HIDE_TOKEN_CONFIRMATION: { contents: , mobileModalStyle: { diff --git a/ui/components/ui/export-text-container/export-text-container.component.js b/ui/components/ui/export-text-container/export-text-container.component.js index 284276b76..79550bb5e 100644 --- a/ui/components/ui/export-text-container/export-text-container.component.js +++ b/ui/components/ui/export-text-container/export-text-container.component.js @@ -2,60 +2,61 @@ import React from 'react'; import PropTypes from 'prop-types'; import { useI18nContext } from '../../../hooks/useI18nContext'; import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard'; -import { exportAsFile } from '../../../helpers/utils/export-utils'; -import { Icon, ICON_NAMES } from '../../component-library'; +import { + AlignItems, + BorderColor, + BorderRadius, + DISPLAY, + FLEX_DIRECTION, + JustifyContent, + TextVariant, +} from '../../../helpers/constants/design-system'; +import Box from '../box/box'; +import { ButtonSecondary, Text } from '../../component-library'; -function ExportTextContainer({ - text = '', - onClickCopy = null, - onClickDownload = null, -}) { +function ExportTextContainer({ text = '', onClickCopy = null }) { + const ONE_MINUTE = 1000 * 60; const t = useI18nContext(); - const [copied, handleCopy] = useCopyToClipboard(); + const [copied, handleCopy] = useCopyToClipboard(ONE_MINUTE); return ( -
-
-
{text}
-
-
-
{ - if (onClickCopy) { - onClickCopy(); - } - handleCopy(text); - }} - > - -
- {copied ? t('copiedExclamation') : t('copyToClipboard')} -
-
-
{ - if (onClickDownload) { - onClickDownload(); - } - exportAsFile('', text); - }} - > - -
- {t('saveAsCsvFile')} -
-
-
-
+ + + {text} + + { + if (onClickCopy) { + onClickCopy(); + } + handleCopy(text); + }} + > + {copied ? t('copiedExclamation') : t('copyToClipboard')} + + ); } ExportTextContainer.propTypes = { text: PropTypes.string, onClickCopy: PropTypes.func, - onClickDownload: PropTypes.func, }; export default React.memo(ExportTextContainer); diff --git a/ui/components/ui/export-text-container/index.scss b/ui/components/ui/export-text-container/index.scss deleted file mode 100644 index 8d01f0113..000000000 --- a/ui/components/ui/export-text-container/index.scss +++ /dev/null @@ -1,54 +0,0 @@ -.export-text-container { - display: flex; - justify-content: center; - flex-direction: column; - align-items: center; - border: 1px solid var(--color-border-default); - border-radius: 4px; - font-weight: 400; - - &__text-container { - width: 100%; - display: flex; - justify-content: center; - padding: 20px; - border-radius: 4px; - background: var(--color-background-default); - } - - &__text { - @include H4; - - resize: none; - border: none; - background: var(--color-background-default); - text-align: center; - } - - &__buttons-container { - display: flex; - flex-direction: row; - border-top: 1px solid var(--color-border-default); - width: 100%; - } - - &__button { - @include H7; - - padding: 10px; - flex: 1; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - color: var(--color-primary-default); - - &--copy { - border-right: 1px solid var(--color-border-default); - } - } - - &__button-text { - padding-left: 10px; - } -} diff --git a/ui/components/ui/ui-components.scss b/ui/components/ui/ui-components.scss index 7ca7624fe..f3f3b350d 100644 --- a/ui/components/ui/ui-components.scss +++ b/ui/components/ui/ui-components.scss @@ -18,7 +18,6 @@ @import 'dropdown/dropdown'; @import 'editable-label/index'; @import 'error-message/index'; -@import 'export-text-container/index'; @import 'icon-border/icon-border'; @import 'icon-button/icon-button'; @import 'icon-with-fallback/icon-with-fallback'; diff --git a/ui/helpers/constants/zendesk-url.js b/ui/helpers/constants/zendesk-url.js index 6384fc9fe..1e3f4aec9 100644 --- a/ui/helpers/constants/zendesk-url.js +++ b/ui/helpers/constants/zendesk-url.js @@ -22,6 +22,10 @@ const ZENDESK_URLS = { 'https://metamask.zendesk.com/hc/en-us/articles/4404722782107', SECRET_RECOVERY_PHRASE: 'https://metamask.zendesk.com/hc/en-us/articles/360060826432-What-is-a-Secret-Recovery-Phrase-and-how-to-keep-your-crypto-wallet-secure', + SECRET_RECOVERY_PHRASE_USER_GUIDE: + 'https://metamask.zendesk.com/hc/en-us/articles/4404722782107-User-guide-Secret-Recovery-Phrase-password-and-private-keys', + NON_CUSTODIAL_WALLET: + 'https://metamask.zendesk.com/hc/en-us/articles/360059952212-MetaMask-is-a-non-custodial-wallet', SPEEDUP_CANCEL: 'https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction', TOKEN_SAFETY_PRACTICES: diff --git a/ui/hooks/useCopyToClipboard.js b/ui/hooks/useCopyToClipboard.js index 608eab637..8f6384ac0 100644 --- a/ui/hooks/useCopyToClipboard.js +++ b/ui/hooks/useCopyToClipboard.js @@ -13,7 +13,14 @@ const DEFAULT_DELAY = SECOND * 3; export function useCopyToClipboard(delay = DEFAULT_DELAY) { const [copied, setCopied] = useState(false); - const startTimeout = useTimeout(() => setCopied(false), delay, false); + const startTimeout = useTimeout( + () => { + copyToClipboard(' '); + setCopied(false); + }, + delay, + false, + ); const handleCopy = useCallback( (text) => { diff --git a/ui/pages/keychains/__snapshots__/reveal-seed.test.js.snap b/ui/pages/keychains/__snapshots__/reveal-seed.test.js.snap index 7006aa579..f76d8294d 100644 --- a/ui/pages/keychains/__snapshots__/reveal-seed.test.js.snap +++ b/ui/pages/keychains/__snapshots__/reveal-seed.test.js.snap @@ -3,89 +3,133 @@ exports[`Reveal Seed Page should match snapshot 1`] = `
-
-
- Secret Recovery Phrase -
-
- If you ever change browsers or move computers, you will need this Secret Recovery Phrase to access your accounts. Save them somewhere safe and secret. -
-
-
+

-

+ Secret Recovery Phrase (SRP) + + + provides + + full access to your wallet and funds. + + + + + +

+

+ + + MetaMask is a + + + non-custodial wallet + + + . That means you're the owner of your SRP. + + +

+
-
- -
- -
-
+ class="box mm-icon mm-icon--size-lg box--flex-direction-row box--color-error-default" + style="mask-image: url('./images/icons/danger.svg');" + /> +
+

+ + + Make sure no one is looking at your screen. + + MetaMask Support will never request this. + + + + +

+
+ +
+ +
+
diff --git a/ui/pages/keychains/index.scss b/ui/pages/keychains/index.scss index 45003490a..8ce288d81 100644 --- a/ui/pages/keychains/index.scss +++ b/ui/pages/keychains/index.scss @@ -74,25 +74,12 @@ } .reveal-seed { - &__content { - padding: 20px; + &__tab { + display: flex; + flex: 1; } - &__label { - padding-bottom: 10px; - font-weight: 400; - display: inline-block; - } - - &__error { - @include H6; - - color: var(--color-error-default); - padding-top: 5px; + &__active-tab { + color: var(--color-primary-default); } } - -.page-container__footer-single-button { - width: 40%; - margin: 8px auto; -} diff --git a/ui/pages/keychains/reveal-seed.js b/ui/pages/keychains/reveal-seed.js index a57611f26..93fa17bb8 100644 --- a/ui/pages/keychains/reveal-seed.js +++ b/ui/pages/keychains/reveal-seed.js @@ -1,255 +1,317 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import classnames from 'classnames'; -import { requestRevealSeedWords } from '../../store/actions'; +import React, { useContext, useEffect, useState } from 'react'; +import { useSelector, useDispatch } from 'react-redux'; +import { useHistory } from 'react-router-dom'; +import qrCode from 'qrcode-generator'; +import { requestRevealSeedWords, showModal } from '../../store/actions'; import ExportTextContainer from '../../components/ui/export-text-container'; import { getMostRecentOverviewPage } from '../../ducks/history/history'; import { EVENT, EVENT_NAMES } from '../../../shared/constants/metametrics'; +import { + TextVariant, + SEVERITIES, + Size, + BLOCK_SIZES, + JustifyContent, + AlignItems, + DISPLAY, +} from '../../helpers/constants/design-system'; -import Button from '../../components/ui/button'; +import Box from '../../components/ui/box'; +import { + Text, + Label, + BannerAlert, + Button, + TextField, + HelpText, + BUTTON_TYPES, + TEXT_FIELD_SIZES, + TEXT_FIELD_TYPES, + BUTTON_SIZES, +} from '../../components/component-library'; +import { useI18nContext } from '../../hooks/useI18nContext'; +import { MetaMetricsContext } from '../../contexts/metametrics'; +import ZENDESK_URLS from '../../helpers/constants/zendesk-url'; +import { Tabs, Tab } from '../../components/ui/tabs'; const PASSWORD_PROMPT_SCREEN = 'PASSWORD_PROMPT_SCREEN'; const REVEAL_SEED_SCREEN = 'REVEAL_SEED_SCREEN'; -class RevealSeedPage extends Component { - state = { - screen: PASSWORD_PROMPT_SCREEN, - password: '', - seedWords: null, - error: null, - }; +const RevealSeedPage = () => { + const history = useHistory(); + const dispatch = useDispatch(); + const t = useI18nContext(); + const trackEvent = useContext(MetaMetricsContext); - componentDidMount() { + const [screen, setScreen] = useState(PASSWORD_PROMPT_SCREEN); + const [password, setPassword] = useState(''); + const [seedWords, setSeedWords] = useState(null); + const [completedLongPress, setCompletedLongPress] = useState(false); + const [error, setError] = useState(null); + const mostRecentOverviewPage = useSelector(getMostRecentOverviewPage); + + useEffect(() => { const passwordBox = document.getElementById('password-box'); if (passwordBox) { passwordBox.focus(); } - } + }, []); - handleSubmit(event) { + const renderQR = () => { + const qrImage = qrCode(0, 'L'); + qrImage.addData(seedWords); + qrImage.make(); + return qrImage; + }; + + const handleSubmit = (event) => { event.preventDefault(); - this.setState({ seedWords: null, error: null }); - this.props - .requestRevealSeedWords(this.state.password) - .then((seedWords) => { - this.context.trackEvent({ + setSeedWords(null); + setCompletedLongPress(false); + setError(null); + dispatch(requestRevealSeedWords(password)) + .then((revealedSeedWords) => { + trackEvent({ category: EVENT.CATEGORIES.KEYS, event: EVENT_NAMES.KEY_EXPORT_REVEALED, properties: { key_type: EVENT.KEY_TYPES.SRP, }, }); - this.setState({ seedWords, screen: REVEAL_SEED_SCREEN }); + setSeedWords(revealedSeedWords); + + dispatch( + showModal({ + name: 'HOLD_TO_REVEAL_SRP', + onLongPressed: () => { + setCompletedLongPress(true); + setScreen(REVEAL_SEED_SCREEN); + }, + }), + ); }) - .catch((error) => { - this.context.trackEvent({ + .catch((e) => { + trackEvent({ category: EVENT.CATEGORIES.KEYS, event: EVENT_NAMES.KEY_EXPORT_FAILED, properties: { key_type: EVENT.KEY_TYPES.SRP, - reason: error.message, // 'incorrect_password', + reason: e.message, // 'incorrect_password', }, }); - this.setState({ error: error.message }); + setError(e.message); }); - } + }; - renderWarning() { + const renderWarning = () => { return ( -
- -
-
- {this.context.t('revealSeedWordsWarningTitle')} -
-
{this.context.t('revealSeedWordsWarning')}
-
-
+ + + {t('revealSeedWordsWarning', [ + + {t('revealSeedWordsWarning2')} + , + ])} + + ); - } - - renderContent() { - return this.state.screen === PASSWORD_PROMPT_SCREEN - ? this.renderPasswordPromptContent() - : this.renderRevealSeedContent(); - } - - renderPasswordPromptContent() { - const { t } = this.context; + }; + const renderPasswordPromptContent = () => { return ( -
this.handleSubmit(event)}> - -
- - this.setState({ password: event.target.value }) - } - className={classnames('form-control', { - 'form-control--error': this.state.error, - })} - /> -
- {this.state.error && ( -
{this.state.error}
- )} + handleSubmit(event)}> + + setPassword(event.target.value)} + error={error} + width={BLOCK_SIZES.FULL} + /> + {error && {error}} ); - } - - renderRevealSeedContent() { - const { t, trackEvent } = this.context; + }; + const renderRevealSeedContent = () => { return (
- - { - trackEvent({ - category: EVENT.CATEGORIES.KEYS, - event: EVENT_NAMES.KEY_EXPORT_COPIED, - properties: { - key_type: EVENT.KEY_TYPES.SRP, - copy_method: 'clipboard', - }, - }); - }} - onClickDownload={() => { - trackEvent({ - category: EVENT.CATEGORIES.KEYS, - event: EVENT_NAMES.KEY_EXPORT_COPIED, - properties: { - key_type: EVENT.KEY_TYPES.SRP, - copy_method: 'file_download', - }, - }); - }} - /> + + + + { + trackEvent({ + category: EVENT.CATEGORIES.KEYS, + event: EVENT_NAMES.KEY_EXPORT_COPIED, + properties: { + key_type: EVENT.KEY_TYPES.SRP, + copy_method: 'clipboard', + }, + }); + }} + /> + + + +
+ + +
); - } + }; - renderFooter() { - return this.state.screen === PASSWORD_PROMPT_SCREEN - ? this.renderPasswordPromptFooter() - : this.renderRevealSeedFooter(); - } - - renderPasswordPromptFooter() { + const renderPasswordPromptFooter = () => { return ( -
-
- - -
-
- ); - } - - renderRevealSeedFooter() { - return ( -
+ -
+ +
); - } + }; - render() { + const renderRevealSeedFooter = () => { return ( -
-
-
- {this.context.t('secretRecoveryPhrase')} -
-
- {this.context.t('revealSeedWordsDescription')} -
-
-
- {this.renderWarning()} -
{this.renderContent()}
-
- {this.renderFooter()} -
+ + + ); - } -} - -RevealSeedPage.propTypes = { - requestRevealSeedWords: PropTypes.func, - history: PropTypes.object, - mostRecentOverviewPage: PropTypes.string.isRequired, -}; - -RevealSeedPage.contextTypes = { - t: PropTypes.func, - trackEvent: PropTypes.func, -}; - -const mapStateToProps = (state) => { - return { - mostRecentOverviewPage: getMostRecentOverviewPage(state), }; -}; -const mapDispatchToProps = (dispatch) => { - return { - requestRevealSeedWords: (password) => - dispatch(requestRevealSeedWords(password)), + const renderContent = () => { + return screen === PASSWORD_PROMPT_SCREEN || !completedLongPress + ? renderPasswordPromptContent() + : renderRevealSeedContent(); }; + + const renderFooter = () => { + return screen === PASSWORD_PROMPT_SCREEN || !completedLongPress + ? renderPasswordPromptFooter() + : renderRevealSeedFooter(); + }; + + return ( + + {t('secretRecoveryPhrase')} + + {t('revealSeedWordsDescription1', [ + , + + {t('revealSeedWordsDescription3')} + , + ])} + + + {t('revealSeedWordsDescription2', [ + , + ])} + + {renderWarning()} + {renderContent()} + {renderFooter()} + + ); }; -export default connect(mapStateToProps, mapDispatchToProps)(RevealSeedPage); +export default RevealSeedPage; diff --git a/ui/pages/keychains/reveal-seed.test.js b/ui/pages/keychains/reveal-seed.test.js index 9469b775d..4da525dce 100644 --- a/ui/pages/keychains/reveal-seed.test.js +++ b/ui/pages/keychains/reveal-seed.test.js @@ -1,31 +1,41 @@ import React from 'react'; import configureMockStore from 'redux-mock-store'; -import { fireEvent } from '@testing-library/react'; +import { fireEvent, waitFor } from '@testing-library/react'; import thunk from 'redux-thunk'; import { renderWithProvider } from '../../../test/lib/render-helpers'; +import { MODAL_OPEN } from '../../store/actionConstants'; +import mockState from '../../../test/data/mock-state.json'; import RevealSeedPage from './reveal-seed'; -const mockRequestRevealSeedWords = jest.fn().mockResolvedValue(); +const mockRequestRevealSeedWords = jest + .fn() + .mockResolvedValue('test seed words'); + +const mockShowModal = jest.fn().mockResolvedValue({ + type: MODAL_OPEN, + payload: { name: 'HOLD_TO_REVEAL_SRP' }, +}); jest.mock('../../store/actions.ts', () => ({ requestRevealSeedWords: () => mockRequestRevealSeedWords, + showModal: () => mockShowModal, })); describe('Reveal Seed Page', () => { - const mockState = { - history: { - mostRecentOverviewPage: '/', - }, - }; const mockStore = configureMockStore([thunk])(mockState); + afterEach(() => { + mockRequestRevealSeedWords.mockClear(); + mockShowModal.mockClear(); + }); + it('should match snapshot', () => { const { container } = renderWithProvider(, mockStore); expect(container).toMatchSnapshot(); }); - it('form submit', () => { + it('form submit', async () => { const { queryByTestId, queryByText } = renderWithProvider( , mockStore, @@ -37,6 +47,48 @@ describe('Reveal Seed Page', () => { fireEvent.click(queryByText('Next')); - expect(mockRequestRevealSeedWords).toHaveBeenCalled(); + await waitFor(() => { + expect(mockRequestRevealSeedWords).toHaveBeenCalled(); + }); + }); + + it('shows hold to reveal', async () => { + const { queryByTestId, queryByText } = renderWithProvider( + , + mockStore, + ); + + fireEvent.change(queryByTestId('input-password'), { + target: { value: 'password' }, + }); + + fireEvent.click(queryByText('Next')); + + await waitFor(() => { + expect(mockRequestRevealSeedWords).toHaveBeenCalled(); + expect(mockShowModal).toHaveBeenCalled(); + }); + }); + + it('does not show modal on bad password', async () => { + const mockRequestPasswordFail = jest.fn().mockRejectedValue(); + jest.mock('../../store/actions.ts', () => ({ + requestRevealSeedWords: () => mockRequestPasswordFail, + showModal: () => mockShowModal, + })); + const { queryByTestId, queryByText } = renderWithProvider( + , + mockStore, + ); + + fireEvent.change(queryByTestId('input-password'), { + target: { value: 'bad password' }, + }); + + fireEvent.click(queryByText('Next')); + + await waitFor(() => { + expect(mockShowModal).not.toHaveBeenCalled(); + }); }); }); diff --git a/ui/pages/mobile-sync/mobile-sync.component.js b/ui/pages/mobile-sync/mobile-sync.component.js index 9c0dc96fe..b46a5a7b9 100644 --- a/ui/pages/mobile-sync/mobile-sync.component.js +++ b/ui/pages/mobile-sync/mobile-sync.component.js @@ -338,7 +338,7 @@ export default class MobileSyncPage extends Component { -
+
{ const expectedActions = [ { type: 'SHOW_LOADING_INDICATION', payload: undefined }, - { type: 'DISPLAY_WARNING', payload: 'error' }, { type: 'HIDE_LOADING_INDICATION' }, ]; diff --git a/ui/store/actions.ts b/ui/store/actions.ts index 46c7d257c..ea54485c2 100644 --- a/ui/store/actions.ts +++ b/ui/store/actions.ts @@ -299,9 +299,6 @@ export function requestRevealSeedWords( await verifyPassword(password); const seedPhrase = await verifySeedPhrase(); return seedPhrase; - } catch (error) { - dispatch(displayWarning(error)); - throw error; } finally { dispatch(hideLoadingIndication()); }