Skip to content

feat: add host-registered navigation shortcuts #152

Open

Description

@MaxMichel2

Is your feature request related to a problem?

Reproducing a UI issue can require navigating through many screens and entering the same state each time. DevView has its own modular navigation, but it cannot discover or control the host application's destinations automatically.

Describe the solution you'd like

Provide a module or host integration API for registering named in-app shortcuts to host-owned destinations or actions. DevView lists the shortcuts and invokes a host-provided callback when one is selected. The host app remains responsible for navigation and for deciding which shortcuts are available in a given build or environment.

Illustrative registration only:

DevViewShortcuts {
    shortcut(id = "checkout", title = "Checkout test") {
        appNavigator.navigateToCheckout(testAccount = true)
    }
}

Fit the actual API to the existing Module and rememberModules patterns; this example is conceptual, not an existing symbol.

Implementation considerations

Start with in-app shortcuts registered by the host. Do not attempt to introspect arbitrary navigation libraries or force host destinations into DevView's own Navigation3 types. Define how shortcuts are named, grouped, conditionally registered, and invoked, and how unavailable routes or callback failures are surfaced.

Parameters should be supplied by typed host callbacks or validated inputs rather than arbitrary untrusted strings. The host should be able to omit sensitive or destructive actions and restrict registration to debug/QA builds. OS-level URL/deep-link parsing is separate scope involving platform entry points; it must not be implied by an in-app shortcut list.

Acceptance criteria

  • Host apps can register named shortcuts/actions and handle their execution.
  • Shortcuts are presented as a normal DevView module without DevView owning host navigation state.
  • Host apps can conditionally include shortcuts by build type/environment.
  • Failures or unavailable destinations are handled clearly, with sensitive/destructive shortcuts host-controlled.
  • Documentation includes a sample integration and distinguishes in-app shortcuts from OS deep links.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions