skiptools / skiptools/skip-ui

Get rid of navigation link throttling

Open
#376 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

compose navigation
Dominant language
Swift
Stars
330
Forks
76
Avg merge
3h 6m
Merged PRs (30d)
1

Description

In https://github.com/skiptools/skip-ui/commit/a11d2f55effedbc70113e283cac635a0ce219440 we added a minimumNavigationInterval throttle, "Prevent quick navigation link taps from pushing duplicate screens"

I'm a little hazy on what the bug was… presumably the bug occurred when double-clicking on a NavigationLink…?

Regardless, this throttling makes it trickier to write UI automation, because any fast navigation triggers it, e.g. clicking on the "NavigationStack" playground from the playground list and then clicking the "NavigationLink" button in the playground will trigger it. I filed https://github.com/skiptools/skip-ui/pull/373 to at least log a message when that happens, but ideally we'd simply not need a throttle.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting commit a11d2f55effedbc70113e283cac635a0ce219440 and the logging change discussed in pull request 373. Reproduce the NavigationStack playground flow, then determine how the minimumNavigationInterval throttle affects rapid NavigationLink taps. Done means the described fast navigation works for UI automation without the throttle, with any duplicate-screen behavior understood and covered by the project’s existing checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile-dev
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.