readd filters to new ui (#3062)

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

malik1004x committed Mar 14, 2026 at 13:57 UTC aa18ea396032de79ac84d6afe543ee957f93a755
32 files changed +59 -7
lib/new-ui/widgets/coins_page/assets_history/assets_history_section.dart
+1 -1
@@ -70,7 +70,7 @@ class _AssetsHistorySectionState extends State<AssetsHistorySection> {
70 Widget build(BuildContext context) {
71 return Column(
72 children: [
73 - if(tabs.length>1)
73 + // if(tabs.length>1)
74 AssetsTopBar(
75 dashboardViewModel: widget.dashboardViewModel,
76 tabs: tabs.map((item) => item.title).toList(),
lib/new-ui/widgets/coins_page/assets_history/assets_top_bar.dart
+26 -4
@@ -1,6 +1,8 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/line_tab_switcher.dart';
3 import 'package:cake_wallet/routes.dart';
4 +import 'package:cake_wallet/src/screens/dashboard/widgets/filter_widget.dart';
5 +import 'package:cake_wallet/utils/show_pop_up.dart';
6 import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
7 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
8 import 'package:flutter/material.dart';
@@ -21,7 +23,9 @@ class AssetsTopBar extends StatelessWidget {
23
24 @override
25 Widget build(BuildContext context) {
24 - final hasTokenSettingsButton = tabs[selectedTab] == S.of(context).assets && dashboardViewModel.balanceViewModel.isHomeScreenSettingsEnabled;
26 + final settingsButtonText = _getSettingsButtonText();
27 + final hasTokenSettingsButton = settingsButtonText != null;
28 +
29
30 return Padding(
31 padding: const EdgeInsets.only(top: 12.0, bottom: 12.0, left: 12.0, right: 18.0),
@@ -29,20 +33,27 @@ class AssetsTopBar extends StatelessWidget {
33 crossAxisAlignment: CrossAxisAlignment.center,
34 mainAxisAlignment: MainAxisAlignment.spaceBetween,
35 children: [
36 + if(tabs.length > 1)
37 LineTabSwitcher(
38 tabs: tabs,
39 onTabChange: onTabChange,
40 selectedTab: selectedTab,
36 - ),
41 + )
42 + else SizedBox.shrink(),
43 Opacity(
44 opacity: hasTokenSettingsButton ? 1 : 0,
45 child: ElevatedButton(
46 onPressed: () {
41 - if (hasTokenSettingsButton) {
47 + if (tabs[selectedTab] == S.of(context).assets) {
48 Navigator.of(context).pushNamed(
49 Routes.homeSettings,
50 arguments: dashboardViewModel.balanceViewModel,
51 );
52 + } else if(tabs[selectedTab] == S.of(context).history) {
53 + showPopUp<void>(
54 + context: context,
55 + builder: (context) => FilterWidget(filterItems: dashboardViewModel.filterItems),
56 + );
57 }
58 },
59 style: ElevatedButton.styleFrom(
@@ -64,7 +75,7 @@ class AssetsTopBar extends StatelessWidget {
75 colorFilter: ColorFilter.mode(
76 Theme.of(context).colorScheme.primary, BlendMode.srcIn)),
77 Text(
67 - S.of(context).tokens,
78 + settingsButtonText??"",
79 style: TextStyle(color: Theme.of(context).colorScheme.primary),
80 )
81 ],
@@ -77,4 +88,15 @@ class AssetsTopBar extends StatelessWidget {
88 ),
89 );
90 }
91 +
92 + String? _getSettingsButtonText() {
93 + if (tabs[selectedTab] == S.current.assets &&
94 + dashboardViewModel.balanceViewModel.isHomeScreenSettingsEnabled) {
95 + return S.current.tokens;
96 + }
97 +
98 + if (tabs[selectedTab] == S.current.history) {
99 + return S.current.filters;
100 + }
101 + }
102 }
res/values/strings_ar.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "تم حفظ الملف",
476 "fill_code": "يرجى إدخال رمز التحقق المُرسل إلى بريدك الإلكتروني",
477 "filter_by": "تصفية حسب",
478 + "filters": "المرشحات",
479 "finding_provider": "جارٍ البحث عن مزوّد",
480 "first_wallet_text": "محفظة رائعة لـ Monero وBitcoin وEthereum وLitecoin وHaven",
481 "fixed_pair_not_supported": "هذا الزوج الثابت غير مدعوم مع خدمات المبادلة المحددة",
res/values/strings_bg.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Файлът е запазен",
476 "fill_code": "Моля, въведете кода за потвърждение, изпратен на вашия имейл",
477 "filter_by": "Филтриране по",
478 + "filters": "Филтри",
479 "finding_provider": "Намиране на доставчик",
480 "first_wallet_text": "Страхотен портфейл за Monero, Bitcoin, Ethereum, Litecoin и Haven",
481 "fixed_pair_not_supported": "Тази фиксирана двойка не се поддържа от избраните услуги за обмен",
res/values/strings_cs.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Soubor uložen",
476 "fill_code": "Zadejte prosím ověřovací kód, který vám byl zaslán na e-mail",
477 "filter_by": "Filtrovat podle",
478 + "filters": "Filtry",
479 "finding_provider": "Hledání poskytovatele",
480 "first_wallet_text": "Skvělá peněženka pro Monero, Bitcoin, Ethereum, Litecoin a Haven",
481 "fixed_pair_not_supported": "Tento pevný pár není podporován u vybraných swapovacích služeb",
res/values/strings_de.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Datei gespeichert",
476 "fill_code": "Bitte geben Sie den Verifizierungscode ein, den Sie per E-Mail erhalten haben",
477 "filter_by": "Filtern nach",
478 + "filters": "Filter",
479 "finding_provider": "Anbieter wird gesucht",
480 "first_wallet_text": "Eine großartige Wallet für Monero, Bitcoin, Ethereum, Litecoin und Haven",
481 "fixed_pair_not_supported": "Dieses feste Paar wird von den ausgewählten Swap-Diensten nicht unterstützt",
res/values/strings_en.arb
+2 -1
@@ -475,6 +475,7 @@
475 "file_saved": "File saved",
476 "fill_code": "Please fill in the verification code provided to your email",
477 "filter_by": "Filter by",
478 + "filters": "Filters",
479 "finding_provider": "Finding provider",
480 "first_wallet_text": "Awesome wallet for Monero, Bitcoin, Ethereum, Litecoin, and Haven",
481 "fixed_pair_not_supported": "This fixed pair is not supported with the selected swap services",
@@ -1365,4 +1366,4 @@
1366 "zcash_card_missing_funds": "Missing funds?",
1367 "zcash_card_scan": "Scan",
1368 "zcash_card_warning": "Do not close the app until the procedure completes, if you do so this process will need to restart from scratch."
1368 -}
1369 +}
\ No newline at end of file
res/values/strings_es.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Archivo guardado",
476 "fill_code": "Por favor, introduce el código de verificación enviado a tu correo electrónico",
477 "filter_by": "Filtrar por",
478 + "filters": "Filtros",
479 "finding_provider": "Buscando proveedor",
480 "first_wallet_text": "Billetera increíble para Monero, Bitcoin, Ethereum, Litecoin y Haven",
481 "fixed_pair_not_supported": "Este par fijo no es compatible con los servicios de swap seleccionados",
res/values/strings_fa.arb
+1
@@ -473,6 +473,7 @@
473 "file_saved": "فایل ذخیره شد",
474 "fill_code": "لطفاً کد تأیید ارسال‌شده به ایمیل خود را وارد کنید",
475 "filter_by": "فیلتر بر اساس",
476 + "filters": "فیلترها",
477 "finding_provider": "در حال یافتن ارائه‌دهنده",
478 "first_wallet_text": "کیف پول فوق‌العاده برای مونرو، بیت‌کوین، اتریوم، لایت‌کوین و هیون",
479 "fixed_pair_not_supported": "این جفت‌ارز ثابت توسط سرویس‌های سواپ انتخاب‌شده پشتیبانی نمی‌شود",
res/values/strings_fr.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Fichier enregistré",
476 "fill_code": "Veuillez saisir le code de vérification envoyé à votre adresse e-mail.",
477 "filter_by": "Filtrer par",
478 + "filters": "Filtres",
479 "finding_provider": "Recherche d’un fournisseur",
480 "first_wallet_text": "Portefeuille génial pour Monero, Bitcoin, Ethereum, Litecoin et Haven",
481 "fixed_pair_not_supported": "Cette paire fixe n'est pas prise en charge par les services d'échange sélectionnés",
res/values/strings_gn.arb
+1
@@ -371,6 +371,7 @@
371 "field_required": "Ko kora tekotevẽva",
372 "fill_code": "Ikatúpiko emyenyhẽ pe ayvu ñemi jehechaukaha oñemondóva nde korreópe.",
373 "filter_by": "Mboguaha rupi",
374 + "filters": "Filtro-kuéra rehegua",
375 "finding_provider": "Ojejuhu hag̃ua proveedor",
376 "first_wallet_text": "Viru ñongatuha iporãiterei Monero, Bitcoin, Ethereum, Litecoin ha Haven-pe guarã.",
377 "fixed_pair_not_supported": "Ko mokõi par fijo ndojehepyme’ẽi umi swap rembiapo ojeiporavo va’ekuépe.",
res/values/strings_ha.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "An ajiye fayil",
476 "fill_code": "Da fatan za a shigar da lambar tabbatarwa da aka aiko zuwa imel ɗin ku",
477 "filter_by": "Tace ta",
478 + "filters": "Tace",
479 "finding_provider": "Ana neman mai ba da sabis",
480 "first_wallet_text": "Kyakkyawan walat don Monero, Bitcoin, Ethereum, Litecoin, da Haven",
481 "fixed_pair_not_supported": "Ba a tallafa wa wannan tsayayyen nau'i ba tare da sabis ɗin musayar da aka zaɓa ba",
res/values/strings_hi.arb
+2 -1
@@ -475,6 +475,7 @@
475 "file_saved": "फ़ाइल सहेजी गई",
476 "fill_code": "कृपया अपने ईमेल पर भेजा गया सत्यापन कोड दर्ज करें",
477 "filter_by": "इसके अनुसार फ़िल्टर करें",
478 + "filters": "फिल्टर",
479 "finding_provider": "प्रदाता खोजा जा रहा है",
480 "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin और Haven के लिए शानदार वॉलेट",
481 "fixed_pair_not_supported": "यह निश्चित जोड़ी चयनित स्वैप सेवाओं के साथ समर्थित नहीं है",
@@ -725,8 +726,8 @@
726 "payjoin_unavailable_sheet_title": "Payjoin उपलब्ध क्यों नहीं है?",
727 "payment_id": "भुगतान आईडी: ",
728 "payment_made_easy": "भुगतान करना आसान",
728 - "payment_was_received": "आपका भुगतान प्राप्त हो गया।",
729 "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
730 + "payment_was_received": "आपका भुगतान प्राप्त हो गया।",
731 "payments": "भुगतान",
732 "pending": " (लंबित)",
733 "percentageOf": "${amount} का",
res/values/strings_hr.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Datoteka je spremljena",
476 "fill_code": "Molimo unesite verifikacijski kod koji ste primili na svoju e-poštu",
477 "filter_by": "Filtriraj po",
478 + "filters": "Filteri",
479 "finding_provider": "Traženje pružatelja",
480 "first_wallet_text": "Odličan novčanik za Monero, Bitcoin, Ethereum, Litecoin i Haven",
481 "fixed_pair_not_supported": "Ovaj fiksni par nije podržan s odabranim uslugama zamjene",
res/values/strings_hy.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Ֆայլը պահպանվել է",
476 "fill_code": "Խնդրում ենք մուտքագրել ձեր էլեկտրոնային փոստին ուղարկված հաստատման կոդը",
477 "filter_by": "Զտել ըստ",
478 + "filters": "Զտիչներ",
479 "finding_provider": "Մատակարարի որոնում",
480 "first_wallet_text": "Հիանալի դրամապանակ Monero, Bitcoin, Ethereum, Litecoin և Haven-ի համար",
481 "fixed_pair_not_supported": "Այս ֆիքսված զույգը չի աջակցվում ընտրված փոխանակման ծառայությունների կողմից",
res/values/strings_id.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "File tersimpan",
476 "fill_code": "Silakan isi kode verifikasi yang dikirim ke email Anda",
477 "filter_by": "Filter berdasarkan",
478 + "filters": "Filter",
479 "finding_provider": "Mencari penyedia",
480 "first_wallet_text": "Dompet yang keren untuk Monero, Bitcoin, Ethereum, Litecoin, dan Haven",
481 "fixed_pair_not_supported": "Pasangan tetap ini tidak didukung oleh layanan swap yang dipilih",
res/values/strings_it.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "File salvato",
476 "fill_code": "Inserisci il codice di verifica inviato al tuo indirizzo email",
477 "filter_by": "Filtra per",
478 + "filters": "Filtri",
479 "finding_provider": "Ricerca del fornitore",
480 "first_wallet_text": "Portafoglio fantastico per Monero, Bitcoin, Ethereum, Litecoin e Haven",
481 "fixed_pair_not_supported": "Questa coppia fissa non è supportata dai servizi di swap selezionati",
res/values/strings_ja.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "ファイルを保存しました",
476 "fill_code": "メールに記載されている認証コードを入力してください",
477 "filter_by": "絞り込み",
478 + "filters": "フィルター",
479 "finding_provider": "プロバイダーを検索中",
480 "first_wallet_text": "Monero、Bitcoin、Ethereum、Litecoin、Havenに対応した素晴らしいウォレット",
481 "fixed_pair_not_supported": "この固定ペアは、選択したスワップサービスではサポートされていません",
res/values/strings_ko.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "파일이 저장되었습니다",
476 "fill_code": "이메일로 받은 인증 코드를 입력하세요",
477 "filter_by": "필터 기준:",
478 + "filters": "필터",
479 "finding_provider": "제공자 찾는 중",
480 "first_wallet_text": "모네로, 비트코인, 이더리움, 라이트코인, 헤이븐을 위한 멋진 지갑",
481 "fixed_pair_not_supported": "이 고정 페어는 선택한 스왑 서비스에서 지원되지 않습니다",
res/values/strings_my.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "ဖိုင်ကို သိမ်းဆည်းပြီးပါပြီ",
476 "fill_code": "သင့်အီးမေးလ်သို့ ပို့ထားသော အတည်ပြုကုဒ်ကို ဖြည့်ပါ။",
477 "filter_by": "အလိုက် စစ်ထုတ်ရန်",
478 + "filters": "စစ်ထုတ်မှုများ",
479 "finding_provider": "ပံ့ပိုးသူကို ရှာဖွေနေသည်",
480 "first_wallet_text": "Monero၊ Bitcoin၊ Ethereum၊ Litecoin နှင့် Haven အတွက် အလွန်ကောင်းမွန်သော Wallet",
481 "fixed_pair_not_supported": "ဤပုံသေစုံတွဲကို ရွေးချယ်ထားသော swap ဝန်ဆောင်မှုများဖြင့် မထောက်ပံ့ပါ",
res/values/strings_nl.arb
+1
@@ -473,6 +473,7 @@
473 "file_saved": "Bestand opgeslagen",
474 "fill_code": "Vul de verificatiecode in die je in je e-mail hebt ontvangen",
475 "filter_by": "Filteren op",
476 + "filters": "Filters",
477 "finding_provider": "Aanbieder zoeken",
478 "first_wallet_text": "Geweldige wallet voor Monero, Bitcoin, Ethereum, Litecoin en Haven",
479 "fixed_pair_not_supported": "Dit vaste paar wordt niet ondersteund met de geselecteerde swap-services",
res/values/strings_pl.arb
+1
@@ -474,6 +474,7 @@
474 "file_saved": "Plik zapisany",
475 "fill_code": "Proszę wprowadzić kod weryfikacyjny wysłany na Twój adres e‑mail",
476 "filter_by": "Filtruj według",
477 + "filters": "Filtry",
478 "finding_provider": "Wyszukiwanie dostawcy",
479 "first_wallet_text": "Świetny portfel dla Monero, Bitcoin, Ethereum, Litecoin i Haven",
480 "fixed_pair_not_supported": "Ta stała para nie jest obsługiwana przez wybrane usługi swap.",
res/values/strings_pt.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Arquivo salvo",
476 "fill_code": "Por favor, preencha o código de verificação enviado para o seu e-mail",
477 "filter_by": "Filtrar por",
478 + "filters": "Filtros",
479 "finding_provider": "Procurando provedor",
480 "first_wallet_text": "Carteira incrível para Monero, Bitcoin, Ethereum, Litecoin e Haven",
481 "fixed_pair_not_supported": "Este par fixo não é compatível com os serviços de swap selecionados",
res/values/strings_ru.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Файл сохранён",
476 "fill_code": "Пожалуйста, введите код подтверждения, отправленный на вашу электронную почту",
477 "filter_by": "Фильтровать по",
478 + "filters": "Фильтры",
479 "finding_provider": "Поиск провайдера",
480 "first_wallet_text": "Отличный кошелёк для Monero, Bitcoin, Ethereum, Litecoin и Haven",
481 "fixed_pair_not_supported": "Эта фиксированная пара не поддерживается выбранными сервисами обмена",
res/values/strings_th.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "บันทึกไฟล์แล้ว",
476 "fill_code": "โปรดกรอกรหัสยืนยันที่ส่งไปยังอีเมลของคุณ",
477 "filter_by": "กรองตาม",
478 + "filters": "ตัวกรอง",
479 "finding_provider": "กำลังค้นหาผู้ให้บริการ",
480 "first_wallet_text": "กระเป๋าเงินที่ยอดเยี่ยมสำหรับ Monero, Bitcoin, Ethereum, Litecoin และ Haven",
481 "fixed_pair_not_supported": "คู่แบบคงที่นี้ไม่รองรับกับบริการสวอปที่เลือก",
res/values/strings_tl.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Na-save ang file",
476 "fill_code": "Mangyaring ilagay ang verification code na ipinadala sa iyong email",
477 "filter_by": "I-filter ayon sa",
478 + "filters": "Mga filter",
479 "finding_provider": "Naghahanap ng provider",
480 "first_wallet_text": "Napakahusay na wallet para sa Monero, Bitcoin, Ethereum, Litecoin, at Haven",
481 "fixed_pair_not_supported": "Hindi sinusuportahan ang nakapirming pares na ito sa mga napiling serbisyo ng swap",
res/values/strings_tr.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Dosya kaydedildi",
476 "fill_code": "Lütfen e-postanıza gönderilen doğrulama kodunu girin",
477 "filter_by": "Filtrele:",
478 + "filters": "Filtreler",
479 "finding_provider": "Sağlayıcı aranıyor",
480 "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin ve Haven için harika bir cüzdan",
481 "fixed_pair_not_supported": "Bu sabit parite, seçilen takas hizmetleriyle desteklenmiyor",
res/values/strings_uk.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "Файл збережено",
476 "fill_code": "Будь ласка, введіть код підтвердження, надісланий на вашу електронну адресу",
477 "filter_by": "Фільтрувати за",
478 + "filters": "Фільтри",
479 "finding_provider": "Пошук провайдера",
480 "first_wallet_text": "Чудовий гаманець для Monero, Bitcoin, Ethereum, Litecoin та Haven",
481 "fixed_pair_not_supported": "Ця фіксована пара не підтримується вибраними сервісами обміну",
res/values/strings_ur.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "فائل محفوظ ہو گئی",
476 "fill_code": "براہ کرم اپنے ای میل پر موصول ہونے والا تصدیقی کوڈ درج کریں۔",
477 "filter_by": "کے مطابق فلٹر کریں",
478 + "filters": "فلٹرز",
479 "finding_provider": "فراہم کنندہ تلاش کیا جا رہا ہے",
480 "first_wallet_text": "Monero، Bitcoin، Ethereum، Litecoin اور Haven کے لیے بہترین والیٹ",
481 "fixed_pair_not_supported": "منتخب کردہ سواپ سروسز کے ساتھ یہ فکسڈ جوڑی سپورٹ نہیں کی جاتی",
res/values/strings_vi.arb
+1
@@ -474,6 +474,7 @@
474 "file_saved": "Đã lưu tệp",
475 "fill_code": "Vui lòng nhập mã xác minh được gửi đến email của bạn",
476 "filter_by": "Lọc theo",
477 + "filters": "Bộ lọc",
478 "finding_provider": "Đang tìm nhà cung cấp",
479 "first_wallet_text": "Ví tuyệt vời cho Monero, Bitcoin, Ethereum, Litecoin và Haven",
480 "fixed_pair_not_supported": "Cặp tỷ giá cố định này không được hỗ trợ với các dịch vụ hoán đổi đã chọn",
res/values/strings_yo.arb
+1
@@ -476,6 +476,7 @@
476 "file_saved": "Faili ti fipamọ",
477 "fill_code": "Jọ̀wọ́ tẹ kóòdù ìmúdájú tí a rán sí ímeèlì rẹ.",
478 "filter_by": "Ṣàlẹ̀mọ́ nípa",
479 + "filters": "Ajọ",
480 "finding_provider": "N wa olupese",
481 "first_wallet_text": "Àpamọ́wọ́ tó dára gan-an fún Monero, Bitcoin, Ethereum, Litecoin, àti Haven",
482 "fixed_pair_not_supported": "Akọsopọ paṣipaarọ ti o wa titi yii ko ni atilẹyin pẹlu awọn iṣẹ swap ti o yan",
res/values/strings_zh.arb
+1
@@ -475,6 +475,7 @@
475 "file_saved": "文件已保存",
476 "fill_code": "请填写发送至您邮箱的验证码",
477 "filter_by": "筛选条件",
478 + "filters": "过滤器",
479 "finding_provider": "正在查找服务提供商",
480 "first_wallet_text": "适用于门罗币、比特币、以太坊、莱特币和 Haven 的超棒钱包",
481 "fixed_pair_not_supported": "所选的兑换服务不支持该固定交易对",