You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-10-30] Spend - Right chevron on Currency row is highlighted when hovered when the row is disabled #104010
Version Number: 9.5.9-0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#100674 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.5 / Chrome App Component: Search
Action Performed:
Precondition:
Enable spendFooterSelectors beta.
Go to staging.new.expensify.com
Go to workspace chat.
Create an expense.
Go to Spend > Expenses..
Go offline.
Bulk select the expense.
Click on the footer.
Hover over Currency.
Expected Result:
Right chevron will not be highlighted when hovered when the row is disabled.
Actual Result:
Right chevron is highlighted when hovered when the row is disabled.
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Recommendation: demote, then fix with a small follow-up. Do not revert. The issue is cosmetic and behind the spendFooterSelectors beta. The row correctly ignores clicks; only the chevron's opacity changes on hover.
Smallest fix: hide the chevron while the row is inactive, as other screens do:
Total row, SearchFooterPopup.tsx:107: shouldShowRightIcon={!isTotalLoading}. This row has the same bug while the total is loading.
Root cause details
The PR turns the rows off with interactive={false} but leaves shouldShowRightIcon on (SearchFooterPopup.tsx:106-124).
MenuItem checks interactive before applying the row hover background (MenuItem.tsx:837).
The chevron dimming only checks hover: !isHovered && shouldDimIconRight && styles.opacitySemiTransparent (MenuItem.tsx:1144). On hover the chevron goes to full opacity, even when the row is inactive or disabled. MenuItemChevron.tsx:26 has the same logic.
This logic predates the PR. Most screens avoid it by pairing interactive={!x} with shouldShowRightIcon={!x}, for example WorkspaceOverviewPage.tsx and CategorySettingsPage.tsx. DynamicContactMethodsPage.tsx already shows the same hover in production.
Optional root fix (separate follow-up): in MenuItem.tsx:1144 and MenuItemChevron.tsx:26, keep the chevron dimmed when the row can't be pressed: (!isHovered || !interactive || disabled) && shouldDimIconRight. This affects every inactive row with a chevron, so it needs wider regression testing.
Next Steps: Reply with @MelvinBot implement this to create a draft PR with the smallest fix, or @MelvinBot <your feedback> to refine this analysis.
changed the title [-]Spend - Right chevron on Currency row is highlighted when hovered when the row is disabled[/-][+][Due for payment 2026-10-30] Spend - Right chevron on Currency row is highlighted when hovered when the row is disabled[/+]on Oct 23, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.18-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-10-30. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]
Activity
applause-bot commentedon Oct 14, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/1be23f243458e29de50918719b328f71683e08a8bd3f6a3573d31961e16cd8ff
melvin-bot commentedon Oct 14, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #100674
melvin-bot commentedon Oct 14, 2026
@JS00001 @mkhutornyi you have been assigned to this deploy blocker because you reviewed the offending PR: #100674
melvin-bot commentedon Oct 14, 2026
@truph01 you have been assigned to this deploy blocker because you authored the offending PR: #100674
melvin-bot commentedon Oct 14, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Oct 14, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
mkhutornyi commentedon Oct 14, 2026
I noticed this while testing but not reported since I wasn't sure this is bug.
MelvinBot commentedon Oct 14, 2026
Deploy Blocker Investigation
Causing PR: feat: Add count and spend total selectors to the Spend footer added the footer rows. The hover behavior itself comes from the shared
MenuItemcomponent and already exists in production.Recommendation: demote, then fix with a small follow-up. Do not revert. The issue is cosmetic and behind the
spendFooterSelectorsbeta. The row correctly ignores clicks; only the chevron's opacity changes on hover.Smallest fix: hide the chevron while the row is inactive, as other screens do:
SearchFooterPopup.tsx:118:shouldShowRightIcon={!isTotalLoading && !isOffline}SearchFooterPopup.tsx:107:shouldShowRightIcon={!isTotalLoading}. This row has the same bug while the total is loading.Root cause details
interactive={false}but leavesshouldShowRightIconon (SearchFooterPopup.tsx:106-124).MenuItemchecksinteractivebefore applying the row hover background (MenuItem.tsx:837).!isHovered && shouldDimIconRight && styles.opacitySemiTransparent(MenuItem.tsx:1144). On hover the chevron goes to full opacity, even when the row is inactive or disabled.MenuItemChevron.tsx:26has the same logic.interactive={!x}withshouldShowRightIcon={!x}, for exampleWorkspaceOverviewPage.tsxandCategorySettingsPage.tsx.DynamicContactMethodsPage.tsxalready shows the same hover in production.Optional root fix (separate follow-up): in
MenuItem.tsx:1144andMenuItemChevron.tsx:26, keep the chevron dimmed when the row can't be pressed:(!isHovered || !interactive || disabled) && shouldDimIconRight. This affects every inactive row with a chevron, so it needs wider regression testing.Next Steps: Reply with
@MelvinBot implement thisto create a draft PR with the smallest fix, or@MelvinBot <your feedback>to refine this analysis.view run
mkhutornyi commentedon Oct 14, 2026
Minor UI feedback issue. And the feature is behind a beta. We can demote this
JS00001 commentedon Oct 14, 2026
behind a beta, lets close this but fix it when we enable the beta
[-]Spend - Right chevron on Currency row is highlighted when hovered when the row is disabled[/-][+][Due for payment 2026-10-30] Spend - Right chevron on Currency row is highlighted when hovered when the row is disabled[/+]melvin-bot commentedon Oct 23, 2026
@mkhutornyi / @truph01
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.18-1 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2026-10-30. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]