unreadLabelState
The active unread boundary for this channel, or null when none is shown.
Sticky once non-null: the value persists across auto-read events until the user leaves the channel (the controller is recreated), marks messages unread, or hideUnreadSeparator is invoked. The button visibility stays consistent across recompositions of observeUnreadLabelState — see disableUnreadLabelButton for the dismissal contract.
Use this flow when only the unread boundary is relevant. UI layers consuming the aggregated channel state should prefer io.getstream.chat.android.ui.common.state.messages.list.MessageListState.unreadLabel via messageListState, which mirrors this value.