Skip to content

Updates WalletPortfolioScene#1790

Open
gemdev111 wants to merge 5 commits intomainfrom
wallet-porfolio-empty-handle
Open

Updates WalletPortfolioScene#1790
gemdev111 wants to merge 5 commits intomainfrom
wallet-porfolio-empty-handle

Conversation

@gemdev111
Copy link
Contributor

@gemdev111 gemdev111 commented Mar 13, 2026

  • 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

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.
@gemdev111 gemdev111 self-assigned this Mar 13, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the handling of empty asset states within the wallet portfolio view model. It ensures that when no assets are present, the UI correctly reflects a "no data" state rather than remaining in a loading state or silently returning without updating the UI. This improves user experience by providing clearer feedback.

Highlights

  • Empty State Handling: The fetch() method in WalletPortfolioSceneViewModel now explicitly sets the state to .noData and returns early when the assets collection is empty, preventing a loading state from being displayed incorrectly.
  • Code Clarity: The condition !assets.isEmpty has been replaced with assets.isNotEmpty for improved readability and clarity in the fetch() method.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • Features/WalletTab/Sources/ViewModels/WalletPortfolioSceneViewModel.swift
    • Modified the fetch() method to set state = .noData and return early if assets are empty.
    • Replaced !assets.isEmpty with assets.isNotEmpty for better readability.
Activity
  • No specific activity (comments, reviews) has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses a bug that caused the UI to remain in a loading state when no assets were available. The fix involves an early return in the fetch() method, setting the state to .noData when the assets collection is empty. This prevents the loading state from persisting incorrectly. Additionally, the change improves code readability by replacing !assets.isEmpty with assets.isNotEmpty. The implementation is correct and effectively resolves the issue.

- 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
@gemdev111 gemdev111 changed the title Set .noData when assets are empty Updates WalletPortfolioScene Mar 16, 2026
 - 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants