Skip to content

fix: stability and perf fixes - #3854

Merged
isekovanic merged 6 commits into
V10from
fix/v10-stability-and-perf-fixes
Oct 13, 2026
Merged

isekovanic merged 6 commits into
V10from
fix/v10-stability-and-perf-fixes

Conversation

@isekovanic

@isekovanic isekovanic commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

🎯 Goal

Linear ticket: https://linear.app/stream/issue/REACT-1226/stability-and-performance-fixes

LLC PR: GetStream/stream-chat-js#1910

Fixes stability and render-performance issues in the channel list, channel previews, message rows and the SampleApp's offline start. Pairs with the stream-chat-js PR that fixes the client-side half of the channel list and pagination issues.

🛠 Implementation details

  • f076efe12: Fixes an issue where a presence change re-rendered every channel preview containing that user (avatars and names included), although previews do not render presence. useChannelMembersState(channel, pick?) takes an optional pick that selects the member fields a consumer renders; the members object is only replaced when a picked field changes. The default preview hooks (useChannelPreviewDisplayName, ChannelAvatar, useIsDirectChat) pass their own picks. Without pick the hook behaves as before.
  • 72b8fd705: Fixes an issue where opening the new-message screen and picking a user created the channel on the server before anything was sent. A draft channel has no id and is marked initialized, and <Channel> queried it on mount, which creates it. <Channel> now skips the mount query for a draft.
  • 111785981: Fixes an issue in the SampleApp where a cold start while offline with a token provider failed to fetch a token, disconnected the user and never recovered. The SampleApp now sets persistUserOnConnectionFailure, and its token provider falls back to the last token it fetched for that user on a network error (the token is cleared on logout; HTTP errors still throw).
  • 399be160a: Fixes an issue where opening or closing a thread re-rendered every message row in the channel. The message input context was rebuilt whenever the thread changed, and every row reads it. Nothing in that context depends on the thread any more, so the dependency is gone.
  • cde3f4dc5: Fixes an issue where the channel list asked for a next page before its first page had loaded (an empty list reaches its end as soon as it renders). loadNextPage now does nothing until the list has been queried once.

Public API notes:

  • useChannelMembersState gains an optional second parameter. Additive.
  • useCreateMessageInputContext no longer takes threadInstance. Passing it in an object literal is now a TypeScript error.

🎨 UI Changes

🧪 Testing

☑️ Checklist

  • I have signed the Stream CLA (required)
  • PR targets the develop branch
  • Documentation is updated
  • New code is tested in main example apps, including all possible scenarios
    • SampleApp iOS and Android
    • Expo iOS and Android

@Stream-SDK-Bot

Copy link
Copy Markdown
Contributor

SDK Size

title develop branch diff status
js_bundle_size 2033 KB 2015 KB -18651 B 🚀

@isekovanic
isekovanic merged commit ebfac3a into V10 Oct 13, 2026
3 of 4 checks passed
@isekovanic
isekovanic deleted the fix/v10-stability-and-perf-fixes branch October 13, 2026 12:45
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.

2 participants