Repository navigation
feat(ui): show who is typing in the message list - #3063
Conversation
A new message, or a text edit, now ends its author's typing in that channel or thread, so the indicator no longer lingers when the stop event is late or lost. Sending or editing also stops the current user's own typing, and switching between a thread and the channel stops typing in the previous one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
StreamMessageListView now shows who is typing as an incoming message at the newest end of the list, in the slot it uses for the newer-messages loader, so item indices are unchanged. It replaces the indicator StreamChannelPage drew above the composer, and can be replaced through StreamMessageListViewBuilders.typingIndicator or hidden with StreamMessageListViewConfiguration.showTypingIndicator. StreamTypingUsersBuilder exposes the users typing in a channel or thread, and StreamTypingIndicator is rebuilt on it with the design system's typing dots, dropping the lottie dependency. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3063 +/- ##
==========================================
+ Coverage 78.27% 78.29% +0.01%
==========================================
Files 450 452 +2
Lines 29350 29409 +59
==========================================
+ Hits 22973 23025 +52
- Misses 6377 6384 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Shows who is typing inside the message list, as an incoming message at the newest end, and fixes typing lingering after a message is sent.
UI (
stream_chat_flutter)StreamMessageListViewshowsStreamMessageListTypingIndicator(avatar stack and a bubble with the typing dots) in the newer-messages loader's slot, so item indices are unchanged. Replace it withStreamMessageListViewBuilders.typingIndicator, or hide it withStreamMessageListViewConfiguration.showTypingIndicator.StreamChannelPageno longer overlays a typing indicator above the composer.StreamTypingUsersBuilder: builds from the users typing in a channel or thread, and rebuilds only when that set of users changes.StreamTypingIndicator(channel previews and headers) is rebuilt on it with the design system's dots. Its API is unchanged; thelottiedependency is removed.The in-list placement matches React Native, Compose and SwiftUI, which all show typing at the newest end of the list.
Client (
stream_chat)typing.stopis late or lost. Only typing that started before the message counts, and only real text edits (message_text_updated_at), not reply-count or link-preview updates.sendMessageandupdateMessagestop the current user's typing.stream_core_flutteris pinned to GetStream/stream-core-flutter#197, which adds the dots.Verified: new tests for the client typing rules, the builder, both indicators, semantics, and the list row. A golden is added for the list row. Format,
analyze --fatal-infos, and thestream_chatandstream_chat_fluttersuites pass. Checked on an iPhone simulator, with a second device typing and sending.🤖 Generated with Claude Code
Summary by CodeRabbit