Skip to content

perf: render timeline incrementally to keep filtering responsive#11

Open
mattn wants to merge 1 commit into
OpenSats:masterfrom
mattn:perf/timeline-incremental-render
Open

perf: render timeline incrementally to keep filtering responsive#11
mattn wants to merge 1 commit into
OpenSats:masterfrom
mattn:perf/timeline-incremental-render

Conversation

@mattn

@mattn mattn commented Jun 13, 2026

Copy link
Copy Markdown

The timeline mounted every event (tens of thousands across the 90-day window) as DOM at once, and every filter change re-rendered the whole list. Typing a single character in the repo filter could freeze the UI for several seconds.

Now it renders ~200 rows and loads more as a bottom sentinel scrolls into view (IntersectionObserver), resetting on filter change. App also passes a useDeferredValue copy of the filtered list so the input and chips stay responsive. Sticky day headers and filter behavior are unchanged; no new deps.

typecheck / lint / build pass; verified locally against a 30k-event dataset.

Cap rows to ~200 with scroll-based paging and defer the filtered list so
filter input stays responsive on large datasets.
@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

@mattn is attempting to deploy a commit to the OpenSats Team on Vercel.

A member of the Team first needs to authorize it.

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