From 813f5dc24559800d9ec2639622c6093df1dd7794 Mon Sep 17 00:00:00 2001 From: gemdev111 <171273137+gemdev111@users.noreply.github.com> Date: Fri, 13 Mar 2026 19:22:17 +0200 Subject: [PATCH 1/4] Set .noData when assets are empty When there are no assets, set state = .noData and return early instead of silently returning. Also replace `!assets.isEmpty` with `assets.isNotEmpty` for clarity, preventing the view from showing a loading state when there's no data. --- .../Sources/ViewModels/WalletPortfolioSceneViewModel.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift index 58f54c7f7..0e7096d37 100644 --- a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift +++ b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift @@ -65,7 +65,10 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { extension WalletPortfolioSceneViewModel { public func fetch() async { - guard !assets.isEmpty else { return } + guard assets.isNotEmpty else { + state = .noData + return + } state = .loading do { let rate = try priceService.getRate(currency: currencyCode) From 86bf7c4a4154df92cdbcb11e282af9c31cf503a5 Mon Sep 17 00:00:00 2001 From: gemdev111 <171273137+gemdev111@users.noreply.github.com> Date: Mon, 16 Mar 2026 16:25:15 +0200 Subject: [PATCH 2/4] Pass assets directly to WalletPortfolioSceneViewModel - Pass assets from parent instead of observing DB via ObservableQuery - Fixes portfolio refreshing on every price stream event - Handle empty assets as .noData at the state level via chartState --- .../Sources/Scenes/WalletPortfolioScene.swift | 4 ---- .../WalletPortfolioSceneViewModel.swift | 19 +++++++------------ .../Wallet/WalletNavigationStack.swift | 1 + 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift index 6c7b61d3d..98bf82ade 100644 --- a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift +++ b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift @@ -3,7 +3,6 @@ import SwiftUI import Components import PrimitivesComponents -import Store public struct WalletPortfolioScene: View { @State private var model: WalletPortfolioSceneViewModel @@ -24,9 +23,6 @@ public struct WalletPortfolioScene: View { .navigationTitle(model.navigationTitle) .navigationBarTitleDisplayMode(.inline) .toolbarDismissItem(type: .close, placement: .cancellationAction) - .onChangeBindQuery(model.assetsQuery) { _, _ in - Task { await model.fetch() } - } } } } diff --git a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift index 0e7096d37..e0490e51c 100644 --- a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift +++ b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift @@ -6,12 +6,12 @@ import Components import Formatters import PrimitivesComponents import PriceService -import Store @Observable @MainActor public final class WalletPortfolioSceneViewModel: ChartListViewable { private let wallet: Wallet + private let assets: [AssetData] private let service: PortfolioService private let priceService: PriceService @@ -21,15 +21,12 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { private let priceFormatter: CurrencyFormatter private let percentFormatter: CurrencyFormatter - public let assetsQuery: ObservableQuery - - private var assets: [AssetData] { assetsQuery.value } - var state: StateViewType = .loading public var selectedPeriod: ChartPeriod = .day public init( wallet: Wallet, + assets: [AssetData], portfolioService: PortfolioService, priceService: PriceService, currencyCode: String @@ -37,19 +34,21 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { self.service = portfolioService self.priceService = priceService self.wallet = wallet + self.assets = assets self.currencyCode = currencyCode self.currencyFormatter = CurrencyFormatter(type: .currency, currencyCode: currencyCode) self.priceFormatter = CurrencyFormatter(currencyCode: currencyCode) self.percentFormatter = CurrencyFormatter(type: .percent, currencyCode: currencyCode) - - self.assetsQuery = ObservableQuery(AssetsRequest(walletId: wallet.walletId, filters: [.enabledBalance]), initialValue: []) } var navigationTitle: String { wallet.name } public var periods: [ChartPeriod] { [.day, .week, .month, .year, .all] } - public var chartState: StateViewType { state.map { $0.chart } } + public var chartState: StateViewType { + guard assets.isNotEmpty else { return .noData } + return state.map { $0.chart } + } var allTimeValues: [ListItemModel] { guard case .data(let data) = state else { return [] } @@ -65,10 +64,6 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { extension WalletPortfolioSceneViewModel { public func fetch() async { - guard assets.isNotEmpty else { - state = .noData - return - } state = .loading do { let rate = try priceService.getRate(currency: currencyCode) diff --git a/Gem/Navigation/Wallet/WalletNavigationStack.swift b/Gem/Navigation/Wallet/WalletNavigationStack.swift index d0633623b..aa58a0f1d 100644 --- a/Gem/Navigation/Wallet/WalletNavigationStack.swift +++ b/Gem/Navigation/Wallet/WalletNavigationStack.swift @@ -225,6 +225,7 @@ struct WalletNavigationStack: View { WalletPortfolioScene( model: WalletPortfolioSceneViewModel( wallet: model.wallet, + assets: model.assets, portfolioService: portfolioService, priceService: priceService, currencyCode: preferences.preferences.currency From 8a269f5f85e8268b40dde9204216324e34c5d992 Mon Sep 17 00:00:00 2001 From: gemdev111 <171273137+gemdev111@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:57:48 +0200 Subject: [PATCH 3/4] Update portfolio scene with ObservableQuery and disclaimer footer - Fetch assets from GRDB via ObservableQuery instead of passing them externally - Add localized portfolio title and estimated value disclaimer - Show All Time High/Low section only when data is available - Add wallet.portfolio.title and wallet.portfolio.footer localization keys --- .../Sources/Scenes/WalletPortfolioScene.swift | 15 ++++++++++++--- .../WalletPortfolioSceneViewModel.swift | 13 +++++++++---- Gem/Navigation/Wallet/WalletNavigationStack.swift | 1 - Packages/Localization/Sources/Localized.swift | 6 ++++++ .../Resources/ar.lproj/Localizable.strings | 4 +++- .../Resources/bn.lproj/Localizable.strings | 4 +++- .../Resources/cs.lproj/Localizable.strings | 4 +++- .../Resources/da.lproj/Localizable.strings | 4 +++- .../Resources/de.lproj/Localizable.strings | 4 +++- .../Resources/en.lproj/Localizable.strings | 4 +++- .../Resources/es.lproj/Localizable.strings | 4 +++- .../Resources/fa.lproj/Localizable.strings | 4 +++- .../Resources/fil.lproj/Localizable.strings | 4 +++- .../Resources/fr.lproj/Localizable.strings | 4 +++- .../Resources/ha.lproj/Localizable.strings | 4 +++- .../Resources/he.lproj/Localizable.strings | 4 +++- .../Resources/hi.lproj/Localizable.strings | 4 +++- .../Resources/id.lproj/Localizable.strings | 4 +++- .../Resources/it.lproj/Localizable.strings | 4 +++- .../Resources/ja.lproj/Localizable.strings | 4 +++- .../Resources/ko.lproj/Localizable.strings | 4 +++- .../Resources/ms.lproj/Localizable.strings | 4 +++- .../Resources/nl.lproj/Localizable.strings | 4 +++- .../Resources/pl.lproj/Localizable.strings | 4 +++- .../Resources/pt-BR.lproj/Localizable.strings | 4 +++- .../Resources/ro.lproj/Localizable.strings | 4 +++- .../Resources/ru.lproj/Localizable.strings | 4 +++- .../Resources/sw.lproj/Localizable.strings | 4 +++- .../Resources/th.lproj/Localizable.strings | 4 +++- .../Resources/tr.lproj/Localizable.strings | 4 +++- .../Resources/uk.lproj/Localizable.strings | 4 +++- .../Resources/ur.lproj/Localizable.strings | 4 +++- .../Resources/vi.lproj/Localizable.strings | 4 +++- .../Resources/zh-Hans.lproj/Localizable.strings | 4 +++- .../Resources/zh-Hant.lproj/Localizable.strings | 4 +++- 35 files changed, 120 insertions(+), 39 deletions(-) diff --git a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift index 98bf82ade..aa0e85054 100644 --- a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift +++ b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift @@ -2,7 +2,9 @@ import SwiftUI import Components +import Localization import PrimitivesComponents +import Store public struct WalletPortfolioScene: View { @State private var model: WalletPortfolioSceneViewModel @@ -14,15 +16,22 @@ public struct WalletPortfolioScene: View { public var body: some View { NavigationStack { ChartListView(model: model) { - Section { - ForEach(model.allTimeValues, id: \.title) { - ListItemView(model: $0) + if model.allTimeValues.isNotEmpty { + Section { + ForEach(model.allTimeValues, id: \.title) { + ListItemView(model: $0) + } + } header: { + Text(model.footerText) + .font(.footnote) + .textCase(nil) } } } .navigationTitle(model.navigationTitle) .navigationBarTitleDisplayMode(.inline) .toolbarDismissItem(type: .close, placement: .cancellationAction) + .bindQuery(model.assetsQuery) } } } diff --git a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift index e0490e51c..ee923345a 100644 --- a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift +++ b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift @@ -4,14 +4,15 @@ import Foundation import Primitives import Components import Formatters +import Localization import PrimitivesComponents import PriceService +import Store @Observable @MainActor public final class WalletPortfolioSceneViewModel: ChartListViewable { private let wallet: Wallet - private let assets: [AssetData] private let service: PortfolioService private let priceService: PriceService @@ -21,12 +22,13 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { private let priceFormatter: CurrencyFormatter private let percentFormatter: CurrencyFormatter + public let assetsQuery: ObservableQuery + var state: StateViewType = .loading public var selectedPeriod: ChartPeriod = .day public init( wallet: Wallet, - assets: [AssetData], portfolioService: PortfolioService, priceService: PriceService, currencyCode: String @@ -34,15 +36,18 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { self.service = portfolioService self.priceService = priceService self.wallet = wallet - self.assets = assets + self.assetsQuery = ObservableQuery(AssetsRequest(walletId: wallet.walletId, filters: [.enabledBalance]), initialValue: []) self.currencyCode = currencyCode self.currencyFormatter = CurrencyFormatter(type: .currency, currencyCode: currencyCode) self.priceFormatter = CurrencyFormatter(currencyCode: currencyCode) self.percentFormatter = CurrencyFormatter(type: .percent, currencyCode: currencyCode) } - var navigationTitle: String { wallet.name } + var navigationTitle: String { Localized.Wallet.Portfolio.title } + var footerText: String { Localized.Wallet.Portfolio.footer } + + private var assets: [AssetData] { assetsQuery.value } public var periods: [ChartPeriod] { [.day, .week, .month, .year, .all] } public var chartState: StateViewType { diff --git a/Gem/Navigation/Wallet/WalletNavigationStack.swift b/Gem/Navigation/Wallet/WalletNavigationStack.swift index 3e4e1eda8..106d51f12 100644 --- a/Gem/Navigation/Wallet/WalletNavigationStack.swift +++ b/Gem/Navigation/Wallet/WalletNavigationStack.swift @@ -214,7 +214,6 @@ struct WalletNavigationStack: View { WalletPortfolioScene( model: WalletPortfolioSceneViewModel( wallet: model.wallet, - assets: model.assets, portfolioService: portfolioService, priceService: priceService, currencyCode: preferences.preferences.currency diff --git a/Packages/Localization/Sources/Localized.swift b/Packages/Localization/Sources/Localized.swift index cba34af91..f74d3a961 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") diff --git a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings index f1658c329..c42c76557 100644 --- a/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ar.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..334f19c76 100644 --- a/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/bn.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..180a167ac 100644 --- a/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/cs.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Estimated value based on current holdings and market prices."; \ 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..2603b1a20 100644 --- a/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/da.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..2aec17da2 100644 --- a/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/de.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Estimated value based on current holdings and market prices."; \ 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..0ec7db50c 100644 --- a/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/en.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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."; \ 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..fb8941c54 100644 --- a/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/es.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..4243f5323 100644 --- a/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fa.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..9464b59f2 100644 --- a/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fil.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Estimated value based on current holdings and market prices."; \ 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..42e74e257 100644 --- a/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/fr.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..6523ba4a4 100644 --- a/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ha.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..37783fd83 100644 --- a/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/he.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..ff79abcaf 100644 --- a/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/hi.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..5ee0ee9fc 100644 --- a/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/id.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..d27675e4f 100644 --- a/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/it.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Estimated value based on current holdings and market prices."; \ 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..c7331da8a 100644 --- a/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ja.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..1a97a225d 100644 --- a/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ko.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..da5c5d4c1 100644 --- a/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ms.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Estimated value based on current holdings and market prices."; \ 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..e68f4c05a 100644 --- a/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/nl.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..828a9bc5e 100644 --- a/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pl.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..593dc0ca0 100644 --- a/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/pt-BR.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..a5b7de313 100644 --- a/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ro.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..76cd91dc0 100644 --- a/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ru.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..5afd8fa28 100644 --- a/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/sw.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..bacb2e723 100644 --- a/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/th.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..48bbecf63 100644 --- a/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/tr.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..870ca6f12 100644 --- a/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/uk.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..3bf1c9bfa 100644 --- a/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/ur.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..134dc7a95 100644 --- a/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/vi.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..33bcdfb67 100644 --- a/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hans.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ 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..9f8327c0d 100644 --- a/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings +++ b/Packages/Localization/Sources/Resources/zh-Hant.lproj/Localizable.strings @@ -557,4 +557,6 @@ "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" = "Portfolio"; +"wallet.portfolio.footer" = "Estimated value based on current holdings and market prices."; \ No newline at end of file From 35c88d287e52a11a1d2a97ac380d8265cf8ab6c4 Mon Sep 17 00:00:00 2001 From: gemdev111 <171273137+gemdev111@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:51:16 +0200 Subject: [PATCH 4/4] Removed footer --- Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift | 4 ---- .../Sources/ViewModels/WalletPortfolioSceneViewModel.swift | 2 -- Packages/Localization/Sources/Localized.swift | 2 -- 3 files changed, 8 deletions(-) diff --git a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift index aa0e85054..88cb9454a 100644 --- a/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift +++ b/Features/WalletTab/Sources/Scenes/WalletPortfolioScene.swift @@ -21,10 +21,6 @@ public struct WalletPortfolioScene: View { ForEach(model.allTimeValues, id: \.title) { ListItemView(model: $0) } - } header: { - Text(model.footerText) - .font(.footnote) - .textCase(nil) } } } diff --git a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift index ee923345a..4ce774f13 100644 --- a/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift +++ b/Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift @@ -45,8 +45,6 @@ public final class WalletPortfolioSceneViewModel: ChartListViewable { } var navigationTitle: String { Localized.Wallet.Portfolio.title } - var footerText: String { Localized.Wallet.Portfolio.footer } - private var assets: [AssetData] { assetsQuery.value } public var periods: [ChartPeriod] { [.day, .week, .month, .year, .all] } diff --git a/Packages/Localization/Sources/Localized.swift b/Packages/Localization/Sources/Localized.swift index a9eadb413..7ccae20bc 100644 --- a/Packages/Localization/Sources/Localized.swift +++ b/Packages/Localization/Sources/Localized.swift @@ -1601,8 +1601,6 @@ public enum Localized { 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") }