From c2a04de42f59672ed5e2fef924050ff379b43f84 Mon Sep 17 00:00:00 2001 From: EA Date: Tue, 21 Apr 2026 15:51:26 +0600 Subject: [PATCH 1/2] Minor UI fix for WatchSelect module --- .../Modules/Watch/WatchSelectView.swift | 14 +++----------- .../Modules/Watch/WatchViewModel.swift | 4 ++-- .../UnstoppableWallet/en.lproj/Localizable.strings | 4 ++-- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchSelectView.swift b/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchSelectView.swift index 583e166f9d..538b2efa66 100644 --- a/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchSelectView.swift +++ b/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchSelectView.swift @@ -9,10 +9,10 @@ struct WatchSelectView: View { var body: some View { ThemeView(style: .list) { - BottomGradientWrapper { + BottomGradientWrapper(gradientColor: .themeLawrence) { switch items { case let .blockchains(blockchains): - ThemeList(blockchains) { blockchain in + ThemeList(blockchains, bottomSpacing: 16) { blockchain in Cell( left: { KFImage.url(URL(string: blockchain.type.imageUrl)) @@ -48,7 +48,7 @@ struct WatchSelectView: View { ) } case let .coins(tokens): - ThemeList(tokens) { token in + ThemeList(tokens, bottomSpacing: 16) { token in Cell( left: { CoinIconView(coin: token.coin) @@ -89,13 +89,5 @@ struct WatchSelectView: View { } } .navigationTitle(items.title) - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("watch_address.watch".localized) { - onSelect(Array(enabledUids)) - } - .disabled(enabledUids.isEmpty) - } - } } } diff --git a/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchViewModel.swift b/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchViewModel.swift index 728d58f7be..4693b0b1f5 100644 --- a/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchViewModel.swift +++ b/UnstoppableWallet/UnstoppableWallet/Modules/Watch/WatchViewModel.swift @@ -382,8 +382,8 @@ extension WatchViewModel { var title: String { switch self { - case .blockchains: return "watch_address.choose_blockchain".localized - case .coins: return "watch_address.choose_coin".localized + case .blockchains: return "watch_address.choose_blockchains".localized + case .coins: return "watch_address.choose_coins".localized } } } diff --git a/UnstoppableWallet/UnstoppableWallet/en.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/en.lproj/Localizable.strings index 631f02d6a9..6d2756fcfe 100644 --- a/UnstoppableWallet/UnstoppableWallet/en.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/en.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "Watching by private key is not allowed"; "watch_address.error.not_supported_derived_type" = "Derived type is not supported"; "watch_address.watch_data.placeholder" = "Paste your address (EVM, Tron, TON, Stellar, Monero, BTC, LTC, BCH, Dash) or XPUB"; -"watch_address.choose_blockchain" = "Choose Blockchain"; -"watch_address.choose_coin" = "Choose Coin"; +"watch_address.choose_blockchains" = "Choose Blockchains"; +"watch_address.choose_coins" = "Choose Coins"; "watch_address.view_key.placeholder" = "Private View Key"; "watch_address.view_key.error.required" = "Private View Key is required to watch Monero wallets."; "watch_address.view_key.error.invalid" = "Invalid View Key"; From 0450dc742788885badb5b4d7f167bc86b67f0bb8 Mon Sep 17 00:00:00 2001 From: "translator[bot]" Date: Tue, 21 Apr 2026 09:53:05 +0000 Subject: [PATCH 2/2] chore: auto-translate new strings --- .../UnstoppableWallet/de.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/es.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/fr.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/ko.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/pt-BR.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/ru.lproj/Localizable.strings | 4 ++-- .../UnstoppableWallet/tr.lproj/Localizable.strings | 4 ++-- UnstoppableWallet/UnstoppableWallet/translation_snapshot.json | 4 ++-- .../UnstoppableWallet/zh.lproj/Localizable.strings | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/UnstoppableWallet/UnstoppableWallet/de.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/de.lproj/Localizable.strings index 5b3ec0ce56..633c6db165 100644 --- a/UnstoppableWallet/UnstoppableWallet/de.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/de.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "Das Beobachten mit privatem Schlüssel ist nicht erlaubt"; "watch_address.error.not_supported_derived_type" = "Abgeleiteter Typ wird nicht unterstützt"; "watch_address.watch_data.placeholder" = "Fügen Sie Ihre öffentliche Adresse oder Ihren XPUB ein"; -"watch_address.choose_blockchain" = "Blockchain auswählen"; -"watch_address.choose_coin" = "Coins auswählen"; +"watch_address.choose_blockchains" = "Blockchains auswählen"; +"watch_address.choose_coins" = "Coins auswählen"; "watch_address.view_key.placeholder" = "Privater View-Key"; "watch_address.view_key.error.required" = "Ein privater View-Key ist erforderlich, um Monero-Wallets anzuzeigen."; "watch_address.view_key.error.invalid" = "Ungültiger View-Key"; diff --git a/UnstoppableWallet/UnstoppableWallet/es.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/es.lproj/Localizable.strings index eae7151c0f..72ed3e2dd4 100644 --- a/UnstoppableWallet/UnstoppableWallet/es.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/es.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "No se permite la visualización por clave privada"; "watch_address.error.not_supported_derived_type" = "El tipo derivado no está soportado"; "watch_address.watch_data.placeholder" = "Pega tu dirección pública o clave XPUB"; -"watch_address.choose_blockchain" = "Elegir Blockchain"; -"watch_address.choose_coin" = "Elegir moneda"; +"watch_address.choose_blockchains" = "Elegir blockchains"; +"watch_address.choose_coins" = "Elegir monedas"; "watch_address.view_key.placeholder" = "Clave de vista privada"; "watch_address.view_key.error.required" = "Se requiere una clave de vista privada para visualizar wallets de Monero."; "watch_address.view_key.error.invalid" = "Clave de vista no válida"; diff --git a/UnstoppableWallet/UnstoppableWallet/fr.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/fr.lproj/Localizable.strings index 72573ac1dd..d122c531f9 100644 --- a/UnstoppableWallet/UnstoppableWallet/fr.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/fr.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "La surveillance par clé privée n'est pas autorisée"; "watch_address.error.not_supported_derived_type" = "Le type dérivé n'est pas pris en charge"; "watch_address.watch_data.placeholder" = "Collez votre adresse publique ou votre clé XPUB"; -"watch_address.choose_blockchain" = "Choisir la blockchain"; -"watch_address.choose_coin" = "Choisir la pièce"; +"watch_address.choose_blockchains" = "Choisir les blockchains"; +"watch_address.choose_coins" = "Choisir les coins"; "watch_address.view_key.placeholder" = "Clé de visualisation privée"; "watch_address.view_key.error.required" = "La clé de visualisation privée est nécessaire pour consulter les portefeuilles Monero."; "watch_address.view_key.error.invalid" = "Clé de visualisation invalide"; diff --git a/UnstoppableWallet/UnstoppableWallet/ko.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/ko.lproj/Localizable.strings index ed9060677d..71cfb9f4c1 100644 --- a/UnstoppableWallet/UnstoppableWallet/ko.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/ko.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "개인 키로 감시하는 것은 허용되지 않습니다"; "watch_address.error.not_supported_derived_type" = "파생된 유형은 지원되지 않습니다"; "watch_address.watch_data.placeholder" = "공개 주소 또는 XPUB를 붙여넣으세요"; -"watch_address.choose_blockchain" = "블록체인 선택"; -"watch_address.choose_coin" = "코인 선택"; +"watch_address.choose_blockchains" = "블록체인 선택"; +"watch_address.choose_coins" = "코인 선택"; "watch_address.view_key.placeholder" = "개인 조회 키"; "watch_address.view_key.error.required" = "Monero 지갑을 조회하려면 개인 조회 키가 필요합니다."; "watch_address.view_key.error.invalid" = "잘못된 조회 키"; diff --git a/UnstoppableWallet/UnstoppableWallet/pt-BR.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/pt-BR.lproj/Localizable.strings index f3dd72465f..4b62769f12 100644 --- a/UnstoppableWallet/UnstoppableWallet/pt-BR.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/pt-BR.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "Não é permitido observar por chave privada"; "watch_address.error.not_supported_derived_type" = "Tipo derivado não suportado"; "watch_address.watch_data.placeholder" = "Cole seu endereço público ou chave XPUB"; -"watch_address.choose_blockchain" = "Escolha Blockchain"; -"watch_address.choose_coin" = "Escolher Moedas"; +"watch_address.choose_blockchains" = "Escolher blockchains"; +"watch_address.choose_coins" = "Escolher moedas"; "watch_address.view_key.placeholder" = "Chave de Visualização Privada"; "watch_address.view_key.error.required" = "A Chave de Visualização Privada é necessária para visualizar carteiras Monero."; "watch_address.view_key.error.invalid" = "Chave de Visualização Inválida"; diff --git a/UnstoppableWallet/UnstoppableWallet/ru.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/ru.lproj/Localizable.strings index eb97a1bc16..072617435d 100644 --- a/UnstoppableWallet/UnstoppableWallet/ru.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/ru.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "Просмотр по приватному ключу не разрешён"; "watch_address.error.not_supported_derived_type" = "Неподдерживаемый тип"; "watch_address.watch_data.placeholder" = "Вставьте свой публичный адрес или XPUB"; -"watch_address.choose_blockchain" = "Выбрать блокчейн"; -"watch_address.choose_coin" = "Выберите токен"; +"watch_address.choose_blockchains" = "Выбрать блокчейны"; +"watch_address.choose_coins" = "Выбрать монеты"; "watch_address.view_key.placeholder" = "Приватный ключ просмотра"; "watch_address.view_key.error.required" = "Для просмотра кошельков Monero требуется приватный ключ просмотра."; "watch_address.view_key.error.invalid" = "Недействительный ключ просмотра"; diff --git a/UnstoppableWallet/UnstoppableWallet/tr.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/tr.lproj/Localizable.strings index 75bb72bf44..376e7e9243 100644 --- a/UnstoppableWallet/UnstoppableWallet/tr.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/tr.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "Özel anahtarla izlemeye izin verilmiyor"; "watch_address.error.not_supported_derived_type" = "Türetilmiş tür desteklenmiyor"; "watch_address.watch_data.placeholder" = "Genel adresinizi veya XPUB anahtarınızı yapıştırın"; -"watch_address.choose_blockchain" = "Blockchain Seç"; -"watch_address.choose_coin" = "Kripto Parayı Seç"; +"watch_address.choose_blockchains" = "Blok zincirlerini seç"; +"watch_address.choose_coins" = "Coinleri seç"; "watch_address.view_key.placeholder" = "Özel Görüntüleme Anahtarı"; "watch_address.view_key.error.required" = "Monero cüzdanlarını görüntülemek için Özel Görüntüleme Anahtarı gereklidir."; "watch_address.view_key.error.invalid" = "Geçersiz Görüntüleme Anahtarı"; diff --git a/UnstoppableWallet/UnstoppableWallet/translation_snapshot.json b/UnstoppableWallet/UnstoppableWallet/translation_snapshot.json index 1c7d579a9b..727013cc58 100644 --- a/UnstoppableWallet/UnstoppableWallet/translation_snapshot.json +++ b/UnstoppableWallet/UnstoppableWallet/translation_snapshot.json @@ -1682,8 +1682,8 @@ "watch_address.error.non_public_key": "Watching by private key is not allowed", "watch_address.error.not_supported_derived_type": "Derived type is not supported", "watch_address.watch_data.placeholder": "Paste your address (EVM, Tron, TON, Stellar, Monero, BTC, LTC, BCH, Dash) or XPUB", - "watch_address.choose_blockchain": "Choose Blockchain", - "watch_address.choose_coin": "Choose Coin", + "watch_address.choose_blockchains": "Choose Blockchains", + "watch_address.choose_coins": "Choose Coins", "watch_address.view_key.placeholder": "Private View Key", "watch_address.view_key.error.required": "Private View Key is required to watch Monero wallets.", "watch_address.view_key.error.invalid": "Invalid View Key", diff --git a/UnstoppableWallet/UnstoppableWallet/zh.lproj/Localizable.strings b/UnstoppableWallet/UnstoppableWallet/zh.lproj/Localizable.strings index b1e8b4ad61..f705a0000e 100644 --- a/UnstoppableWallet/UnstoppableWallet/zh.lproj/Localizable.strings +++ b/UnstoppableWallet/UnstoppableWallet/zh.lproj/Localizable.strings @@ -2188,8 +2188,8 @@ "watch_address.error.non_public_key" = "不允许使用私钥进行观察"; "watch_address.error.not_supported_derived_type" = "不支持的派生类型"; "watch_address.watch_data.placeholder" = "粘贴您的公开地址或 XPUB"; -"watch_address.choose_blockchain" = "选择区块链"; -"watch_address.choose_coin" = "选择代币"; +"watch_address.choose_blockchains" = "选择区块链"; +"watch_address.choose_coins" = "选择币种"; "watch_address.view_key.placeholder" = "私有查看密钥"; "watch_address.view_key.error.required" = "要监控 Monero 钱包,需要提供私有查看密钥。"; "watch_address.view_key.error.invalid" = "查看密钥无效";