diff --git a/Features/WalletConnector/Sources/WalletConnector/Scenes/ConnectionProposalScene.swift b/Features/WalletConnector/Sources/WalletConnector/Scenes/ConnectionProposalScene.swift index c631824d2..72a3e06cc 100644 --- a/Features/WalletConnector/Sources/WalletConnector/Scenes/ConnectionProposalScene.swift +++ b/Features/WalletConnector/Sources/WalletConnector/Scenes/ConnectionProposalScene.swift @@ -2,6 +2,7 @@ import SwiftUI import Components +import PrimitivesComponents import Style import Primitives import Localization @@ -21,10 +22,9 @@ public struct ConnectionProposalScene: View { public var body: some View { List { Section { } header: { - VStack(alignment: .center) { - AsyncImageView(url: model.imageUrl, size: .image.semiLarge) - } - .padding(.top, .small) + AssetPreviewView(model: model.appPreview, subtitleLayout: .vertical) + .frame(maxWidth: .infinity) + .padding(.bottom, .small) } .cleanListRow() @@ -35,14 +35,23 @@ public struct ConnectionProposalScene: View { subtitle: model.walletName ) } - ListItemView(title: model.appTitle, subtitle: model.appText) + ListItemView( + title: model.connectionTitle, + subtitle: model.connectionText + ) ListItemImageView( - title: Localized.WalletConnect.Connection.title, + title: Localized.Transaction.status, subtitle: model.statusText, subtitleStyle: model.statusTextStyle, assetImage: model.statusAssetImage ) } + + Section(model.permissionsTitle) { + ForEach(model.permissions, id: \.title) { permission in + ListItemView(model: permission) + } + } } .safeAreaButton { StateButton( @@ -50,6 +59,8 @@ public struct ConnectionProposalScene: View { action: onAccept ) } + .contentMargins(.top, .scene.top, for: .scrollContent) + .listSectionSpacing(.compact) .navigationTitle(model.title) .navigationDestination(for: Scenes.SelectWallet.self) { _ in SelectWalletScene(model: $model.walletSelectorModel) diff --git a/Features/WalletConnector/Sources/WalletConnector/Scenes/SignMessageScene.swift b/Features/WalletConnector/Sources/WalletConnector/Scenes/SignMessageScene.swift index bba0353b6..0bf11f72d 100644 --- a/Features/WalletConnector/Sources/WalletConnector/Scenes/SignMessageScene.swift +++ b/Features/WalletConnector/Sources/WalletConnector/Scenes/SignMessageScene.swift @@ -21,15 +21,14 @@ public struct SignMessageScene: View { public var body: some View { List { + Section { } header: { + AssetPreviewView(model: model.appPreview, subtitleLayout: .vertical) + .frame(maxWidth: .infinity) + .padding(.bottom, .small) + } + .cleanListRow() + Section { - ListItemImageView( - title: Localized.WalletConnect.app, - subtitle: model.appText, - assetImage: model.appAssetImage - ) - .contextMenu( - .url(title: Localized.WalletConnect.website, onOpen: model.onViewWebsite) - ) ListItemImageView( title: Localized.Common.wallet, subtitle: model.walletText, @@ -66,6 +65,7 @@ public struct SignMessageScene: View { } } } + .contentMargins(.top, .scene.top, for: .scrollContent) .listSectionSpacing(.compact) .taskOnce { model.fetch() } .safeAreaButton { diff --git a/Features/WalletConnector/Sources/WalletConnector/Types/AppPreviewModel.swift b/Features/WalletConnector/Sources/WalletConnector/Types/AppPreviewModel.swift new file mode 100644 index 000000000..9e0dae095 --- /dev/null +++ b/Features/WalletConnector/Sources/WalletConnector/Types/AppPreviewModel.swift @@ -0,0 +1,10 @@ +// Copyright (c). Gem Wallet. All rights reserved. + +import Components +import PrimitivesComponents + +public struct AppPreviewModel: AssetPreviewable { + public let assetImage: AssetImage + public let name: String + public let subtitleSymbol: String? +} diff --git a/Features/WalletConnector/Sources/WalletConnector/ViewModels/ConnectionProposalViewModel.swift b/Features/WalletConnector/Sources/WalletConnector/ViewModels/ConnectionProposalViewModel.swift index d2b91cf9f..c536fb5f3 100644 --- a/Features/WalletConnector/Sources/WalletConnector/ViewModels/ConnectionProposalViewModel.swift +++ b/Features/WalletConnector/Sources/WalletConnector/ViewModels/ConnectionProposalViewModel.swift @@ -31,6 +31,8 @@ public struct ConnectionProposalViewModel { var buttonTitle: String { Localized.Transfer.confirm } var walletTitle: String { Localized.Common.wallet } var appTitle: String { Localized.WalletConnect.app } + var connectionTitle: String { Localized.WalletConnect.Connection.title } + var connectionText: String { Localized.WalletConnect.brandName } var walletName: String { walletSelectorModel.selectedItems.first?.name ?? .empty @@ -83,6 +85,34 @@ public struct ConnectionProposalViewModel { .image(verificationImage) } + var permissionsTitle: String { Localized.WalletConnect.Permissions.title } + + var permissions: [ListItemModel] { + [ + ListItemModel( + title: Localized.WalletConnect.Permissions.viewBalance, + imageStyle: .accessory(assetImage: .image(Images.System.checkmark)) + ), + ListItemModel( + title: Localized.WalletConnect.Permissions.approvalRequests, + imageStyle: .accessory(assetImage: .image(Images.System.checkmark)) + ), + ListItemModel( + title: Localized.WalletConnect.Permissions.moveFunds, + titleStyle: TextStyle(font: .body, color: Colors.secondaryText), + imageStyle: .accessory(assetImage: .image(Images.System.xmark), foregroundColor: Colors.gray) + ), + ] + } + + var appPreview: AppPreviewModel { + AppPreviewModel( + assetImage: AssetImage(imageURL: imageUrl), + name: appName, + subtitleSymbol: websiteText + ) + } + private var payload: WalletConnectionSessionProposal { pairingProposal.proposal } diff --git a/Features/WalletConnector/Sources/WalletConnector/ViewModels/SignMessageSceneViewModel.swift b/Features/WalletConnector/Sources/WalletConnector/ViewModels/SignMessageSceneViewModel.swift index d133f4a3d..e8d138bf8 100644 --- a/Features/WalletConnector/Sources/WalletConnector/ViewModels/SignMessageSceneViewModel.swift +++ b/Features/WalletConnector/Sources/WalletConnector/ViewModels/SignMessageSceneViewModel.swift @@ -100,6 +100,14 @@ public final class SignMessageSceneViewModel { appName } + public var appPreview: AppPreviewModel { + AppPreviewModel( + assetImage: appAssetImage, + name: appName, + subtitleSymbol: connectionViewModel.hostText + ) + } + var textMessageViewModel: TextMessageViewModel { TextMessageViewModel(message: plainMessage) } diff --git a/Packages/Components/Sources/Lists/ListItemView.swift b/Packages/Components/Sources/Lists/ListItemView.swift index 143f20a50..4c4bada97 100644 --- a/Packages/Components/Sources/Lists/ListItemView.swift +++ b/Packages/Components/Sources/Lists/ListItemView.swift @@ -88,7 +88,7 @@ public struct ListItemView: View { AssetImageView( assetImage: imageStyle.assetImage, size: imageStyle.imageSize, - style: .init(cornerRadius: imageStyle.cornerRadius) + style: .init(foregroundColor: imageStyle.foregroundColor, cornerRadius: imageStyle.cornerRadius) ) } HStack { diff --git a/Packages/Components/Sources/Types/ListItemImageStyle.swift b/Packages/Components/Sources/Types/ListItemImageStyle.swift index 7ba69e456..3121a2a61 100644 --- a/Packages/Components/Sources/Types/ListItemImageStyle.swift +++ b/Packages/Components/Sources/Types/ListItemImageStyle.swift @@ -8,8 +8,9 @@ public struct ListItemImageStyle: Sendable { public let assetImage: AssetImage public let imageSize: CGFloat public let alignment: VerticalAlignment + public let foregroundColor: Color? private let cornerRadiusType: CornerRadiusType - + public var cornerRadius: CGFloat { switch cornerRadiusType { case .none: .zero @@ -22,6 +23,7 @@ public struct ListItemImageStyle: Sendable { assetImage: AssetImage?, imageSize: CGFloat, alignment: VerticalAlignment = .center, + foregroundColor: Color? = nil, cornerRadiusType: CornerRadiusType ) { guard let assetImage else { return nil } @@ -29,6 +31,7 @@ public struct ListItemImageStyle: Sendable { self.imageSize = imageSize self.cornerRadiusType = cornerRadiusType self.alignment = alignment + self.foregroundColor = foregroundColor } public enum CornerRadiusType: Sendable { @@ -55,6 +58,15 @@ public extension ListItemImageStyle { ) } + static func accessory(assetImage: AssetImage?, foregroundColor: Color? = nil) -> Self? { + ListItemImageStyle( + assetImage: assetImage, + imageSize: .space12, + foregroundColor: foregroundColor, + cornerRadiusType: .none + ) + } + static func settings(assetImage: AssetImage?) -> Self? { ListItemImageStyle( assetImage: assetImage, diff --git a/Packages/Localization/Sources/Localized.swift b/Packages/Localization/Sources/Localized.swift index cba34af91..a9eadb413 100644 --- a/Packages/Localization/Sources/Localized.swift +++ b/Packages/Localization/Sources/Localized.swift @@ -1600,6 +1600,12 @@ public enum Localized { /// New Wallet public static let title = Localized.tr("Localizable", "wallet.new.title", fallback: "New Wallet") } + public enum Portfolio { + /// Estimated value based on current holdings and market prices. + public static let footer = Localized.tr("Localizable", "wallet.portfolio.footer", fallback: "Estimated value based on current holdings and market prices.") + /// Portfolio + public static let title = Localized.tr("Localizable", "wallet.portfolio.title", fallback: "Portfolio") + } public enum Receive { /// No destination tag required public static let noDestinationTagRequired = Localized.tr("Localizable", "wallet.receive.no_destination_tag_required", fallback: "No destination tag required") @@ -1636,6 +1642,16 @@ public enum Localized { /// Connection public static let title = Localized.tr("Localizable", "wallet_connect.connection.title", fallback: "Connection") } + public enum Permissions { + /// Send approval requests + public static let approvalRequests = Localized.tr("Localizable", "wallet_connect.permissions.approval_requests", fallback: "Send approval requests") + /// Move funds without permission + public static let moveFunds = Localized.tr("Localizable", "wallet_connect.permissions.move_funds", fallback: "Move funds without permission") + /// Permissions + public static let title = Localized.tr("Localizable", "wallet_connect.permissions.title", fallback: "Permissions") + /// View your balance and activity + public static let viewBalance = Localized.tr("Localizable", "wallet_connect.permissions.view_balance", fallback: "View your balance and activity") + } public enum State { public enum Empty { /// Scan or paste code to connect to the DApp diff --git a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings index f1658c329..edd89ddad 100644 --- a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "يمنح هذا المنفق إمكانية استخدام هذا الرمز المميز حتى تقوم بإلغاء الموافقة أو تنتهي صلاحيته."; "simulation.warning.nft_collection_approval.title" = "تم طلب الوصول الكامل إلى مجموعة NFT"; "simulation.warning.unlimited_token_approval.title" = "الموافقة على الرموز المميزة غير محدودة"; -"transfer.review_request" = "طلب مراجعة"; \ No newline at end of file +"transfer.review_request" = "طلب مراجعة"; +"wallet.portfolio.title" = "مَلَفّ"; +"wallet.portfolio.footer" = "القيمة التقديرية مبنية على الحيازات الحالية وأسعار السوق."; +"wallet_connect.permissions.title" = "الأذونات"; +"wallet_connect.permissions.view_balance" = "اطلع على رصيدك ونشاطك"; +"wallet_connect.permissions.approval_requests" = "إرسال طلبات الموافقة"; +"wallet_connect.permissions.move_funds" = "تحويل الأموال بدون إذن"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings index 572496a53..6d3f8880f 100644 --- a/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "এটি ব্যয়কারীকে এই টোকেনটি ব্যবহার করার অনুমতি দেয় যতক্ষণ না আপনি অনুমোদন প্রত্যাহার করেন অথবা এটির মেয়াদ শেষ হয়ে যায়।"; "simulation.warning.nft_collection_approval.title" = "সম্পূর্ণ NFT সংগ্রহের অ্যাক্সেসের অনুরোধ করা হয়েছে"; "simulation.warning.unlimited_token_approval.title" = "সীমাহীন টোকেন অনুমোদন"; -"transfer.review_request" = "পর্যালোচনার অনুরোধ"; \ No newline at end of file +"transfer.review_request" = "পর্যালোচনার অনুরোধ"; +"wallet.portfolio.title" = "পোর্টফোলিও"; +"wallet.portfolio.footer" = "বর্তমান মালিকানা এবং বাজার মূল্যের উপর ভিত্তি করে আনুমানিক মূল্য।"; +"wallet_connect.permissions.title" = "অনুমতি"; +"wallet_connect.permissions.view_balance" = "আপনার ব্যালেন্স এবং কার্যকলাপ দেখুন"; +"wallet_connect.permissions.approval_requests" = "অনুমোদনের অনুরোধ পাঠান"; +"wallet_connect.permissions.move_funds" = "অনুমতি ছাড়া তহবিল স্থানান্তর করুন"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings index 32f1b1465..60b1fb7b8 100644 --- a/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "To dává útratě přístup k používání tohoto tokenu, dokud schválení nezrušíte nebo dokud nevyprší jeho platnost."; "simulation.warning.nft_collection_approval.title" = "Požadován plný přístup k NFT kolekci"; "simulation.warning.unlimited_token_approval.title" = "Neomezené schvalování tokenů"; -"transfer.review_request" = "Žádost o kontrolu"; \ No newline at end of file +"transfer.review_request" = "Žádost o kontrolu"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Odhadovaná hodnota na základě aktuálních aktiv a tržních cen."; +"wallet_connect.permissions.title" = "Oprávnění"; +"wallet_connect.permissions.view_balance" = "Zobrazení zůstatku a aktivity"; +"wallet_connect.permissions.approval_requests" = "Odeslat žádosti o schválení"; +"wallet_connect.permissions.move_funds" = "Převod finančních prostředků bez povolení"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings index 07d12d0f7..f15ec6509 100644 --- a/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Dette giver brugeren adgang til at bruge denne token, indtil du tilbagekalder godkendelsen, eller den udløber."; "simulation.warning.nft_collection_approval.title" = "Fuld adgang til NFT-samling anmodes"; "simulation.warning.unlimited_token_approval.title" = "Ubegrænset tokengodkendelse"; -"transfer.review_request" = "Anmodning om gennemgang"; \ No newline at end of file +"transfer.review_request" = "Anmodning om gennemgang"; +"wallet.portfolio.title" = "Portefølje"; +"wallet.portfolio.footer" = "Estimeret værdi baseret på nuværende beholdninger og markedspriser."; +"wallet_connect.permissions.title" = "Tilladelser"; +"wallet_connect.permissions.view_balance" = "Se din saldo og aktivitet"; +"wallet_connect.permissions.approval_requests" = "Send godkendelsesanmodninger"; +"wallet_connect.permissions.move_funds" = "Flytte penge uden tilladelse"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings index 82e2c6aed..324a2208f 100644 --- a/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Dadurch erhält der Ausgeber Zugriff auf dieses Token, bis Sie die Genehmigung widerrufen oder es abläuft."; "simulation.warning.nft_collection_approval.title" = "Vollständiger Zugriff auf die NFT-Sammlung angefordert"; "simulation.warning.unlimited_token_approval.title" = "Unbegrenzte Token-Genehmigung"; -"transfer.review_request" = "Überprüfungsanfrage"; \ No newline at end of file +"transfer.review_request" = "Überprüfungsanfrage"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Geschätzter Wert basierend auf dem aktuellen Bestand und den Marktpreisen."; +"wallet_connect.permissions.title" = "Berechtigungen"; +"wallet_connect.permissions.view_balance" = "Sehen Sie Ihren Kontostand und Ihre Aktivitäten ein."; +"wallet_connect.permissions.approval_requests" = "Genehmigungsanfragen senden"; +"wallet_connect.permissions.move_funds" = "Gelder ohne Genehmigung transferieren"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings index a136aa973..df89de52b 100644 --- a/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "This gives the spender access to use this token until you revoke the approval or it expires."; "simulation.warning.nft_collection_approval.title" = "Full NFT collection access requested"; "simulation.warning.unlimited_token_approval.title" = "Unlimited token approval"; -"transfer.review_request" = "Review Request"; \ No newline at end of file +"transfer.review_request" = "Review Request"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; +"wallet_connect.permissions.title" = "Permissions"; +"wallet_connect.permissions.view_balance" = "View your balance and activity"; +"wallet_connect.permissions.approval_requests" = "Send approval requests"; +"wallet_connect.permissions.move_funds" = "Move funds without permission"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings index 6c52a8460..0067d80da 100644 --- a/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Esto le da al gastador acceso para usar este token hasta que revoque la aprobación o expire."; "simulation.warning.nft_collection_approval.title" = "Se solicita acceso completo a la colección NFT"; "simulation.warning.unlimited_token_approval.title" = "Aprobación ilimitada de tokens"; -"transfer.review_request" = "Solicitud de revisión"; \ No newline at end of file +"transfer.review_request" = "Solicitud de revisión"; +"wallet.portfolio.title" = "Cartera"; +"wallet.portfolio.footer" = "Valor estimado basado en las tenencias actuales y los precios de mercado."; +"wallet_connect.permissions.title" = "Permisos"; +"wallet_connect.permissions.view_balance" = "Consulta tu saldo y actividad."; +"wallet_connect.permissions.approval_requests" = "Enviar solicitudes de aprobación"; +"wallet_connect.permissions.move_funds" = "Transferir fondos sin autorización"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings index adfaee948..b230f1bfb 100644 --- a/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "این به خرج‌کننده دسترسی می‌دهد تا زمانی که تأییدیه را لغو کنید یا منقضی شود، از این توکن استفاده کند."; "simulation.warning.nft_collection_approval.title" = "دسترسی کامل به مجموعه NFT درخواست شد"; "simulation.warning.unlimited_token_approval.title" = "تایید نامحدود توکن"; -"transfer.review_request" = "درخواست بررسی"; \ No newline at end of file +"transfer.review_request" = "درخواست بررسی"; +"wallet.portfolio.title" = "نمونه کارها"; +"wallet.portfolio.footer" = "ارزش تخمینی بر اساس دارایی‌های فعلی و قیمت‌های بازار."; +"wallet_connect.permissions.title" = "مجوزها"; +"wallet_connect.permissions.view_balance" = "مشاهده موجودی و فعالیت خود"; +"wallet_connect.permissions.approval_requests" = "ارسال درخواست‌های تأیید"; +"wallet_connect.permissions.move_funds" = "جابجایی وجه بدون اجازه"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings index 4b636d60d..86f876351 100644 --- a/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Nagbibigay ito sa gumagastos ng access na gamitin ang token na ito hanggang sa bawiin mo ang pag-apruba o hanggang sa mag-expire ito."; "simulation.warning.nft_collection_approval.title" = "Hiniling ang kumpletong access sa koleksyon ng NFT"; "simulation.warning.unlimited_token_approval.title" = "Walang limitasyong pag-apruba ng token"; -"transfer.review_request" = "Kahilingan sa Pagsusuri"; \ No newline at end of file +"transfer.review_request" = "Kahilingan sa Pagsusuri"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Tinatayang halaga batay sa kasalukuyang mga hawak at presyo sa merkado."; +"wallet_connect.permissions.title" = "Mga Pahintulot"; +"wallet_connect.permissions.view_balance" = "Tingnan ang iyong balanse at aktibidad"; +"wallet_connect.permissions.approval_requests" = "Magpadala ng mga kahilingan sa pag-apruba"; +"wallet_connect.permissions.move_funds" = "Ilipat ang mga pondo nang walang pahintulot"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings index bf98d295c..da703745c 100644 --- a/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Cela donne au détenteur du jeton l'accès à utiliser jusqu'à ce que vous révoquiez l'autorisation ou que celle-ci expire."; "simulation.warning.nft_collection_approval.title" = "Demande d'accès à l'intégralité de la collection NFT"; "simulation.warning.unlimited_token_approval.title" = "Approbation illimitée des jetons"; -"transfer.review_request" = "Demande de révision"; \ No newline at end of file +"transfer.review_request" = "Demande de révision"; +"wallet.portfolio.title" = "Portefeuille"; +"wallet.portfolio.footer" = "Valeur estimée basée sur les avoirs actuels et les prix du marché."; +"wallet_connect.permissions.title" = "Autorisations"; +"wallet_connect.permissions.view_balance" = "Consultez votre solde et votre activité"; +"wallet_connect.permissions.approval_requests" = "Envoyer les demandes d'approbation"; +"wallet_connect.permissions.move_funds" = "Transférer des fonds sans autorisation"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings index 6b7b3fae7..9959523f9 100644 --- a/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Wannan yana ba mai kashe kuɗi damar amfani da wannan alamar har sai kun soke amincewa ko kuma ta ƙare."; "simulation.warning.nft_collection_approval.title" = "An nemi cikakken damar tattara NFT"; "simulation.warning.unlimited_token_approval.title" = "Amincewa da alamar mara iyaka"; -"transfer.review_request" = "Buƙatar Bita"; \ No newline at end of file +"transfer.review_request" = "Buƙatar Bita"; +"wallet.portfolio.title" = "Fayil ɗin Fayil"; +"wallet.portfolio.footer" = "Kimanta darajar bisa ga hannun jari na yanzu da farashin kasuwa."; +"wallet_connect.permissions.title" = "Izini"; +"wallet_connect.permissions.view_balance" = "Duba ma'aunin ku da ayyukan ku"; +"wallet_connect.permissions.approval_requests" = "Aika buƙatun amincewa"; +"wallet_connect.permissions.move_funds" = "Motsa kuɗi ba tare da izini ba"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings index ea3c8ec18..c955cf158 100644 --- a/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "זה נותן למוציא גישה להשתמש באסימון זה עד שתבטל את האישור או שהוא יפוג תוקפו."; "simulation.warning.nft_collection_approval.title" = "התבקשה גישה מלאה לאוסף NFT"; "simulation.warning.unlimited_token_approval.title" = "אישור אסימונים ללא הגבלה"; -"transfer.review_request" = "בקשת סקירה"; \ No newline at end of file +"transfer.review_request" = "בקשת סקירה"; +"wallet.portfolio.title" = "תִיק"; +"wallet.portfolio.footer" = "שווי משוער המבוסס על אחזקות נוכחיות ומחירי שוק."; +"wallet_connect.permissions.title" = "הרשאות"; +"wallet_connect.permissions.view_balance" = "צפה ביתרה ובפעילות שלך"; +"wallet_connect.permissions.approval_requests" = "שלח בקשות אישור"; +"wallet_connect.permissions.move_funds" = "העברת כספים ללא אישור"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings index e9afe8c5e..75d571637 100644 --- a/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "इससे खर्च करने वाले को इस टोकन का उपयोग तब तक करने की अनुमति मिलती है जब तक आप अनुमोदन रद्द नहीं कर देते या यह समाप्त नहीं हो जाता।"; "simulation.warning.nft_collection_approval.title" = "संपूर्ण एनएफटी संग्रह तक पहुंच का अनुरोध किया गया है"; "simulation.warning.unlimited_token_approval.title" = "असीमित टोकन अनुमोदन"; -"transfer.review_request" = "समीक्षा अनुरोध"; \ No newline at end of file +"transfer.review_request" = "समीक्षा अनुरोध"; +"wallet.portfolio.title" = "पोर्टफोलियो"; +"wallet.portfolio.footer" = "वर्तमान होल्डिंग्स और बाजार मूल्यों के आधार पर अनुमानित मूल्य।"; +"wallet_connect.permissions.title" = "अनुमतियां"; +"wallet_connect.permissions.view_balance" = "अपना बैलेंस और गतिविधि देखें"; +"wallet_connect.permissions.approval_requests" = "अनुमोदन अनुरोध भेजें"; +"wallet_connect.permissions.move_funds" = "बिना अनुमति के धनराशि स्थानांतरित करना"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings index a2424836a..d9ac05bbd 100644 --- a/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Ini memberi pihak yang mengeluarkan dana akses untuk menggunakan token ini hingga Anda mencabut persetujuan atau token tersebut kedaluwarsa."; "simulation.warning.nft_collection_approval.title" = "Akses penuh ke koleksi NFT diminta."; "simulation.warning.unlimited_token_approval.title" = "Persetujuan token tanpa batas"; -"transfer.review_request" = "Permintaan Peninjauan"; \ No newline at end of file +"transfer.review_request" = "Permintaan Peninjauan"; +"wallet.portfolio.title" = "Portofolio"; +"wallet.portfolio.footer" = "Perkiraan nilai berdasarkan kepemilikan saat ini dan harga pasar."; +"wallet_connect.permissions.title" = "Izin"; +"wallet_connect.permissions.view_balance" = "Lihat saldo dan aktivitas Anda"; +"wallet_connect.permissions.approval_requests" = "Kirim permintaan persetujuan"; +"wallet_connect.permissions.move_funds" = "Memindahkan dana tanpa izin"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings index 7fc2a18ca..03bb2327b 100644 --- a/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Ciò consente allo spender di utilizzare questo token finché non revochi l'approvazione o finché non scade."; "simulation.warning.nft_collection_approval.title" = "È richiesto l'accesso completo alla collezione NFT"; "simulation.warning.unlimited_token_approval.title" = "Approvazione token illimitata"; -"transfer.review_request" = "Richiesta di revisione"; \ No newline at end of file +"transfer.review_request" = "Richiesta di revisione"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Valore stimato in base alle partecipazioni attuali e ai prezzi di mercato."; +"wallet_connect.permissions.title" = "Autorizzazioni"; +"wallet_connect.permissions.view_balance" = "Visualizza il tuo saldo e la tua attività"; +"wallet_connect.permissions.approval_requests" = "Invia richieste di approvazione"; +"wallet_connect.permissions.move_funds" = "Trasferire fondi senza autorizzazione"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings index fd1ced556..8d055a43e 100644 --- a/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "これにより、承認を取り消すか期限が切れるまで、支出者はこのトークンを使用できるようになります。"; "simulation.warning.nft_collection_approval.title" = "NFTコレクションへのフルアクセスをリクエスト"; "simulation.warning.unlimited_token_approval.title" = "無制限のトークン承認"; -"transfer.review_request" = "レビューリクエスト"; \ No newline at end of file +"transfer.review_request" = "レビューリクエスト"; +"wallet.portfolio.title" = "ポートフォリオ"; +"wallet.portfolio.footer" = "現在の保有資産と市場価格に基づいた推定値。"; +"wallet_connect.permissions.title" = "権限"; +"wallet_connect.permissions.view_balance" = "残高とアクティビティを確認する"; +"wallet_connect.permissions.approval_requests" = "承認依頼を送信する"; +"wallet_connect.permissions.move_funds" = "許可なく資金を移動させる"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings index a4e71bdca..c0cccdefe 100644 --- a/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "이렇게 하면 사용자가 승인을 취소하거나 만료될 때까지 해당 토큰을 사용할 수 있습니다."; "simulation.warning.nft_collection_approval.title" = "NFT 컬렉션 전체 접근 권한이 요청되었습니다."; "simulation.warning.unlimited_token_approval.title" = "무제한 토큰 승인"; -"transfer.review_request" = "검토 요청"; \ No newline at end of file +"transfer.review_request" = "검토 요청"; +"wallet.portfolio.title" = "포트폴리오"; +"wallet.portfolio.footer" = "현재 보유량과 시장 가격을 기준으로 산정한 추정 가치입니다."; +"wallet_connect.permissions.title" = "권한"; +"wallet_connect.permissions.view_balance" = "잔액과 활동 내역을 확인하세요"; +"wallet_connect.permissions.approval_requests" = "승인 요청 보내기"; +"wallet_connect.permissions.move_funds" = "허가 없이 자금을 이체하세요"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings index 59f3ae19e..2e5c03034 100644 --- a/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Ini memberi pembeli akses untuk menggunakan token ini sehingga anda membatalkan kelulusan atau ia tamat tempoh."; "simulation.warning.nft_collection_approval.title" = "Akses koleksi NFT penuh diminta"; "simulation.warning.unlimited_token_approval.title" = "Kelulusan token tanpa had"; -"transfer.review_request" = "Permintaan Semakan"; \ No newline at end of file +"transfer.review_request" = "Permintaan Semakan"; +"wallet.portfolio.title" = "Portfolio"; +"wallet.portfolio.footer" = "Anggaran nilai berdasarkan pegangan semasa dan harga pasaran."; +"wallet_connect.permissions.title" = "Kebenaran"; +"wallet_connect.permissions.view_balance" = "Lihat keseimbangan dan aktiviti anda"; +"wallet_connect.permissions.approval_requests" = "Hantar permintaan kelulusan"; +"wallet_connect.permissions.move_funds" = "Pindahkan dana tanpa kebenaran"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings index fecff8e6a..b8d07c1ed 100644 --- a/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Dit geeft de gebruiker toegang tot het gebruik van dit token totdat u de goedkeuring intrekt of het token verloopt."; "simulation.warning.nft_collection_approval.title" = "Volledige toegang tot de NFT-collectie aangevraagd"; "simulation.warning.unlimited_token_approval.title" = "Onbeperkte tokengoedkeuring"; -"transfer.review_request" = "Beoordelingsverzoek"; \ No newline at end of file +"transfer.review_request" = "Beoordelingsverzoek"; +"wallet.portfolio.title" = "Portefeuille"; +"wallet.portfolio.footer" = "Geschatte waarde op basis van de huidige portefeuille en marktprijzen."; +"wallet_connect.permissions.title" = "Toestemmingen"; +"wallet_connect.permissions.view_balance" = "Bekijk je saldo en activiteit"; +"wallet_connect.permissions.approval_requests" = "Verzoeken om goedkeuring verzenden"; +"wallet_connect.permissions.move_funds" = "Geld overmaken zonder toestemming"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings index df40c8425..b294fc4a0 100644 --- a/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Dzięki temu osoba wydająca token uzyskuje dostęp do jego wykorzystania do momentu odwołania zatwierdzenia lub wygaśnięcia."; "simulation.warning.nft_collection_approval.title" = "Zażądano pełnego dostępu do kolekcji NFT"; "simulation.warning.unlimited_token_approval.title" = "Nieograniczone zatwierdzanie tokenów"; -"transfer.review_request" = "Prośba o przegląd"; \ No newline at end of file +"transfer.review_request" = "Prośba o przegląd"; +"wallet.portfolio.title" = "Teczka"; +"wallet.portfolio.footer" = "Szacunkowa wartość oparta na bieżących zapasach i cenach rynkowych."; +"wallet_connect.permissions.title" = "Uprawnienia"; +"wallet_connect.permissions.view_balance" = "Wyświetl swoje saldo i aktywność"; +"wallet_connect.permissions.approval_requests" = "Wyślij prośby o zatwierdzenie"; +"wallet_connect.permissions.move_funds" = "Przelewanie środków bez pozwolenia"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings index 7d4be0cdb..dd63bd6a1 100644 --- a/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Isso dá ao usuário acesso ao uso desse token até que você revogue a aprovação ou ele expire."; "simulation.warning.nft_collection_approval.title" = "É solicitado acesso à coleção completa de NFTs."; "simulation.warning.unlimited_token_approval.title" = "Aprovação ilimitada de tokens"; -"transfer.review_request" = "Solicitação de revisão"; \ No newline at end of file +"transfer.review_request" = "Solicitação de revisão"; +"wallet.portfolio.title" = "Portfólio"; +"wallet.portfolio.footer" = "Valor estimado com base nas participações atuais e nos preços de mercado."; +"wallet_connect.permissions.title" = "Permissões"; +"wallet_connect.permissions.view_balance" = "Veja seu saldo e atividade"; +"wallet_connect.permissions.approval_requests" = "Enviar solicitações de aprovação"; +"wallet_connect.permissions.move_funds" = "Movimentar fundos sem autorização"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings index eb8250046..beb12abca 100644 --- a/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Aceasta îi oferă utilizatorului acces la utilizarea acestui token până când îi revocați aprobarea sau expiră."; "simulation.warning.nft_collection_approval.title" = "Acces complet la colecția NFT solicitat"; "simulation.warning.unlimited_token_approval.title" = "Aprobare nelimitată de tokenuri"; -"transfer.review_request" = "Cerere de revizuire"; \ No newline at end of file +"transfer.review_request" = "Cerere de revizuire"; +"wallet.portfolio.title" = "Portofoliu"; +"wallet.portfolio.footer" = "Valoare estimată pe baza deținerilor actuale și a prețurilor de piață."; +"wallet_connect.permissions.title" = "Permisiuni"; +"wallet_connect.permissions.view_balance" = "Vizualizați soldul și activitatea dvs."; +"wallet_connect.permissions.approval_requests" = "Trimiteți cereri de aprobare"; +"wallet_connect.permissions.move_funds" = "Mută ​​fonduri fără permisiune"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings index a8110661c..bb8edb751 100644 --- a/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Это дает плательщику доступ к использованию этого токена до тех пор, пока вы не отзовете разрешение или он не истечет."; "simulation.warning.nft_collection_approval.title" = "Запрошен полный доступ к коллекции NFT."; "simulation.warning.unlimited_token_approval.title" = "Неограниченное количество одобрений токенов"; -"transfer.review_request" = "Подтвердить запрос"; \ No newline at end of file +"transfer.review_request" = "Подтвердить запрос"; +"wallet.portfolio.title" = "Портфель"; +"wallet.portfolio.footer" = "Оценочная стоимость рассчитана на основе текущих активов и рыночных цен."; +"wallet_connect.permissions.title" = "Разрешения"; +"wallet_connect.permissions.view_balance" = "Просматривать баланс и активность"; +"wallet_connect.permissions.approval_requests" = "Отправлять запросы на подтверждение"; +"wallet_connect.permissions.move_funds" = "Перевод средств без разрешения"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings index 0e09519b2..c717c1b23 100644 --- a/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Hii inampa mtumiaji uwezo wa kutumia tokeni hii hadi utakapobatilisha idhini au itakapoisha muda wake."; "simulation.warning.nft_collection_approval.title" = "Ufikiaji kamili wa ukusanyaji wa NFT umeombwa"; "simulation.warning.unlimited_token_approval.title" = "Idhini ya tokeni isiyo na kikomo"; -"transfer.review_request" = "Ombi la Uhakiki"; \ No newline at end of file +"transfer.review_request" = "Ombi la Uhakiki"; +"wallet.portfolio.title" = "Kwingineko"; +"wallet.portfolio.footer" = "Thamani inayokadiriwa kulingana na hisa za sasa na bei za soko."; +"wallet_connect.permissions.title" = "Ruhusa"; +"wallet_connect.permissions.view_balance" = "Tazama salio na shughuli zako"; +"wallet_connect.permissions.approval_requests" = "Tuma maombi ya idhini"; +"wallet_connect.permissions.move_funds" = "Hamisha fedha bila ruhusa"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings index a7da76b40..e8feafb4a 100644 --- a/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "これにより ผู้ใช้สามารถใช้โทเค็นนี้ได้จนกว่าคุณจะเพิกถอนการอนุมัติหรือโทเค็นหมดอายุ"; "simulation.warning.nft_collection_approval.title" = "ขอสิทธิ์เข้าถึงคอลเลกชัน NFT ทั้งหมด"; "simulation.warning.unlimited_token_approval.title" = "อนุมัติโทเค็นได้ไม่จำกัดจำนวน"; -"transfer.review_request" = "คำขอตรวจสอบ"; \ No newline at end of file +"transfer.review_request" = "คำขอตรวจสอบ"; +"wallet.portfolio.title" = "ผลงาน"; +"wallet.portfolio.footer" = "มูลค่าโดยประมาณคำนวณจากสินทรัพย์ที่มีอยู่และราคาตลาด"; +"wallet_connect.permissions.title" = "สิทธิ์การเข้าถึง"; +"wallet_connect.permissions.view_balance" = "ตรวจสอบยอดเงินคงเหลือและกิจกรรมของคุณ"; +"wallet_connect.permissions.approval_requests" = "ส่งคำขออนุมัติ"; +"wallet_connect.permissions.move_funds" = "โอนเงินโดยไม่ได้รับอนุญาต"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings index 98b4b3ab3..aaf5309e9 100644 --- a/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Bu, harcama yapan kişiye, siz onayı iptal edene veya süresi dolana kadar bu belirteci kullanma erişimi sağlar."; "simulation.warning.nft_collection_approval.title" = "NFT koleksiyonunun tamamına erişim talep edildi."; "simulation.warning.unlimited_token_approval.title" = "Sınırsız token onayı"; -"transfer.review_request" = "İnceleme Talebi"; \ No newline at end of file +"transfer.review_request" = "İnceleme Talebi"; +"wallet.portfolio.title" = "Portföy"; +"wallet.portfolio.footer" = "Mevcut varlıklar ve piyasa fiyatlarına göre tahmini değer."; +"wallet_connect.permissions.title" = "İzinler"; +"wallet_connect.permissions.view_balance" = "Bakiyenizi ve işlemlerinizi görüntüleyin."; +"wallet_connect.permissions.approval_requests" = "Onay isteklerini gönderin"; +"wallet_connect.permissions.move_funds" = "İzinsiz para transferi"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings index 01b8bde7d..cb37526ac 100644 --- a/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Це надає споживачеві доступ до використання цього токена, доки ви не скасуєте схвалення або термін його дії не закінчиться."; "simulation.warning.nft_collection_approval.title" = "Запитується повний доступ до колекції NFT"; "simulation.warning.unlimited_token_approval.title" = "Необмежене схвалення токенів"; -"transfer.review_request" = "Запит на перегляд"; \ No newline at end of file +"transfer.review_request" = "Запит на перегляд"; +"wallet.portfolio.title" = "Портфоліо"; +"wallet.portfolio.footer" = "Оціночна вартість базується на поточних запасах та ринкових цінах."; +"wallet_connect.permissions.title" = "Дозволи"; +"wallet_connect.permissions.view_balance" = "Перегляд вашого балансу та активності"; +"wallet_connect.permissions.approval_requests" = "Надсилати запити на схвалення"; +"wallet_connect.permissions.move_funds" = "Переміщення коштів без дозволу"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings index f49584cb4..3243ede07 100644 --- a/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "یہ خرچ کرنے والے کو اس ٹوکن کو استعمال کرنے تک رسائی دیتا ہے جب تک کہ آپ منظوری منسوخ نہیں کرتے یا اس کی میعاد ختم نہیں ہوجاتی۔"; "simulation.warning.nft_collection_approval.title" = "مکمل NFT جمع کرنے تک رسائی کی درخواست کی گئی۔"; "simulation.warning.unlimited_token_approval.title" = "لامحدود ٹوکن کی منظوری"; -"transfer.review_request" = "نظرثانی کی درخواست"; \ No newline at end of file +"transfer.review_request" = "نظرثانی کی درخواست"; +"wallet.portfolio.title" = "پورٹ فولیو"; +"wallet.portfolio.footer" = "موجودہ ہولڈنگز اور مارکیٹ کی قیمتوں کی بنیاد پر تخمینی قیمت۔"; +"wallet_connect.permissions.title" = "اجازتیں"; +"wallet_connect.permissions.view_balance" = "اپنا توازن اور سرگرمی دیکھیں"; +"wallet_connect.permissions.approval_requests" = "منظوری کی درخواستیں بھیجیں۔"; +"wallet_connect.permissions.move_funds" = "اجازت کے بغیر فنڈز منتقل کریں۔"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings index 021ff58b2..fe27f0684 100644 --- a/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "Điều này cho phép người chi tiêu có quyền sử dụng mã thông báo này cho đến khi bạn thu hồi sự chấp thuận hoặc mã thông báo hết hạn."; "simulation.warning.nft_collection_approval.title" = "Yêu cầu quyền truy cập đầy đủ vào bộ sưu tập NFT"; "simulation.warning.unlimited_token_approval.title" = "Phê duyệt mã thông báo không giới hạn"; -"transfer.review_request" = "Yêu cầu xem xét"; \ No newline at end of file +"transfer.review_request" = "Yêu cầu xem xét"; +"wallet.portfolio.title" = "Danh mục đầu tư"; +"wallet.portfolio.footer" = "Giá trị ước tính dựa trên lượng hàng tồn kho hiện có và giá thị trường."; +"wallet_connect.permissions.title" = "Quyền hạn"; +"wallet_connect.permissions.view_balance" = "Xem số dư và hoạt động của bạn"; +"wallet_connect.permissions.approval_requests" = "Gửi yêu cầu phê duyệt"; +"wallet_connect.permissions.move_funds" = "Chuyển tiền mà không được phép"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings index 1fd66797a..80cf51a42 100644 --- a/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "这样,消费者就可以一直使用该代币,直到你撤销授权或代币过期为止。"; "simulation.warning.nft_collection_approval.title" = "请求访问完整的NFT收藏集"; "simulation.warning.unlimited_token_approval.title" = "无限代币批准"; -"transfer.review_request" = "审查请求"; \ No newline at end of file +"transfer.review_request" = "审查请求"; +"wallet.portfolio.title" = "文件夹"; +"wallet.portfolio.footer" = "根据现有持仓和市场价格估算的价值。"; +"wallet_connect.permissions.title" = "权限"; +"wallet_connect.permissions.view_balance" = "查看您的余额和活动"; +"wallet_connect.permissions.approval_requests" = "发送审批请求"; +"wallet_connect.permissions.move_funds" = "未经许可转移资金"; \ No newline at end of file diff --git a/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings index aa4c122a0..40392e86e 100644 --- a/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings @@ -557,4 +557,10 @@ "simulation.warning.unlimited_token_approval.description" = "這樣,消費者就可以一直使用該代幣,直到你撤銷授權或代幣過期為止。"; "simulation.warning.nft_collection_approval.title" = "請求訪問完整的NFT收藏集"; "simulation.warning.unlimited_token_approval.title" = "無限代幣批准"; -"transfer.review_request" = "審查請求"; \ No newline at end of file +"transfer.review_request" = "審查請求"; +"wallet.portfolio.title" = "資料夾"; +"wallet.portfolio.footer" = "根據現有持倉和市場價格估算的價值。"; +"wallet_connect.permissions.title" = "權限"; +"wallet_connect.permissions.view_balance" = "查看您的餘額和活動"; +"wallet_connect.permissions.approval_requests" = "發送審批請求"; +"wallet_connect.permissions.move_funds" = "未經許可轉移資金"; \ No newline at end of file diff --git a/Packages/PrimitivesComponents/Sources/ViewModels/AssetViewModel.swift b/Packages/PrimitivesComponents/Sources/ViewModels/AssetViewModel.swift index e69d72c2c..076a29696 100644 --- a/Packages/PrimitivesComponents/Sources/ViewModels/AssetViewModel.swift +++ b/Packages/PrimitivesComponents/Sources/ViewModels/AssetViewModel.swift @@ -2,7 +2,7 @@ import Foundation import Primitives import Components -public struct AssetViewModel: Sendable, Identifiable { +public struct AssetViewModel: Sendable, Identifiable, AssetPreviewable { public let asset: Asset public init(asset: Asset) { diff --git a/Packages/PrimitivesComponents/Sources/Views/AssetPreviewView.swift b/Packages/PrimitivesComponents/Sources/Views/AssetPreviewView.swift index 1ef35ae02..db85fd4b4 100644 --- a/Packages/PrimitivesComponents/Sources/Views/AssetPreviewView.swift +++ b/Packages/PrimitivesComponents/Sources/Views/AssetPreviewView.swift @@ -4,26 +4,47 @@ import SwiftUI import Components import Style -public struct AssetPreviewView: View { - private let model: AssetViewModel +public protocol AssetPreviewable { + var assetImage: AssetImage { get } + var name: String { get } + var subtitleSymbol: String? { get } +} + +public struct AssetPreviewView: View { + public enum SubtitleLayout { + case horizontal + case vertical + } - public init(model: AssetViewModel) { + private let model: Model + private let subtitleLayout: SubtitleLayout + + public init(model: Model, subtitleLayout: SubtitleLayout = .horizontal) { self.model = model + self.subtitleLayout = subtitleLayout } public var body: some View { VStack(spacing: .medium) { AssetImageView(assetImage: model.assetImage, size: .image.semiLarge) - HStack(alignment: .bottom, spacing: .tiny) { + layout { Text(model.name) .textStyle(.headline) + .lineLimit(1) if let symbol = model.subtitleSymbol { Text(symbol) .textStyle(TextStyle(font: .subheadline, color: Colors.secondaryText, fontWeight: .medium)) + .lineLimit(1) } } - .lineLimit(1) + } + } + + private var layout: AnyLayout { + switch subtitleLayout { + case .horizontal: AnyLayout(HStackLayout(alignment: .lastTextBaseline, spacing: .tiny)) + case .vertical: AnyLayout(VStackLayout(spacing: .tiny)) } } }