feat(service-logcat): load-older paging affordance + stable row keys (0.6.1)#326
Closed
I-am-nothing wants to merge 4 commits into
Closed
feat(service-logcat): load-older paging affordance + stable row keys (0.6.1)#326I-am-nothing wants to merge 4 commits into
I-am-nothing wants to merge 4 commits into
Conversation
… keys - LogEntry gains optional seq; row keys prefer seq, fall back to a collision-free ts/msg/filtered-index composite - New optional props onLoadOlder/hasOlder/loadingOlder render a load-older row at the old end (bottom) that also auto-fires when scrolled near it, latched once per page while loading - Prepend scroll compensation now keys off the top row so bottom (older) appends no longer shift scrollTop - Story LoadOlder demos seq-keyed paging; component tests cover the button, gating, loading suppression, scroll anchoring, and keys - Bump version 0.6.0 -> 0.6.1 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NWoUBtpYmAJ6MW81W3ayTL
Contributor
|
Storybook Preview: https://mirrorstack-ai.github.io/web-ui-kit/pr/326/ |
…le fallback keys The load-older row reuses Button (text/xs/fullWidth/loading) like ActivityList's load-more instead of a hand-rolled button+spinner, and the seq-less fallback key swaps the filtered index (which re-keyed every row per prepend) for a duplicate-occurrence suffix counted from the old end. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NWoUBtpYmAJ6MW81W3ayTL
6fdd41b to
1177666
Compare
3 tasks
…, option badge (#328) * feat(service-logcat,segmented-button): initialQuery seed, i18n labels, option badge ServiceLogcat gains initialQuery (seed the text filter on mount, e.g. a deep link) and an optional labels prop covering every string it renders, so callers outside English can localize it. SegmentedButton options gain an optional badge (small count pill anchored to the option's corner). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(service-logcat,segmented-button): add stories for initialQuery, labels, badge Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
main already published 0.6.2 via #329 (an independent branch that merged directly to main before this one did), so this branch's own 0.6.2 would collide — no version diff for the release automation to act on when this merges. Bumping to 0.6.3 so merging this branch actually publishes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Merged
4 tasks
Contributor
Author
I-am-nothing
added a commit
that referenced
this pull request
Jul 4, 2026
…ry/i18n labels/badge (#330) Recreates the payload of #326/#328 as one clean PR based on current main (those were tangled by a stacked-PR merge that landed #328 into #326's branch instead of main, and #326 had since drifted into merge conflict). - ServiceLogcat: load-older paging affordance (auto-fires near the old end, stable seq/occurrence-keyed rows), initialQuery (seed the text filter on mount), and a full labels prop covering every string it renders. - SegmentedButton: per-option badge (small count pill anchored to the option's corner). Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
ServiceLogcat grows an optional paging surface for the dispatch log-cursor API:
onLoadOlder?: () => void,hasOlder?,loadingOlder?— renders a load-older row at the OLD end (bottom; newest sits at top) with an explicit button + auto-fire when scrolled near it (one-shot latch, re-armed when the caller reacts)LogEntry.seq?: number— row keys preferseq; the fallback key gains the filtered index (ts+msgalone collided on repeated lines)scrollTopon ANY list growth, which would have yanked the view on bottom-appends — it now keys off the top row's identity (grewAbove)Version 0.6.0 → 0.6.1 in this PR (pre-1.0 patch convention),
releaselabel set.Verification
pnpm typecheck/pnpm buildclean (verified independently)LoadOlderstory added (3 pages × 20 entries, simulated fetch)🤖 Generated with Claude Code
https://claude.ai/code/session_01NWoUBtpYmAJ6MW81W3ayTL