Skip to content

Conversation

@vsubhuman
Copy link
Member

@vsubhuman vsubhuman commented Jan 22, 2026

Milestone: https://github.com/Emurgo/yoroi-frontend/milestone/156?closed=1

Change Set:


Note

Introduces a new promotional modal and multiple UX/data fixes across portfolio, airdrop, NFTs, and governance flows.

  • Adds CardanoCardDialog (remote-config gated) with new strings, URL constant, and modal wiring in Wallet; persists APP_OPENED_COUNT via LocalStorage API
  • Airdrop: support failed thaw status in UI and totals; refactors Midnight redemption to getRedemptionUtxos and updates Redeem flow; raises funding amount; timeline now marks failed steps
  • Portfolio: renames percentage field to portfolioPercentage; overhauls table sorting (numeric/character handling, symbol-first names), parsing fixes, and chart hook signature (useGetPortfolioTokenChart(tokenInfo, interval)); updates chips/price/total to handle missing data safely
  • NFTs: improve image sizing (fillBox, content width) and details layout; fix networkUrl resolution
  • Governance: ChooseOtherDrepId now accepts ADA handles, resolves to DRep ID via external API, with new validation/errors
  • Misc: avoid redundant route pushes; remove 0-amount token from planned tx map; e2e tests updated (sorting checks, new column key); bump chromedriver to 143.0.4

Written by Cursor Bugbot for commit 23f5a99. This will update automatically on new commits. Configure here.

dependabot bot and others added 30 commits December 26, 2025 03:03
Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 143.0.2 to 143.0.3.
- [Commits](giggio/node-chromedriver@143.0.2...143.0.3)

---
updated-dependencies:
- dependency-name: chromedriver
  dependency-version: 143.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…/e2e-tests/chromedriver-143.0.3

Bump chromedriver from 143.0.2 to 143.0.3 in /packages/e2e-tests
Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 143.0.3 to 143.0.4.
- [Commits](giggio/node-chromedriver@143.0.3...143.0.4)

---
updated-dependencies:
- dependency-name: chromedriver
  dependency-version: 143.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…/e2e-tests/chromedriver-143.0.4

Bump chromedriver from 143.0.3 to 143.0.4 in /packages/e2e-tests
chore: YW-440 Implement Cardano card popup
show failed status from the thaw schedule endpoint
…load

fix second click on the Receive tab causing infinite load
@vsubhuman vsubhuman added this to the 5.21.0 milestone Jan 22, 2026
@vsubhuman vsubhuman requested a review from Nebyt January 22, 2026 16:21
cursor[bot]

This comment was marked as outdated.

<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 16 16" fill="none">
<path
fill-rule="evenodd"
clip-rule="evenodd"
Copy link

Choose a reason for hiding this comment

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

Inconsistent SVG attribute naming convention

Low Severity

The SVG path uses hyphenated attributes fill-rule and clip-rule (lines 275-276) while another SVG path in the same component uses camelCase fillRule and clipRule (lines 285-286). In React/JSX, SVG attributes should consistently use camelCase notation.

Fix in Cursor Fix in Web

};

checkModalState();
}, [data]);
Copy link

Choose a reason for hiding this comment

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

Missing cleanup for async operations in useEffect

Medium Severity

The useEffect runs an async function that performs localStorage operations and potentially calls openModal, but lacks a cleanup function to handle component unmount. If the component unmounts or data changes while the async operation is in progress, it will continue executing and attempt to call openModal and update the module-level hasProcessedThisSession variable after unmount, potentially causing memory leaks and unexpected modal behavior.

Fix in Cursor Fix in Web

Nebyt
Nebyt previously approved these changes Jan 26, 2026
@Nebyt Nebyt self-requested a review January 26, 2026 15:59
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

const redeemableIndex = schedule.thaws.findIndex(thaw => thaw.status === 'redeemable' || thaw.status === 'failed');
if (redeemableIndex >= 0) return redeemableIndex;
const upcomingIndex = schedule.thaws.findIndex(thaw => thaw.status === 'upcoming');
const upcomingIndex = schedule.thaws.findIndex(thaw => thaw.status === 'upcoming' || thaw.status === 'failed');
Copy link

Choose a reason for hiding this comment

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

Redundant failed status check in getCurrentThawIndex

Low Severity

The || thaw.status === 'failed' condition in the second findIndex call is redundant. If any thaw has status 'failed', it would already be found by the first findIndex on line 161, and the function would return before reaching line 163. This dead code adds unnecessary complexity.

Fix in Cursor Fix in Web

[Bump] Nightly Version: 5.20.0.2
Nebyt
Nebyt previously approved these changes Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants