Skip to content

Fade out PRs that leave the results before removing them - #1

Draft
nice-jan-p wants to merge 1 commit into
masterfrom
fade-out-removed-prs
Draft

Fade out PRs that leave the results before removing them#1
nice-jan-p wants to merge 1 commit into
masterfrom
fade-out-removed-prs

Conversation

@nice-jan-p

Copy link
Copy Markdown
Owner

Description: Fade out PRs that leave the results before removing them
Possible impact: PR dashboard table rendering, polling/sync behavior


Summary

  • A PR that gets merged/closed (i.e. drops out of the search results) used to disappear from the table abruptly on the next 60s poll.
  • Now such a PR is kept on screen briefly, flagged _removing, and faded out with a CSS animation before it is actually dropped from the list.

Changes

  • reconcileRows.ts (new): pure helper that diffs the previously-displayed rows against a fresh fetch, keeps disappeared PRs flagged _removing, and returns the merged list (sorted newest-first) plus the keys currently fading out.
  • usePolling.ts: uses reconcileRows on each sync; schedules the real removal after the fade (FADE_OUT_MS = 600), cancels a pending fade-out if the PR reappears, replaces wholesale on a filter change (no fade), and clears timers on unmount.
  • PullRequestTable.tsx: applies a pr-row--removing class via getRowClassName with a 600ms opacity fade-out keyframe.
  • reconcileRows.test.ts (new): unit tests for the diff/merge/sort behavior.

Test Plan

  • tsc --noEmit passes
  • vitest run — 23 tests pass (5 new)
  • vite build succeeds

🤖 Generated with Claude Code

Previously a PR that was merged/closed vanished from the table abruptly on
the next poll. Now a disappeared PR is kept on screen briefly, flagged
`_removing`, and faded out via a CSS animation before it's dropped. The
diff/merge logic is extracted into a pure `reconcileRows` helper with tests;
fade-out timers are cancelled if a PR reappears and cleared on unmount.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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