diff --git a/app/_locales/am/messages.json b/app/_locales/am/messages.json index 60a718372b53..5b90a71ffb2d 100644 --- a/app/_locales/am/messages.json +++ b/app/_locales/am/messages.json @@ -545,9 +545,6 @@ "privateNetwork": { "message": "የግል አውታረ መረብ" }, - "queue": { - "message": "ወረፋ" - }, "readdToken": { "message": "በመለያ አማራጮችዎ ምናሌ ውስጥ ወደ “ተለዋጭ ስም አክል” በመግባት ለወደፊቱ ይህን ተለዋጭ ስም መልሰው ማከል ይችላሉ።" }, diff --git a/app/_locales/ar/messages.json b/app/_locales/ar/messages.json index cb243675e913..0d7e27e52708 100644 --- a/app/_locales/ar/messages.json +++ b/app/_locales/ar/messages.json @@ -557,9 +557,6 @@ "privateNetwork": { "message": "شبكة خاصة" }, - "queue": { - "message": "اللائحة" - }, "readdToken": { "message": "يمكنك إضافة هذه العملة الرمزية مرة أخرى في المستقبل من خلال الانتقال إلى \"إضافة عملة رمزية\" في قائمة خيارات الحسابات الخاصة بك." }, diff --git a/app/_locales/bg/messages.json b/app/_locales/bg/messages.json index cfa8230344f7..81ea9db35d03 100644 --- a/app/_locales/bg/messages.json +++ b/app/_locales/bg/messages.json @@ -556,9 +556,6 @@ "privateNetwork": { "message": "Частна мрежа" }, - "queue": { - "message": "Опашка" - }, "readdToken": { "message": "Можете да добавите този жетон в бъдеще, като отидете на „Добавяне на жетон“ в менюто с опции на акаунти." }, diff --git a/app/_locales/bn/messages.json b/app/_locales/bn/messages.json index fa8fa73c723c..e9fc84fe1220 100644 --- a/app/_locales/bn/messages.json +++ b/app/_locales/bn/messages.json @@ -554,9 +554,6 @@ "privateNetwork": { "message": "ব্যক্তিগত নেটওয়ার্ক" }, - "queue": { - "message": "অপেক্ষমাণ" - }, "readdToken": { "message": "আপনি আপনার অ্যাকাউন্টস বিকল্পের মেনুতে \"টোকেনগুলি যোগ করুন\" এ গিয়ে ভবিষ্যতে আবার এই টোকেনটি যোগ করতে পারবেন। " }, diff --git a/app/_locales/ca/messages.json b/app/_locales/ca/messages.json index 9e5c4dcc0cbc..b4863d54d829 100644 --- a/app/_locales/ca/messages.json +++ b/app/_locales/ca/messages.json @@ -541,9 +541,6 @@ "privateNetwork": { "message": "Xarxa privada" }, - "queue": { - "message": "Cua" - }, "readdToken": { "message": "Pots tornar a afegir aquesta fitxa en el futur anant a \"Afegir fitxa\" al menu d'opcions dels teus comptes." }, diff --git a/app/_locales/da/messages.json b/app/_locales/da/messages.json index abe777d47421..d4b56c806466 100644 --- a/app/_locales/da/messages.json +++ b/app/_locales/da/messages.json @@ -541,9 +541,6 @@ "privateNetwork": { "message": "Privat netværk" }, - "queue": { - "message": "Kø" - }, "readdToken": { "message": "Du kan tilføje denne token i fremtiden, ved at gå til \"Tilføj token\" under dine valgmenuen for dine konti." }, diff --git a/app/_locales/de/messages.json b/app/_locales/de/messages.json index 70ca5538ad72..d7a90dc468aa 100644 --- a/app/_locales/de/messages.json +++ b/app/_locales/de/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Öffentliche Adresse" }, - "queue": { - "message": "Warteschlange" - }, "queued": { "message": "In Warteschlange" }, diff --git a/app/_locales/el/messages.json b/app/_locales/el/messages.json index ce06907b2e70..af006198fe33 100644 --- a/app/_locales/el/messages.json +++ b/app/_locales/el/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Δημόσια Διεύθυνση" }, - "queue": { - "message": "Ουρά" - }, "queued": { "message": "Σε Αναμονή" }, diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 862ca35ce427..567e7ca3f8b2 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -3341,9 +3341,6 @@ "publicAddress": { "message": "Public address" }, - "queue": { - "message": "Queue" - }, "queued": { "message": "Queued" }, diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json index 71a4b61ecec4..22f8a207114e 100644 --- a/app/_locales/es/messages.json +++ b/app/_locales/es/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Dirección pública" }, - "queue": { - "message": "Cola" - }, "queued": { "message": "En cola" }, diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json index 7628f9c7ada3..74d738b6e8b5 100644 --- a/app/_locales/es_419/messages.json +++ b/app/_locales/es_419/messages.json @@ -1767,9 +1767,6 @@ "publicAddress": { "message": "Dirección pública" }, - "queue": { - "message": "Cola" - }, "queued": { "message": "En cola" }, diff --git a/app/_locales/et/messages.json b/app/_locales/et/messages.json index cc92f0f268f1..daaa5789aa58 100644 --- a/app/_locales/et/messages.json +++ b/app/_locales/et/messages.json @@ -550,9 +550,6 @@ "privateNetwork": { "message": "Privaatvõrk" }, - "queue": { - "message": "Järjekord" - }, "readdToken": { "message": "Saate selle loa tulevikus tagasi lisada, kui lähete oma kontovalikute menüüs vahelehele „Lisa luba“." }, diff --git a/app/_locales/fa/messages.json b/app/_locales/fa/messages.json index c94f0efefab1..7745c66537a8 100644 --- a/app/_locales/fa/messages.json +++ b/app/_locales/fa/messages.json @@ -560,9 +560,6 @@ "privateNetwork": { "message": "شبکه شخصی" }, - "queue": { - "message": "صف" - }, "readdToken": { "message": "شما میتوانید این رمزیاب را دوباره برای آینده با رفتن به گزینه \"Add token\" در مینوی تنظیمات حساب ها، اضافه نمایید." }, diff --git a/app/_locales/fi/messages.json b/app/_locales/fi/messages.json index 788eda6b44c1..a8ba1bdf8195 100644 --- a/app/_locales/fi/messages.json +++ b/app/_locales/fi/messages.json @@ -557,9 +557,6 @@ "privateNetwork": { "message": "Yksityinen verkko" }, - "queue": { - "message": "Jono" - }, "readdToken": { "message": "Voit lisätä tämän tietueen myöhemmin takaisin siirtymällä tilisi vaihtoehtovalikon kohtaan ”Lisää tietue”." }, diff --git a/app/_locales/fil/messages.json b/app/_locales/fil/messages.json index 46285683640a..bda447cd7d05 100644 --- a/app/_locales/fil/messages.json +++ b/app/_locales/fil/messages.json @@ -484,9 +484,6 @@ "privateNetwork": { "message": "Pribadong Network" }, - "queue": { - "message": "I-queue" - }, "readdToken": { "message": "Puwede mong idagdag ulit ang token na ito sa hinaharap sa pamamagitan ng pagpunta sa “Magdagdag ng token” sa menu ng mga opsyon ng iyong mga accounts." }, diff --git a/app/_locales/fr/messages.json b/app/_locales/fr/messages.json index ca36fd57d73d..a8974ea1d68a 100644 --- a/app/_locales/fr/messages.json +++ b/app/_locales/fr/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Adresse publique" }, - "queue": { - "message": "File d’attente" - }, "queued": { "message": "En attente" }, diff --git a/app/_locales/gu/messages.json b/app/_locales/gu/messages.json index 91c0cb076f8e..ab3318667a6c 100644 --- a/app/_locales/gu/messages.json +++ b/app/_locales/gu/messages.json @@ -103,9 +103,6 @@ "password": { "message": "પાસવર્ડ" }, - "queue": { - "message": "કતારમાં" - }, "reject": { "message": "નકારો" }, diff --git a/app/_locales/he/messages.json b/app/_locales/he/messages.json index ad633a3e5f43..8d1edf21e37f 100644 --- a/app/_locales/he/messages.json +++ b/app/_locales/he/messages.json @@ -557,9 +557,6 @@ "privateNetwork": { "message": "רשת פרטית" }, - "queue": { - "message": "תור" - }, "readdToken": { "message": "באפשרותך להוסיף טוקן זה בחזרה בעתיד על ידי מעבר אל \"הוסף טוקן\" בתפריט אפשרויות החשבונות שלך." }, diff --git a/app/_locales/hi/messages.json b/app/_locales/hi/messages.json index 4467672901d0..b0ffcb805fe8 100644 --- a/app/_locales/hi/messages.json +++ b/app/_locales/hi/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "सार्वजनिक पता" }, - "queue": { - "message": "कतार" - }, "queued": { "message": "कतारबद्ध" }, diff --git a/app/_locales/hr/messages.json b/app/_locales/hr/messages.json index aa2eeb9374bc..ecec0755dd91 100644 --- a/app/_locales/hr/messages.json +++ b/app/_locales/hr/messages.json @@ -553,9 +553,6 @@ "privateNetwork": { "message": "Privatna mreža" }, - "queue": { - "message": "Red čekanja" - }, "readdToken": { "message": "Ovaj token možete dodati kasnije odlaskom pod stavku „Dodaj token” u izborniku mogućnosti računa. " }, diff --git a/app/_locales/hu/messages.json b/app/_locales/hu/messages.json index 09489674a6cc..428077773da3 100644 --- a/app/_locales/hu/messages.json +++ b/app/_locales/hu/messages.json @@ -553,9 +553,6 @@ "privateNetwork": { "message": "Magánhálózat" }, - "queue": { - "message": "Nyomtatólista" - }, "readdToken": { "message": "Ezt a tokent a jövőben is hozzáadhatja, ha a fiókbeállítások menü „Token hozzáadása” elemére lép." }, diff --git a/app/_locales/id/messages.json b/app/_locales/id/messages.json index 65fe2d24f649..cf38c0ad80ec 100644 --- a/app/_locales/id/messages.json +++ b/app/_locales/id/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Alamat publik" }, - "queue": { - "message": "Antrean" - }, "queued": { "message": "Antrean" }, diff --git a/app/_locales/it/messages.json b/app/_locales/it/messages.json index 4109f6831a61..05b14eaaf6cc 100644 --- a/app/_locales/it/messages.json +++ b/app/_locales/it/messages.json @@ -1301,9 +1301,6 @@ "provide": { "message": "Fornisci" }, - "queue": { - "message": "Coda" - }, "queued": { "message": "In coda" }, diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json index 715248ca8818..f9738e5a1e64 100644 --- a/app/_locales/ja/messages.json +++ b/app/_locales/ja/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "パブリックアドレス" }, - "queue": { - "message": "キュー" - }, "queued": { "message": "キュー待ち" }, diff --git a/app/_locales/kn/messages.json b/app/_locales/kn/messages.json index 7458ec831bcc..64a3052eef76 100644 --- a/app/_locales/kn/messages.json +++ b/app/_locales/kn/messages.json @@ -560,9 +560,6 @@ "privateNetwork": { "message": "ಖಾಸಗಿ ನೆಟ್‌ವರ್ಕ್" }, - "queue": { - "message": "ಸರತಿ" - }, "readdToken": { "message": "ನಿಮ್ಮ ಖಾತೆಗಳ ಆಯ್ಕೆಗಳ ಮೆನುವಿನಲ್ಲಿ \"ಟೋಕನ್ ಸೇರಿಸು\" ಗೆ ಹೋಗುವ ಮೂಲಕ ನೀವು ಈ ಟೋಕನ್ ಅನ್ನು ಭವಿಷ್ಯದಲ್ಲಿ ಮರಳಿ ಸೇರಿಸಬಹುದು." }, diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json index a214b7805896..f45b9eca47ec 100644 --- a/app/_locales/ko/messages.json +++ b/app/_locales/ko/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "공개 주소" }, - "queue": { - "message": "대기열" - }, "queued": { "message": "대기열에 지정됨" }, diff --git a/app/_locales/lt/messages.json b/app/_locales/lt/messages.json index ed49b566b070..f776afc2e6d8 100644 --- a/app/_locales/lt/messages.json +++ b/app/_locales/lt/messages.json @@ -560,9 +560,6 @@ "privateNetwork": { "message": "Privatus tinklas" }, - "queue": { - "message": "Eilė" - }, "readdToken": { "message": "Šį žetoną galite bet kada galite įtraukti ir vėl, tiesiog savo paskyros parinkčių meniu nueikite į „Įtraukti žetoną“." }, diff --git a/app/_locales/lv/messages.json b/app/_locales/lv/messages.json index 231a48fc980b..d3d35c00f7d6 100644 --- a/app/_locales/lv/messages.json +++ b/app/_locales/lv/messages.json @@ -556,9 +556,6 @@ "privateNetwork": { "message": "Privātais tīkls" }, - "queue": { - "message": "Rinda" - }, "readdToken": { "message": "Jūs varat šo marķieri iestatīt atpakaļ nākotnē, konta opciju izvēlnē atverot \"Pievienot marķieri\"." }, diff --git a/app/_locales/ml/messages.json b/app/_locales/ml/messages.json index 0ee00d08f7df..e98b78f7b314 100644 --- a/app/_locales/ml/messages.json +++ b/app/_locales/ml/messages.json @@ -103,9 +103,6 @@ "password": { "message": "പാസ്‌വേഡ്" }, - "queue": { - "message": "ക്യൂവിൽ" - }, "reject": { "message": "നിരസിക്കുക" }, diff --git a/app/_locales/mr/messages.json b/app/_locales/mr/messages.json index 5f19a27726df..3ab6f88b35e6 100644 --- a/app/_locales/mr/messages.json +++ b/app/_locales/mr/messages.json @@ -103,9 +103,6 @@ "password": { "message": "पासवर्ड" }, - "queue": { - "message": "रांग" - }, "reject": { "message": "नाकारा" }, diff --git a/app/_locales/ms/messages.json b/app/_locales/ms/messages.json index c5e44b81dd23..86464cf6ee55 100644 --- a/app/_locales/ms/messages.json +++ b/app/_locales/ms/messages.json @@ -540,9 +540,6 @@ "privateNetwork": { "message": "Rangkaian Persendirian" }, - "queue": { - "message": "Baris Gilir" - }, "readdToken": { "message": "Anda boleh tambah token ini kembali pada masa depan dengan pergi ke \"Tambah token\" di dalam menu pilihan akaun anda." }, diff --git a/app/_locales/no/messages.json b/app/_locales/no/messages.json index 261ab1846346..a575ffdcbc0f 100644 --- a/app/_locales/no/messages.json +++ b/app/_locales/no/messages.json @@ -544,9 +544,6 @@ "privateNetwork": { "message": "Privat nettverk " }, - "queue": { - "message": "Kø" - }, "readdToken": { "message": "Du kan legge til dette tokenet igjen i fremtiden ved å gå til \"Legg til token\" i menyen for kontoalternativer." }, diff --git a/app/_locales/ph/messages.json b/app/_locales/ph/messages.json index f69ae15632c1..1a2f9ff872b6 100644 --- a/app/_locales/ph/messages.json +++ b/app/_locales/ph/messages.json @@ -1105,9 +1105,6 @@ "publicAddress": { "message": "Pampublikong Address" }, - "queue": { - "message": "Queue" - }, "queued": { "message": "Naka-queue" }, diff --git a/app/_locales/pl/messages.json b/app/_locales/pl/messages.json index e42eea2ae8b2..b595f5322141 100644 --- a/app/_locales/pl/messages.json +++ b/app/_locales/pl/messages.json @@ -554,9 +554,6 @@ "privateNetwork": { "message": "Sieć prywatna" }, - "queue": { - "message": "Kolejka" - }, "readdToken": { "message": "Możesz później ponownie dodać ten token poprzez \"Dodaj token\" w opcjach menu swojego konta." }, diff --git a/app/_locales/pt/messages.json b/app/_locales/pt/messages.json index 00c39a0664ec..85e6744f673f 100644 --- a/app/_locales/pt/messages.json +++ b/app/_locales/pt/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Endereço público" }, - "queue": { - "message": "Fila" - }, "queued": { "message": "Na fila" }, diff --git a/app/_locales/pt_BR/messages.json b/app/_locales/pt_BR/messages.json index cb2c55d69708..3ddc1aa19d72 100644 --- a/app/_locales/pt_BR/messages.json +++ b/app/_locales/pt_BR/messages.json @@ -1767,9 +1767,6 @@ "publicAddress": { "message": "Endereço público" }, - "queue": { - "message": "Fila" - }, "queued": { "message": "Na fila" }, diff --git a/app/_locales/pt_PT/messages.json b/app/_locales/pt_PT/messages.json index ba2364c6f5df..ee84964d5614 100644 --- a/app/_locales/pt_PT/messages.json +++ b/app/_locales/pt_PT/messages.json @@ -113,9 +113,6 @@ "privacyMsg": { "message": "Política de Privacidade" }, - "queue": { - "message": "Fila" - }, "reject": { "message": "Rejeitar" }, diff --git a/app/_locales/ro/messages.json b/app/_locales/ro/messages.json index 1fa0e9d7171e..5788f8b07357 100644 --- a/app/_locales/ro/messages.json +++ b/app/_locales/ro/messages.json @@ -547,9 +547,6 @@ "privateNetwork": { "message": "Rețea privată" }, - "queue": { - "message": "Coadă" - }, "readdToken": { "message": "Puteți adăuga din nou acest indicativ în viitor accesând „Adăugați indicativ” din meniul de opțiuni al contului dvs." }, diff --git a/app/_locales/ru/messages.json b/app/_locales/ru/messages.json index fb8a915ef3ac..a72f54a58a4e 100644 --- a/app/_locales/ru/messages.json +++ b/app/_locales/ru/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Открытый адрес" }, - "queue": { - "message": "Очередь" - }, "queued": { "message": "В очереди" }, diff --git a/app/_locales/sk/messages.json b/app/_locales/sk/messages.json index bed99df90e0b..21c7a8f9e5f7 100644 --- a/app/_locales/sk/messages.json +++ b/app/_locales/sk/messages.json @@ -532,9 +532,6 @@ "privateNetwork": { "message": "Soukromá síť" }, - "queue": { - "message": "Poradie" - }, "readdToken": { "message": "Tento token můžete v budoucnu přidat zpět s „Přidat token“ v nastavení účtu." }, diff --git a/app/_locales/sl/messages.json b/app/_locales/sl/messages.json index b4e5faf7ed44..e041577a204a 100644 --- a/app/_locales/sl/messages.json +++ b/app/_locales/sl/messages.json @@ -548,9 +548,6 @@ "privateNetwork": { "message": "Zasebno omrežje" }, - "queue": { - "message": "Čakalna vrsta" - }, "readdToken": { "message": "Ta žeton lahko dodate tudi kasneje z uporabo gumba “Dodaj žeton” v možnostih vašega računa." }, diff --git a/app/_locales/sr/messages.json b/app/_locales/sr/messages.json index 999f01d20e0c..db06d7a5c297 100644 --- a/app/_locales/sr/messages.json +++ b/app/_locales/sr/messages.json @@ -551,9 +551,6 @@ "privateNetwork": { "message": "Privatna mreža" }, - "queue": { - "message": "Ред" - }, "readdToken": { "message": "U budućnosti možete vratiti ovaj token tako što ćete otvoriti „Dodaj token“ u meniju opcija vašeg naloga." }, diff --git a/app/_locales/sv/messages.json b/app/_locales/sv/messages.json index 283a0f3ad576..4c07edfb9077 100644 --- a/app/_locales/sv/messages.json +++ b/app/_locales/sv/messages.json @@ -544,9 +544,6 @@ "privateNetwork": { "message": "Privat nätverk" }, - "queue": { - "message": "Utskriftskö" - }, "readdToken": { "message": "Du kan lägga till denna token i framtiden genom att välja \"Lägg till token\" i kontots alternativmeny." }, diff --git a/app/_locales/sw/messages.json b/app/_locales/sw/messages.json index 7949db57176a..e8921b24315c 100644 --- a/app/_locales/sw/messages.json +++ b/app/_locales/sw/messages.json @@ -538,9 +538,6 @@ "privateNetwork": { "message": "Mtandao Binafsi" }, - "queue": { - "message": "Foleni" - }, "readdToken": { "message": "Unaweza kuongeza tena kianzio hiki hapo baadaye kwa kwenda kwenye \"Ongeza kianzio\" kwenye machaguo yako ya menyu ya akaunti." }, diff --git a/app/_locales/ta/messages.json b/app/_locales/ta/messages.json index 2282edccb949..eb6f2c4999ed 100644 --- a/app/_locales/ta/messages.json +++ b/app/_locales/ta/messages.json @@ -322,9 +322,6 @@ "privateNetwork": { "message": "தனியார் நெட்வொர்க்" }, - "queue": { - "message": "வரிசை" - }, "readdToken": { "message": "உங்கள் கணக்கு விருப்பங்கள் மெனுவில் \"டோக்கனைச் சேர்\" என்பதன் மூலம் நீங்கள் எதிர்காலத்தில் இந்த டோக்கனை மீண்டும் சேர்க்கலாம்." }, diff --git a/app/_locales/te/messages.json b/app/_locales/te/messages.json index dee823b90423..8a49e48b1125 100644 --- a/app/_locales/te/messages.json +++ b/app/_locales/te/messages.json @@ -103,9 +103,6 @@ "password": { "message": "పాస్‌వర్డ్" }, - "queue": { - "message": "క్రమ వరుస" - }, "reject": { "message": "తిరస్కరించు" }, diff --git a/app/_locales/tl/messages.json b/app/_locales/tl/messages.json index f4877ea060f4..9203fa22bf9b 100644 --- a/app/_locales/tl/messages.json +++ b/app/_locales/tl/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Pampublikong Address" }, - "queue": { - "message": "Pila" - }, "queued": { "message": "Naka-queue" }, diff --git a/app/_locales/tr/messages.json b/app/_locales/tr/messages.json index 842dc50963a7..9a6f53aad815 100644 --- a/app/_locales/tr/messages.json +++ b/app/_locales/tr/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Genel adres" }, - "queue": { - "message": "Kuyruğa al" - }, "queued": { "message": "Kuyruğa alındı" }, diff --git a/app/_locales/uk/messages.json b/app/_locales/uk/messages.json index e7b83ffc6b91..3f4fb4f246f7 100644 --- a/app/_locales/uk/messages.json +++ b/app/_locales/uk/messages.json @@ -560,9 +560,6 @@ "privateNetwork": { "message": "Приватна мережа" }, - "queue": { - "message": "Черга" - }, "readdToken": { "message": "Ви можете знову додати цей токен у меню облікового запису у розділі “Додати токен”. " }, diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json index 5c11445e5288..4cee139f517e 100644 --- a/app/_locales/vi/messages.json +++ b/app/_locales/vi/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "Địa chỉ công khai" }, - "queue": { - "message": "Hàng đợi" - }, "queued": { "message": "Đã đưa vào hàng đợi" }, diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json index 58f7ffa97896..c36fcce774f3 100644 --- a/app/_locales/zh_CN/messages.json +++ b/app/_locales/zh_CN/messages.json @@ -2753,9 +2753,6 @@ "publicAddress": { "message": "公共地址" }, - "queue": { - "message": "队列" - }, "queued": { "message": "队列中" }, diff --git a/app/_locales/zh_TW/messages.json b/app/_locales/zh_TW/messages.json index 27260c920e76..c1f1b9e651f7 100644 --- a/app/_locales/zh_TW/messages.json +++ b/app/_locales/zh_TW/messages.json @@ -1051,9 +1051,6 @@ "publicAddress": { "message": "公開位址" }, - "queue": { - "message": "佇列" - }, "queued": { "message": "已排入佇列" }, diff --git a/test/e2e/metamask-ui.spec.js b/test/e2e/metamask-ui.spec.js index b52f6d938ded..ac5ac1861a68 100644 --- a/test/e2e/metamask-ui.spec.js +++ b/test/e2e/metamask-ui.spec.js @@ -339,12 +339,12 @@ describe('MetaMask', function () { it('finds the transaction in the transactions list', async function () { await driver.waitForSelector({ - css: '.transaction-list__completed-transactions .transaction-list-item__primary-currency', + css: '.transaction-list__completed-transactions [data-testid="transaction-list-item-primary-currency"]', text: '-1 TST', }); await driver.waitForSelector({ - css: '.list-item__heading', + css: '[data-testid="activity-list-item-action"]', text: 'Send TST', }); }); @@ -370,10 +370,12 @@ describe('MetaMask', function () { await driver.findElements('.transaction-list__pending-transactions'); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-1.5 TST', }); - await driver.clickElement('.transaction-list-item__primary-currency'); + await driver.clickElement( + '[data-testid="transaction-list-item-primary-currency"]', + ); await driver.delay(regularDelayMs); const transactionAmounts = await driver.findElements( @@ -415,12 +417,12 @@ describe('MetaMask', function () { it('finds the transaction in the transactions list', async function () { await driver.waitForSelector({ - css: '.transaction-list__completed-transactions .transaction-list-item__primary-currency', + css: '.transaction-list__completed-transactions [data-testid="transaction-list-item-primary-currency"]', text: '-1.5 TST', }); await driver.waitForSelector({ - css: '.list-item__heading', + css: '[data-testid="activity-list-item-action"]', text: 'Send TST', }); }); @@ -462,20 +464,20 @@ describe('MetaMask', function () { }); await driver.switchToWindow(extension); - await driver.delay(regularDelayMs); + await driver.delay(veryLargeDelayMs); await driver.wait(async () => { const pendingTxes = await driver.findElements( - '.transaction-list__pending-transactions .transaction-list-item', + '.transaction-list__pending-transactions .activity-list-item', ); return pendingTxes.length === 1; }, 10000); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-1.5 TST', }); - await driver.clickElement('.transaction-list-item'); + await driver.clickElement('.activity-list-item'); await driver.delay(regularDelayMs); }); @@ -489,12 +491,12 @@ describe('MetaMask', function () { await driver.waitForSelector({ // Select the heading of the first transaction list item in the // completed transaction list with text matching Send TST - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .list-item__heading', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="activity-list-item-action"]', text: 'Send TST', }); await driver.waitForSelector({ - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .transaction-list-item__primary-currency', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="transaction-list-item-primary-currency"]', text: '-1.5 TST', }); }); diff --git a/test/e2e/mv3/multiple-restarts.spec.js b/test/e2e/mv3/multiple-restarts.spec.js index c2b636c01dce..a90111d2ac77 100644 --- a/test/e2e/mv3/multiple-restarts.spec.js +++ b/test/e2e/mv3/multiple-restarts.spec.js @@ -132,7 +132,7 @@ describe('MV3 - Restart service worker multiple times', function () { await driver.clickElement('[data-testid="page-container-footer-next"]'); await driver.clickElement('[data-testid="home__activity-tab"]'); - await driver.findElement('.transaction-list-item'); + await driver.findElement('.activity-list-item'); // reset view to assets tab await driver.clickElement('[data-testid="home__asset-tab"]'); diff --git a/test/e2e/nft/erc1155-interaction.spec.js b/test/e2e/nft/erc1155-interaction.spec.js index c4d83d875810..c6cb2020c78b 100644 --- a/test/e2e/nft/erc1155-interaction.spec.js +++ b/test/e2e/nft/erc1155-interaction.spec.js @@ -66,7 +66,7 @@ describe('ERC1155 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); const transactionItem = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Deposit', }); assert.equal( @@ -120,7 +120,7 @@ describe('ERC1155 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); const transactionItem = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Deposit', }); assert.equal( diff --git a/test/e2e/nft/erc721-interaction.spec.js b/test/e2e/nft/erc721-interaction.spec.js index e886be2e984b..d88f31f641c4 100644 --- a/test/e2e/nft/erc721-interaction.spec.js +++ b/test/e2e/nft/erc721-interaction.spec.js @@ -58,7 +58,7 @@ describe('ERC721 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); const transactionItem = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Deposit', }); assert.equal(await transactionItem.isDisplayed(), true); @@ -169,7 +169,7 @@ describe('ERC721 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); const transactionItem = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Deposit', }); assert.equal(await transactionItem.isDisplayed(), true); @@ -266,7 +266,7 @@ describe('ERC721 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); // Verify transaction @@ -339,7 +339,7 @@ describe('ERC721 NFTs testdapp interaction', function () { // Verify transaction const completedTx = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Approve TDN spending cap', }); assert.equal(await completedTx.isDisplayed(), true); @@ -405,12 +405,12 @@ describe('ERC721 NFTs testdapp interaction', function () { await driver.switchToWindow(extension); await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); // Verify transaction const completedTx = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Approve TDN with no spend limit', }); assert.equal(await completedTx.isDisplayed(), true); @@ -484,7 +484,7 @@ describe('ERC721 NFTs testdapp interaction', function () { // Verify transaction const completedTx = await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Approve TDN with no spend limit', }); assert.equal(await completedTx.isDisplayed(), true); diff --git a/test/e2e/nft/send-nft.spec.js b/test/e2e/nft/send-nft.spec.js index e08d12eb18e0..1e0ee1c05749 100644 --- a/test/e2e/nft/send-nft.spec.js +++ b/test/e2e/nft/send-nft.spec.js @@ -64,13 +64,13 @@ describe('Send NFT', function () { // When transaction complete, check the send NFT is displayed in activity tab await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const sendNftItem = await driver.findElement({ - css: 'h2', + css: '[data-testid="activity-list-item-action"]', text: 'Send Test Dapp NFTs', }); assert.equal(await sendNftItem.isDisplayed(), true); diff --git a/test/e2e/swaps/shared.js b/test/e2e/swaps/shared.js index efef3b4b00d4..f8f149385be5 100644 --- a/test/e2e/swaps/shared.js +++ b/test/e2e/swaps/shared.js @@ -122,10 +122,10 @@ const waitForTransactionToComplete = async (driver, options) => { const checkActivityTransaction = async (driver, options) => { await driver.clickElement('[data-testid="home__activity-tab"]'); - await driver.waitForSelector('[data-testid="list-item-title"]'); + await driver.waitForSelector('.activity-list-item'); const transactionList = await driver.findElements( - '[data-testid="list-item-title"]', + '[data-testid="activity-list-item-action"]', ); const transactionText = await transactionList[options.index].getText(); assert.equal( @@ -135,7 +135,7 @@ const checkActivityTransaction = async (driver, options) => { ); await driver.findElement({ - css: '[data-testid="list-item-right-content"]', + css: '[data-testid="transaction-list-item-primary-currency"]', text: `-${options.amount} ${options.swapFrom}`, }); @@ -143,8 +143,8 @@ const checkActivityTransaction = async (driver, options) => { await driver.delay(regularDelayMs); await driver.findElement({ - css: '[data-testid="transaction-list-item-details-tx-status"]', - text: `Confirmed`, + css: '.transaction-status-label', + text: 'Confirmed', }); await driver.findElement({ diff --git a/test/e2e/tests/address-book.spec.js b/test/e2e/tests/address-book.spec.js index 19f526fa2c66..d88ea9e20014 100644 --- a/test/e2e/tests/address-book.spec.js +++ b/test/e2e/tests/address-book.spec.js @@ -62,13 +62,13 @@ describe('Address Book', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-2 ETH', }); }, diff --git a/test/e2e/tests/clear-activity.spec.js b/test/e2e/tests/clear-activity.spec.js index c6767271c97d..96f6bc358979 100644 --- a/test/e2e/tests/clear-activity.spec.js +++ b/test/e2e/tests/clear-activity.spec.js @@ -35,11 +35,11 @@ describe('Clear account activity', function () { // Check send transaction and receive transaction history are all displayed await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Send', }); await driver.waitForSelector({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Receive', }); @@ -58,11 +58,11 @@ describe('Clear account activity', function () { // Check send transaction history is cleared and receive transaction history is kept const sendTransaction = await driver.isElementPresent({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Send', }); const receiveTransaction = await driver.isElementPresent({ - css: '.list-item__title', + css: '[data-testid="activity-list-item-action"]', text: 'Receive', }); assert.equal(sendTransaction, false); diff --git a/test/e2e/tests/contract-interactions.spec.js b/test/e2e/tests/contract-interactions.spec.js index c5c0e660037a..4a98d9d48ad9 100644 --- a/test/e2e/tests/contract-interactions.spec.js +++ b/test/e2e/tests/contract-interactions.spec.js @@ -65,10 +65,10 @@ describe('Deploy contract and call contract methods', function () { ); await driver.clickElement({ text: 'Activity', tag: 'button' }); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-4 ETH', }); @@ -84,10 +84,10 @@ describe('Deploy contract and call contract methods', function () { WINDOW_TITLES.ExtensionInFullScreenView, ); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(2)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(2)', ); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-0 ETH', }); diff --git a/test/e2e/tests/custom-token-add-approve.spec.js b/test/e2e/tests/custom-token-add-approve.spec.js index 57d2a3d6a04f..3745326e18b7 100644 --- a/test/e2e/tests/custom-token-add-approve.spec.js +++ b/test/e2e/tests/custom-token-add-approve.spec.js @@ -178,15 +178,13 @@ describe('Create token, approve token and approve token without gas', function ( // check list of pending transactions in extension await driver.wait(async () => { - const pendingTxes = await driver.findElements( - '.transaction-list-item', - ); + const pendingTxes = await driver.findElements('.activity-list-item'); return pendingTxes.length === 1; }, 10000); const approveTokenTask = await driver.waitForSelector({ // Selects only the very first transaction list item immediately following the 'Pending' header - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .list-item__heading', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="activity-list-item-action"]', text: 'Approve TST spending cap', }); assert.equal( @@ -323,14 +321,12 @@ describe('Create token, approve token and approve token without gas', function ( await driver.clickElement({ tag: 'button', text: 'Activity' }); await driver.wait(async () => { - const pendingTxes = await driver.findElements( - '.transaction-list-item', - ); + const pendingTxes = await driver.findElements('.activity-list-item'); return pendingTxes.length === 1; }, 10000); const approveTokenTask = await driver.waitForSelector({ // Select only the heading of the first entry in the transaction list. - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .list-item__heading', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="activity-list-item-action"]', text: 'Approve TST spending cap', }); assert.equal( @@ -374,7 +370,7 @@ describe('Create token, approve token and approve token without gas', function ( await driver.clickElement({ tag: 'button', text: 'Activity' }); const pendingTxes = await driver.findElements( - '.transaction-list__pending-transactions .transaction-list-item', + '.transaction-list__pending-transactions .activity-list-item', ); pendingTxes[0].click(); @@ -414,7 +410,7 @@ describe('Create token, approve token and approve token without gas', function ( const approveTokenTask = await driver.waitForSelector({ // Select only the heading of the first entry in the transaction list. - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .list-item__heading', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="activity-list-item-action"]', text: 'Approve TST spending cap', }); assert.equal( @@ -459,7 +455,7 @@ describe('Create token, approve token and approve token without gas', function ( await driver.switchToWindow(extension); await driver.clickElement({ tag: 'button', text: 'Activity' }); - const pendingTxes = await driver.findElements('.transaction-list-item'); + const pendingTxes = await driver.findElements('.activity-list-item'); pendingTxes[0].click(); // set custom spending cap @@ -483,7 +479,7 @@ describe('Create token, approve token and approve token without gas', function ( // check transaction in Activity tab const approveTokenTask = await driver.waitForSelector({ - css: '.transaction-list__completed-transactions .transaction-list-item:first-child .list-item__heading', + css: '.transaction-list__completed-transactions .activity-list-item [data-testid="activity-list-item-action"]', text: 'Approve TST spending cap', }); assert.equal( diff --git a/test/e2e/tests/edit-gas-fee.spec.js b/test/e2e/tests/edit-gas-fee.spec.js index b304ba2f6d33..965ffaec7054 100644 --- a/test/e2e/tests/edit-gas-fee.spec.js +++ b/test/e2e/tests/edit-gas-fee.spec.js @@ -80,13 +80,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-1\s*ETH/u.test(await txValues[0].getText())); @@ -165,13 +165,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-1\s*ETH/u.test(await txValues[0].getText())); @@ -254,13 +254,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-0\s*ETH/u.test(await txValues[0].getText())); diff --git a/test/e2e/tests/failing-contract.spec.js b/test/e2e/tests/failing-contract.spec.js index cc25bc3c86ce..6a896b47eb74 100644 --- a/test/e2e/tests/failing-contract.spec.js +++ b/test/e2e/tests/failing-contract.spec.js @@ -68,12 +68,12 @@ describe('Failing contract interaction ', function () { await driver.switchToWindow(extension); await driver.clickElement({ text: 'Activity', tag: 'button' }); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); // display the transaction status const transactionStatus = await driver.findElement( - '.transaction-list-item:nth-of-type(1) .transaction-status-label', + '.activity-list-item:nth-of-type(1) .transaction-status-label', ); assert.equal(await transactionStatus.getText(), 'Failed'); }, @@ -151,12 +151,12 @@ describe('Failing contract interaction on non-EIP1559 network', function () { await driver.switchToWindow(extension); await driver.clickElement({ text: 'Activity', tag: 'button' }); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); // display the transaction status const transactionStatus = await driver.findElement( - '.transaction-list-item:nth-of-type(1) .transaction-status-label', + '.activity-list-item:nth-of-type(1) .transaction-status-label', ); assert.equal(await transactionStatus.getText(), 'Failed'); }, diff --git a/test/e2e/tests/import-flow.spec.js b/test/e2e/tests/import-flow.spec.js index 8003822b2fb5..dca9e2f72e22 100644 --- a/test/e2e/tests/import-flow.spec.js +++ b/test/e2e/tests/import-flow.spec.js @@ -124,13 +124,13 @@ describe('Import flow', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-1\s*ETH/u.test(await txValues[0].getText())); diff --git a/test/e2e/tests/metamask-responsive-ui.spec.js b/test/e2e/tests/metamask-responsive-ui.spec.js index a930a3235508..3e89d5e25ae6 100644 --- a/test/e2e/tests/metamask-responsive-ui.spec.js +++ b/test/e2e/tests/metamask-responsive-ui.spec.js @@ -159,13 +159,13 @@ describe('MetaMask Responsive UI', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-1 ETH', }); }, diff --git a/test/e2e/tests/multiple-transactions.spec.js b/test/e2e/tests/multiple-transactions.spec.js index d1812057567f..b213f3dcacfb 100644 --- a/test/e2e/tests/multiple-transactions.spec.js +++ b/test/e2e/tests/multiple-transactions.spec.js @@ -72,7 +72,7 @@ describe('Multiple transactions', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); assert.equal(confirmedTxes.length, 2); @@ -137,7 +137,7 @@ describe('Multiple transactions', function () { // should not be present await driver.assertElementNotPresent( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); }, ); diff --git a/test/e2e/tests/send-edit.spec.js b/test/e2e/tests/send-edit.spec.js index 6157f2e66444..4d9955660367 100644 --- a/test/e2e/tests/send-edit.spec.js +++ b/test/e2e/tests/send-edit.spec.js @@ -68,13 +68,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-2.2\s*ETH/u.test(await txValues[0].getText())); @@ -159,13 +159,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-2.2\s*ETH/u.test(await txValues[0].getText())); diff --git a/test/e2e/tests/send-eth.spec.js b/test/e2e/tests/send-eth.spec.js index 64bdaace08f2..b0c4838c62ce 100644 --- a/test/e2e/tests/send-eth.spec.js +++ b/test/e2e/tests/send-eth.spec.js @@ -79,13 +79,13 @@ describe('Send ETH from inside MetaMask using default gas', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-1 ETH', }); }, @@ -199,13 +199,13 @@ describe('Send ETH from inside MetaMask using advanced gas modal', function () { await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-1 ETH', }); }, @@ -279,16 +279,16 @@ describe('Send ETH from dapp using advanced gas controls', function () { // finds the transaction in the transactions list await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-0 ETH', }); // the transaction has the expected gas price const txValue = await driver.findClickableElement( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); await txValue.click(); const gasPrice = await driver.waitForSelector({ @@ -363,16 +363,16 @@ describe('Send ETH from dapp using advanced gas controls', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); await driver.waitForSelector({ - css: '.transaction-list-item__primary-currency', + css: '[data-testid="transaction-list-item-primary-currency"]', text: '-0 ETH', }); // the transaction has the expected gas value const txValue = await driver.findClickableElement( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); await txValue.click(); const baseFeeValue = await driver.waitForSelector( @@ -432,7 +432,7 @@ describe('Send ETH from inside MetaMask to a Multisig Address', function () { await assertAccountBalanceForDOM(driver, ganacheServer); await driver.clickElement('[data-testid="home__activity-tab"]'); const txn = await driver.isElementPresent( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); assert.equal(txn, true); diff --git a/test/e2e/tests/send-hex-address.spec.js b/test/e2e/tests/send-hex-address.spec.js index f4f3c22b5faf..cd656e9963e5 100644 --- a/test/e2e/tests/send-hex-address.spec.js +++ b/test/e2e/tests/send-hex-address.spec.js @@ -50,7 +50,7 @@ describe('Send ETH to a 40 character hexadecimal address', function () { await driver.clickElement({ text: 'Confirm', tag: 'button' }); await driver.clickElement('[data-testid="home__activity-tab"]'); const sendTransactionListItem = await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); await sendTransactionListItem.click(); await driver.clickElement({ text: 'Activity log', tag: 'summary' }); @@ -95,7 +95,7 @@ describe('Send ETH to a 40 character hexadecimal address', function () { await driver.clickElement({ text: 'Confirm', tag: 'button' }); await driver.clickElement('[data-testid="home__activity-tab"]'); const sendTransactionListItem = await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); await sendTransactionListItem.click(); await driver.clickElement({ text: 'Activity log', tag: 'summary' }); @@ -166,10 +166,10 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () { await driver.clickElement({ text: 'Confirm', tag: 'button' }); await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); const sendTransactionListItem = await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); await sendTransactionListItem.click(); await driver.clickElement({ text: 'Activity log', tag: 'summary' }); @@ -227,10 +227,10 @@ describe('Send ERC20 to a 40 character hexadecimal address', function () { await driver.clickElement({ text: 'Confirm', tag: 'button' }); await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); const sendTransactionListItem = await driver.waitForSelector( - '.transaction-list__completed-transactions .transaction-list-item:nth-of-type(1)', + '.transaction-list__completed-transactions .activity-list-item:nth-of-type(1)', ); await sendTransactionListItem.click(); await driver.clickElement({ text: 'Activity log', tag: 'summary' }); diff --git a/test/e2e/tests/stuck-approved-transaction.spec.js b/test/e2e/tests/stuck-approved-transaction.spec.js index daf73265dc52..74c031385832 100644 --- a/test/e2e/tests/stuck-approved-transaction.spec.js +++ b/test/e2e/tests/stuck-approved-transaction.spec.js @@ -31,13 +31,13 @@ describe('Editing Confirm Transaction', function () { await driver.clickElement('[data-testid="home__activity-tab"]'); await driver.wait(async () => { const confirmedTxes = await driver.findElements( - '.transaction-list__completed-transactions .transaction-list-item', + '.transaction-list__completed-transactions .activity-list-item', ); return confirmedTxes.length === 1; }, 10000); const txValues = await driver.findElements( - '.transaction-list-item__primary-currency', + '[data-testid="transaction-list-item-primary-currency"]', ); assert.equal(txValues.length, 1); assert.ok(/-1\s*ETH/u.test(await txValues[0].getText())); diff --git a/ui/components/app/transaction-icon/transaction-icon.js b/ui/components/app/transaction-icon/transaction-icon.js index bb42a71b9589..820c4969dd12 100644 --- a/ui/components/app/transaction-icon/transaction-icon.js +++ b/ui/components/app/transaction-icon/transaction-icon.js @@ -1,47 +1,56 @@ import React from 'react'; import { useDispatch } from 'react-redux'; import PropTypes from 'prop-types'; -import Approve from '../../ui/icon/approve-icon.component'; -import Interaction from '../../ui/icon/interaction-icon.component'; -import Receive from '../../ui/icon/receive-icon.component'; -import Send from '../../ui/icon/send-icon.component'; -import Sign from '../../ui/icon/sign-icon.component'; -import Swap from '../../ui/icon/swap-icon-for-list.component'; import { TransactionGroupCategory, TransactionGroupStatus, TransactionStatus, } from '../../../../shared/constants/transaction'; import { captureSingleException } from '../../../store/actions'; +import { AvatarIcon, IconName } from '../../component-library'; +import { + BackgroundColor, + IconColor, + Size, +} from '../../../helpers/constants/design-system'; const ICON_MAP = { - [TransactionGroupCategory.approval]: Approve, - [TransactionGroupCategory.interaction]: Interaction, - [TransactionGroupCategory.receive]: Receive, - [TransactionGroupCategory.send]: Send, - [TransactionGroupCategory.signatureRequest]: Sign, - [TransactionGroupCategory.swap]: Swap, + [TransactionGroupCategory.approval]: IconName.Check, + [TransactionGroupCategory.interaction]: IconName.ProgrammingArrows, + [TransactionGroupCategory.receive]: IconName.Received, + [TransactionGroupCategory.send]: IconName.Arrow2UpRight, + [TransactionGroupCategory.signatureRequest]: IconName.SecurityTick, + [TransactionGroupCategory.swap]: IconName.SwapHorizontal, }; -const FAIL_COLOR = 'var(--color-error-default)'; -const PENDING_COLOR = 'var(--color-icon-default)'; -const OK_COLOR = 'var(--color-primary-default)'; - const COLOR_MAP = { - [TransactionGroupStatus.pending]: PENDING_COLOR, - [TransactionGroupStatus.cancelled]: FAIL_COLOR, - [TransactionStatus.approved]: PENDING_COLOR, - [TransactionStatus.dropped]: FAIL_COLOR, - [TransactionStatus.failed]: FAIL_COLOR, - [TransactionStatus.rejected]: FAIL_COLOR, - [TransactionStatus.submitted]: PENDING_COLOR, - [TransactionStatus.unapproved]: PENDING_COLOR, + [TransactionGroupStatus.pending]: IconColor.primaryDefault, + [TransactionGroupStatus.cancelled]: IconColor.errorDefault, + [TransactionStatus.approved]: IconColor.primaryDefault, + [TransactionStatus.dropped]: IconColor.errorDefault, + [TransactionStatus.failed]: IconColor.errorDefault, + [TransactionStatus.rejected]: IconColor.errorDefault, + [TransactionStatus.submitted]: IconColor.primaryDefault, + [TransactionStatus.unapproved]: IconColor.primaryDefault, +}; + +const BACKGROUND_COLOR_MAP = { + [TransactionGroupStatus.pending]: BackgroundColor.primaryMuted, + [TransactionGroupStatus.cancelled]: BackgroundColor.errorMuted, + [TransactionStatus.approved]: BackgroundColor.primaryMuted, + [TransactionStatus.dropped]: BackgroundColor.errorMuted, + [TransactionStatus.failed]: BackgroundColor.errorMuted, + [TransactionStatus.rejected]: BackgroundColor.errorMuted, + [TransactionStatus.submitted]: BackgroundColor.primaryMuted, + [TransactionStatus.unapproved]: BackgroundColor.primaryMuted, }; export default function TransactionIcon({ status, category }) { const dispatch = useDispatch(); - const color = COLOR_MAP[status] || OK_COLOR; + const color = COLOR_MAP[status] || IconColor.primaryDefault; + const backgroundColor = + BACKGROUND_COLOR_MAP[status] || BackgroundColor.primaryMuted; const Icon = ICON_MAP[category]; if (!Icon) { @@ -50,10 +59,22 @@ export default function TransactionIcon({ status, category }) { `The category prop passed to TransactionIcon is not supported. The prop is: ${category}`, ), ); - return
; + return ( + + ); } - return ; + return ( + + ); } TransactionIcon.propTypes = { diff --git a/ui/components/app/transaction-list-item/index.scss b/ui/components/app/transaction-list-item/index.scss index 069510062a1c..8c1296b4d23c 100644 --- a/ui/components/app/transaction-list-item/index.scss +++ b/ui/components/app/transaction-list-item/index.scss @@ -23,14 +23,12 @@ } &__pending-actions { - padding-top: 12px; display: flex; .button { - @include H8; + @include H6; - padding: 8px; - width: 75px; + width: 90px; white-space: nowrap; } @@ -57,11 +55,6 @@ text-overflow: initial; } - .transaction-status-label::after { - content: "·"; - margin: 0 4px; - } - &__address { overflow: hidden; text-overflow: ellipsis; diff --git a/ui/components/app/transaction-list-item/smart-transaction-list-item.component.js b/ui/components/app/transaction-list-item/smart-transaction-list-item.component.js index 7c71e3a442d6..7ea134bb9a64 100644 --- a/ui/components/app/transaction-list-item/smart-transaction-list-item.component.js +++ b/ui/components/app/transaction-list-item/smart-transaction-list-item.component.js @@ -1,7 +1,6 @@ import React, { useState, useCallback } from 'react'; import PropTypes from 'prop-types'; -import { useDispatch } from 'react-redux'; -import ListItem from '../../ui/list-item'; +import { useDispatch, useSelector } from 'react-redux'; import TransactionStatusLabel from '../transaction-status-label/transaction-status-label'; import TransactionIcon from '../transaction-icon'; import { useI18nContext } from '../../../hooks/useI18nContext'; @@ -15,8 +14,20 @@ import { import CancelButton from '../cancel-button'; import { cancelSwapsSmartTransaction } from '../../../ducks/swaps/swaps'; -import SiteOrigin from '../../ui/site-origin'; import TransactionListItemDetails from '../transaction-list-item-details'; +import { ActivityListItem } from '../../multichain'; +import { + AvatarNetwork, + BadgeWrapper, + BadgeWrapperAnchorElementShape, + Box, +} from '../../component-library'; +import { + BackgroundColor, + Display, + Size, +} from '../../../helpers/constants/design-system'; +import { getCurrentNetwork } from '../../../selectors'; export default function SmartTransactionListItem({ smartTransaction, @@ -29,6 +40,8 @@ export default function SmartTransactionListItem({ const [showDetails, setShowDetails] = useState(false); const { primaryCurrency, recipientAddress, isPending, senderAddress } = useTransactionDisplayData(transactionGroup); + const currentChain = useSelector(getCurrentNetwork); + const { sourceTokenSymbol, destinationTokenSymbol, time, status } = smartTransaction; const category = TransactionGroupCategory.swap; @@ -36,8 +49,7 @@ export default function SmartTransactionListItem({ sourceTokenSymbol, destinationTokenSymbol, ]); - const subtitle = 'metamask'; - const date = formatDateWithYearContext(time); + const date = formatDateWithYearContext(time, 'MMM d, y', 'MMM d'); let displayedStatusKey; if (status === SmartTransactionStatus.pending) { displayedStatusKey = TransactionGroupStatus.pending; @@ -52,32 +64,45 @@ export default function SmartTransactionListItem({ }, []); return ( <> - + + } + > + + } subtitle={ -

- - -

+ } > {displayedStatusKey === TransactionGroupStatus.pending && showCancelSwapLink && ( -
+ { @@ -86,9 +111,9 @@ export default function SmartTransactionListItem({ setCancelSwapLinkClicked(true); }} /> -
+ )} -
+ {showDetails && ( - + -
+ ) : ( ///: END:ONLY_INCLUDE_IN - + + } + > + + ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) ) ///: END:ONLY_INCLUDE_IN } subtitle={ -

- - {subtitleContainsOrigin ? ( - - ) : ( - - {subtitle} - - )} -

+ } rightContent={ !isSignatureReq && !isApproval && ( <> -

{primaryCurrency} -

-

+ + {secondaryCurrency} -

+ ) } > -
- {speedUpButton} + {showCancelButton && ( )} -
+ {speedUpButton} + { ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) ///: END:ONLY_INCLUDE_IN } - + {showDetails && ( { return { ...actual, useSelector: jest.fn(), - useDispatch: () => jest.fn(), + useDispatch: jest.fn(), }; }); @@ -97,6 +98,8 @@ const generateUseSelectorRouter = (opts) => (selector) => { }; } else if (selector === getTokenExchangeRates) { return opts.tokenExchangeRates ?? {}; + } else if (selector === getCurrentNetwork) { + return { nickname: 'Ethereum Mainnet' }; } else if (selector === getPreferences) { return ( opts.preferences ?? { diff --git a/ui/components/app/transaction-list/transaction-list.component.js b/ui/components/app/transaction-list/transaction-list.component.js index be50d01f9a4a..65649adcec1c 100644 --- a/ui/components/app/transaction-list/transaction-list.component.js +++ b/ui/components/app/transaction-list/transaction-list.component.js @@ -14,6 +14,12 @@ import { TOKEN_CATEGORY_HASH } from '../../../helpers/constants/transactions'; import { SWAPS_CHAINID_CONTRACT_ADDRESS_MAP } from '../../../../shared/constants/swaps'; import { TransactionType } from '../../../../shared/constants/transaction'; import { isEqualCaseInsensitive } from '../../../../shared/modules/string-utils'; +import { Box, Text } from '../../component-library'; +import { + TextColor, + TextVariant, +} from '../../../helpers/constants/design-system'; +import { formatDateWithYearContext } from '../../../helpers/utils/util'; const PAGE_INCREMENT = 10; @@ -64,6 +70,35 @@ const getFilteredTransactionGroups = ( return transactionGroups; }; +const groupTransactionsByDate = (transactionGroups) => { + const groupedTransactions = []; + + transactionGroups.forEach((transactionGroup) => { + const date = formatDateWithYearContext( + transactionGroup.primaryTransaction.time, + 'MMM d, y', + 'MMM d', + ); + + const existingGroup = groupedTransactions.find( + (group) => group.date === date, + ); + + if (existingGroup) { + existingGroup.transactionGroups.push(transactionGroup); + } else { + groupedTransactions.push({ + date, + dateMillis: transactionGroup.primaryTransaction.time, + transactionGroups: [transactionGroup], + }); + } + groupedTransactions.sort((a, b) => b.dateMillis - a.dateMillis); + }); + + return groupedTransactions; +}; + export default function TransactionList({ hideTokenTransactions, tokenAddress, @@ -78,14 +113,29 @@ export default function TransactionList({ nonceSortedCompletedTransactionsSelector, ); const chainId = useSelector(getCurrentChainId); + const renderDateStamp = (index, dateGroup) => { + return index === 0 ? ( + + {dateGroup.date} + + ) : null; + }; const pendingTransactions = useMemo( () => - getFilteredTransactionGroups( - unfilteredPendingTransactions, - hideTokenTransactions, - tokenAddress, - chainId, + groupTransactionsByDate( + getFilteredTransactionGroups( + unfilteredPendingTransactions, + hideTokenTransactions, + tokenAddress, + chainId, + ), ), [ hideTokenTransactions, @@ -94,13 +144,16 @@ export default function TransactionList({ chainId, ], ); + const completedTransactions = useMemo( () => - getFilteredTransactionGroups( - unfilteredCompletedTransactions, - hideTokenTransactions, - tokenAddress, - chainId, + groupTransactionsByDate( + getFilteredTransactionGroups( + unfilteredCompletedTransactions, + hideTokenTransactions, + tokenAddress, + chainId, + ), ), [ hideTokenTransactions, @@ -116,49 +169,55 @@ export default function TransactionList({ ); return ( -
-
+ + {pendingTransactions.length > 0 && ( -
-
- {`${t('queue')} (${pendingTransactions.length})`} -
+ {pendingTransactions ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) .sort( (a, b) => b.primaryTransaction.time - a.primaryTransaction.time, ) ///: END:ONLY_INCLUDE_IN - .map((transactionGroup, index) => { - ///: BEGIN:ONLY_INCLUDE_IN(build-main,build-beta,build-flask) - if ( - transactionGroup.initialTransaction.transactionType === - TransactionType.smart - ) { - return ( - - ); - } - ///: END:ONLY_INCLUDE_IN - return ( - + .map((dateGroup) => { + return dateGroup.transactionGroups.map( + (transactionGroup, index) => { + ///: BEGIN:ONLY_INCLUDE_IN(build-main,build-beta,build-flask) + if ( + transactionGroup.initialTransaction.transactionType === + TransactionType.smart + ) { + return ( + <> + {renderDateStamp(index, dateGroup)} + + + ); + } + ///: END:ONLY_INCLUDE_IN + return ( + <> + {renderDateStamp(index, dateGroup)} + + + ); + }, ); })} -
+
)} -
- {pendingTransactions.length > 0 ? ( -
{t('history')}
- ) : null} + {completedTransactions.length > 0 ? ( completedTransactions ///: BEGIN:ONLY_INCLUDE_IN(build-mmi) @@ -167,27 +226,40 @@ export default function TransactionList({ ) ///: END:ONLY_INCLUDE_IN .slice(0, limit) - .map((transactionGroup, index) => - transactionGroup.initialTransaction?.transactionType === - 'smart' ? ( - - ) : ( - - ), - ) + .map((dateGroup) => { + return dateGroup.transactionGroups.map( + (transactionGroup, index) => { + return ( + <> + {renderDateStamp(index, dateGroup)} + {transactionGroup.initialTransaction + ?.transactionType === 'smart' ? ( + + ) : ( + + )} + + ); + }, + ); + }) ) : ( -
-
+ + {t('noTransactions')} -
-
+
+ )} {completedTransactions.length > limit && (
-
-
+ + + ); } diff --git a/ui/components/multichain/activity-list-item/__snapshots__/activity-list-item.test.js.snap b/ui/components/multichain/activity-list-item/__snapshots__/activity-list-item.test.js.snap new file mode 100644 index 000000000000..a842265304a5 --- /dev/null +++ b/ui/components/multichain/activity-list-item/__snapshots__/activity-list-item.test.js.snap @@ -0,0 +1,99 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ActivityListItem should match snapshot with no props 1`] = ` +
+
+
+
+
+

+

+
+
+
+
+`; + +exports[`ActivityListItem should match snapshot with props 1`] = ` +
+
+

+

+ Content rendered at the top +

+

+
+
+ +
+
+
+

+ Hello World +

+
+

+ I am a list item +

+
+
+ +
+
+
+

+ Content rendered in the middle +

+
+
+

+ Content rendered to the right +

+
+
+
+
+
+`; diff --git a/ui/components/multichain/activity-list-item/activity-list-item.js b/ui/components/multichain/activity-list-item/activity-list-item.js new file mode 100644 index 000000000000..eeb88fbe62f7 --- /dev/null +++ b/ui/components/multichain/activity-list-item/activity-list-item.js @@ -0,0 +1,137 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import classnames from 'classnames'; +import { + AlignItems, + BackgroundColor, + BlockSize, + Display, + FlexDirection, + FlexWrap, + FontWeight, + TextAlign, + TextColor, + TextVariant, +} from '../../../helpers/constants/design-system'; +import { Box, Text } from '../../component-library'; + +export const ActivityListItem = ({ + topContent, + icon, + title, + subtitle, + midContent, + children, + rightContent, + onClick, + className, + 'data-testid': dataTestId, +}) => { + const primaryClassName = classnames('activity-list-item', className, { + 'activity-list-item--single-content-row': !(subtitle || children), + }); + + return ( + { + if (event.key === 'Enter') { + onClick(); + } + }} + data-testid={dataTestId} + padding={4} + display={Display.Flex} + width={BlockSize.Full} + flexWrap={FlexWrap.Wrap} + gap={4} + > + {topContent && ( + + {topContent} + + )} + + {icon && {icon}} + + + + {title} + + {subtitle && ( + + {subtitle} + + )} + {children && ( + {children} + )} + + + {midContent && ( + + {midContent} + + )} + {rightContent && ( + + {rightContent} + + )} + + + + ); +}; + +ActivityListItem.propTypes = { + topContent: PropTypes.node, + icon: PropTypes.node, + title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), + subtitle: PropTypes.node, + midContent: PropTypes.node, + children: PropTypes.node, + rightContent: PropTypes.node, + onClick: PropTypes.func, + className: PropTypes.string, + 'data-testid': PropTypes.string, +}; diff --git a/ui/components/multichain/activity-list-item/activity-list-item.stories.js b/ui/components/multichain/activity-list-item/activity-list-item.stories.js new file mode 100644 index 000000000000..5927657fa017 --- /dev/null +++ b/ui/components/multichain/activity-list-item/activity-list-item.stories.js @@ -0,0 +1,102 @@ +import React from 'react'; +import TransactionStatusLabel from '../../app/transaction-status-label'; +import TransactionIcon from '../../app/transaction-icon'; +import CancelButton from '../../app/cancel-button'; +import { + BackgroundColor, + Color, + Display, + FontWeight, + Size, + TextAlign, + TextVariant, +} from '../../../helpers/constants/design-system'; +import { + AvatarNetwork, + BadgeWrapper, + BadgeWrapperAnchorElementShape, + Box, + Text, +} from '../../component-library'; +import { ActivityListItem } from './activity-list-item'; + +export default { + title: 'Components/Multichain/ActivityListItem', + component: ActivityListItem, +}; + +const Template = (args) => ; + +export const DefaultStory = Template.bind({}); +DefaultStory.args = { + 'data-testid': 'activity-list-item', + onClick: () => { + console.log('clicked list item'); + }, + className: 'custom-class', + title: 'Activity Title', + icon: ( + + } + > + + + ), + subtitle: ( + + ), + rightContent: ( + <> + + Primary Currency + + + Secondary Currency + + + ), + children: ( + + { + console.log('canceled'); + }} + /> + + ), +}; diff --git a/ui/components/multichain/activity-list-item/activity-list-item.test.js b/ui/components/multichain/activity-list-item/activity-list-item.test.js new file mode 100644 index 000000000000..e8a554021acf --- /dev/null +++ b/ui/components/multichain/activity-list-item/activity-list-item.test.js @@ -0,0 +1,45 @@ +import React from 'react'; +import { render, fireEvent } from '@testing-library/react'; +import { Icon, IconName, IconSize } from '../../component-library'; +import { ActivityListItem } from './activity-list-item'; + +const TITLE = 'Hello World'; +const SUBTITLE =

I am a list item

; +const CLASSNAME = 'list-item-test'; +const RIGHT_CONTENT =

Content rendered to the right

; +const CHILDREN = ; +const MID_CONTENT =

Content rendered in the middle

; +const TOP_CONTENT =

Content rendered at the top

; + +describe('ActivityListItem', () => { + const defaultProps = { + className: CLASSNAME, + title: TITLE, + 'data-testid': 'test-id', + subtitle: SUBTITLE, + rightContent: RIGHT_CONTENT, + midContent: MID_CONTENT, + topContent: TOP_CONTENT, + icon: , + onClick: jest.fn(), + }; + + it('should match snapshot with no props', () => { + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('should match snapshot with props', () => { + const { container } = render( + {CHILDREN}, + ); + + expect(container).toMatchSnapshot(); + }); + + it('calls onClick when clicked', () => { + const { getByTestId } = render(); + fireEvent.click(getByTestId('test-id')); + expect(defaultProps.onClick).toHaveBeenCalled(); + }); +}); diff --git a/ui/components/multichain/activity-list-item/index.js b/ui/components/multichain/activity-list-item/index.js new file mode 100644 index 000000000000..c07e45128df5 --- /dev/null +++ b/ui/components/multichain/activity-list-item/index.js @@ -0,0 +1 @@ +export { ActivityListItem } from './activity-list-item'; diff --git a/ui/components/multichain/activity-list-item/index.scss b/ui/components/multichain/activity-list-item/index.scss new file mode 100644 index 000000000000..125a7a2db9b8 --- /dev/null +++ b/ui/components/multichain/activity-list-item/index.scss @@ -0,0 +1,11 @@ +.activity-list-item { + cursor: pointer; + + &__primary-currency { + max-width: 130px; + + @include screen-sm-min { + max-width: max-content; + } + } +} diff --git a/ui/components/multichain/index.js b/ui/components/multichain/index.js index 0f6edcf250c7..36183e0158c4 100644 --- a/ui/components/multichain/index.js +++ b/ui/components/multichain/index.js @@ -2,6 +2,7 @@ export { AccountListItem } from './account-list-item'; export { AccountListItemMenu } from './account-list-item-menu'; export { AccountListMenu } from './account-list-menu'; export { AccountPicker } from './account-picker'; +export { ActivityListItem } from './activity-list-item'; export { AppHeader } from './app-header'; export { DetectedTokensBanner } from './detected-token-banner'; export { GlobalMenu } from './global-menu'; diff --git a/ui/components/multichain/multichain-components.scss b/ui/components/multichain/multichain-components.scss index 00cea05facf4..c67217a0f278 100644 --- a/ui/components/multichain/multichain-components.scss +++ b/ui/components/multichain/multichain-components.scss @@ -10,6 +10,7 @@ @import 'account-list-item-menu/index'; @import 'account-list-menu/index'; @import 'account-picker/index'; +@import 'activity-list-item/index'; @import 'app-header/app-header'; @import 'connected-site-menu/index'; @import 'account-list-menu/';