Skip to content

Fix stuck navigations on repo issue detail and new issue pages#101

Merged
stylessh merged 2 commits intomainfrom
stylessh/instant-nav-skeletons
Apr 13, 2026
Merged

Fix stuck navigations on repo issue detail and new issue pages#101
stylessh merged 2 commits intomainfrom
stylessh/instant-nav-skeletons

Conversation

@stylessh
Copy link
Copy Markdown
Owner

Summary

  • Route nesting fix: issues.tsx was unintentionally acting as a layout parent for issues.$issueId.tsx and issues.new.tsx due to TanStack Router's dot-notation convention, but it never rendered <Outlet /> — so child routes couldn't mount and the page froze with stale content while the URL updated. Renamed to issues.index.tsx to make it a sibling index route.
  • Instant pending feedback: Added defaultPendingComponent to the router config so every route transition immediately shows a loading spinner instead of freezing on the old page.
  • Cached auth in _protected layout: The beforeLoad was making two sequential server round-trips (getSession + checkSetupComplete) on every in-app navigation. Now both run in parallel via Promise.all and the result is cached for subsequent navigations.

Test plan

  • Navigate from repo issues list to an issue detail page — should transition instantly instead of freezing
  • Navigate to the new issue form from the repo issues list
  • Verify navigations between dashboard pages (pulls, issues, reviews) show a loading spinner briefly
  • Hard-refresh a protected page to confirm auth check still works on first load
  • Verify session expiry is still handled (API calls will 401 and error boundary catches it)

…hecks

issues.tsx acted as an unintended layout parent for issues.$issueId.tsx
due to TanStack Router dot-notation, but never rendered <Outlet />, so
child routes had nowhere to mount — the URL changed but content froze.
Renamed to issues.index.tsx to make it a sibling index route. Also added
defaultPendingComponent for immediate loading feedback on all transitions
and cached the _protected beforeLoad auth result to eliminate redundant
server round-trips on every in-app navigation.
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 13, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
diffkit 9733f59 Apr 13 2026, 09:03 PM

@stylessh stylessh merged commit a2ffa79 into main Apr 13, 2026
4 checks passed
stylessh added a commit that referenced this pull request Apr 18, 2026
…hecks (#101)

issues.tsx acted as an unintended layout parent for issues.$issueId.tsx
due to TanStack Router dot-notation, but never rendered <Outlet />, so
child routes had nowhere to mount — the URL changed but content froze.
Renamed to issues.index.tsx to make it a sibling index route. Also added
defaultPendingComponent for immediate loading feedback on all transitions
and cached the _protected beforeLoad auth result to eliminate redundant
server round-trips on every in-app navigation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant