Skip to content

Prevent repeated PR list skeleton shifts - #49

Merged
rrbe merged 1 commit into
mainfrom
fix/pr-list-loading-jitter
Jul 30, 2026
Merged

Prevent repeated PR list skeleton shifts#49
rrbe merged 1 commit into
mainfrom
fix/pr-list-loading-jitter

Conversation

@rrbe

@rrbe rrbe commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • reserve each Branch and PR Diff skeleton only once per rendered DOM row
  • remove empty info rows after skeleton cleanup so the document-start CSS keeps row height reserved
  • skip title-link nodes during skeleton reservation
  • reuse the already-loaded token for the Branch GraphQL batch

Root cause

The 2-second navigation fallback reruns skeleton reservation. When an async feature returned no data, its skeleton was cleared, then recreated and cleared again on every poll. The empty info-row also remained mounted, hiding the CSS height reservation and allowing the row to shrink between passes.

Verification

  • pnpm test (32 files, 227 tests)
  • pnpm typecheck
  • pnpm build
  • git diff --check

@rrbe
rrbe merged commit c594b8c into main Jul 30, 2026
1 check passed
@rrbe
rrbe deleted the fix/pr-list-loading-jitter branch July 30, 2026 04:14
@rrbe
rrbe restored the fix/pr-list-loading-jitter branch July 30, 2026 04:14
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