1 of 6 standards met
Summary Rebased onto (v0.6.0) and adopted the -based scroll reset from #48. penultimateCellIndex support now respects the prop: Negative value (e.g. ): opts out of blank padding entirely โ no gap between the last cell and the footer Non-negative value: uses that index for the penultimate cell lookup instead of always using (default): preserves existing behavior Scroll reset on navigation When the view leaves the screen ( with ), is reset. When returning, re-triggers scroll-to-end. This handles Fabric view recycling where doesn't change when revisiting the same conversation. Keyboard notification scoping Adds flag so stacked screens (e.g. thread pushed over chat) don't interfere with each other's scroll/inset state. Scroll position methods 1. โ returns the first visible cell's index, pixel offset, and near-end state 2. โ scrolls to a specific cell at a given pixel offset Changes : Added interface and two new methods to : support in , lifecycle for scroll reset, + , keyboard scoping : Android stubs for new methods : Regenerated via Test plan [x] Navigate to a DM chat โ messages scroll to bottom, no gap above footer [x] Swipe back, navigate to different DM โ scroll resets via change [x] Navigate away and back to the same** conversation โ scroll resets via [x] Stacked screens (thread over chat) โ keyboard only affects the top screen [x] โ blank padding is 0, last message sits above composer
Repository: vercel/aix. Description: Build AI apps with the polish of ChatGPT, v0, and Grok. Coming soon. Stars: 75, Forks: 7. Primary language: TypeScript. Languages: TypeScript (56.5%), Swift (38%), JavaScript (2.4%), Kotlin (1.7%), Ruby (1%). Homepage: https://aix.vercel.sh Open PRs: 7, open issues: 1. Last activity: 1d ago. Community health: 37%. Top contributors: nandorojo, richardkunkli.
Last 12 weeks ยท 42 commits
Summary Adds flag so only the Aix instance whose descendant is the first responder reacts to keyboard events Prevents background screens from incorrectly handling keyboard transitions triggered by a different Aix instance (e.g. stacked screens) Set on when is true, cleared on Test plan [ ] Stack two screens each with their own Aix context [ ] Open keyboard on the top screen โ bottom screen should not react [ ] Dismiss top screen, open keyboard on bottom โ should work normally
Summary Reset on change so the initial scroll isn't skipped when switching conversations Re-scroll to bottom when navigating back to a screen () Track to lock auto-scroll decision when a new blank cell appears (prevents threshold drift as streaming content grows) Reset auto-scroll flag on conversation switch and navigation away Cancel auto-scroll when user scrolls >2x threshold away during streaming Remove dead code: unused , unused property, disabled body Simplify (bounds.height is always >= 0) Test plan [ ] Enter a chat, navigate away, navigate back โ should re-scroll to bottom [ ] Switch between conversations โ each should scroll to bottom independently [ ] Receive a streaming message while scrolled to bottom โ should auto-scroll [ ] Scroll up during streaming โ auto-scroll should stop [ ] Verify no or references remain