Skip to content

[Due for payment 2026-06-04][Tracking] Consistent Back Navigation #59245

@blimpich

Description

@blimpich

Design Doc

Problem

There is a category of frontend issues related to "back-button" behavior. See this comment for many examples, or search "back button" in App/issues. Some of these are legit one-off bugs but many of these issues go like this:

  1. User enters into a flow that has an RHP with multiple steps (ex: adding a new company card)
  2. User hits device back button or browser back button
    Expected: user goes back to previous step
    Actual: user is (often) navigated entirely out of the flow and back to whatever page they were on before entering into that flow

Why does this happen?

Because our "step" logic for navigation often doesn't change the url, and when you hit the device's back button it pops to whatever was previously on the navigation stack, resulting in the user going much farther back in the flow than they intended to. In this GH we decided that the "ideal" behavior would be for the device back button to go back a step when a RHP has multiple steps in a flow, but the fix for making this ideal behavior happen is not easy since it requires re-doing how we implemented large parts of our navigation code. See SWM dev's explanation here.

Next steps:

We came to the conclusion in this issue that the back buttons in the app behave inconsistently and in a way that we don't think is ideal, and we discussed here about how to fix this. We need an internal engineer to pick this up and lead a group of contributors to tackle this problem. Would need a P/S, small design doc and implementation with C+ (similar to the Onyx.connect project). Most of the confusion comes from screens not using separate routes/ URLs (in multi-step forms, some reused components like currency picker etc). We should plan how to fix this, update the navigation philosophy if it was unclear somewhere and tackle the refactoring with the community.

Issue OwnerCurrent Issue Owner: @VickyStash

Metadata

Metadata

Labels

Type

No fields configured for Task.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions