ChannelStateContext
The ChannelStateContext
is a one of the context providers exposed in the Channel
component and is consumable by all of the Channel
children components.
The context provides all the state properties and logic for a channel
, and you can access these by calling the useChannelStateContext
custom hook.
Basic Usage
Pull values from context with our custom hook:
const { channel, watchers } = useChannelStateContext();
Values
acceptedFiles
A list of accepted file upload types.
Type |
---|
string[] |
channel
The currently active StreamChat
channel
instance to be loaded into the Channel
component and referenced by its children.
Type |
---|
object |
channelCapabilities
The allowed channel permissions for the currently connected user.
Type |
---|
object |
channelConfig
The configurations object for the currently active channel.
Type |
---|
object |
dragAndDropWindow
If true, chat users will be able to drag and drop file uploads to the entire channel window.
Type | Default |
---|---|
boolean | false |
debounceURLEnrichmentMs:
Number of milliseconds to debounce firing the URL enrichment queries when typing. The default value is 1500(ms). See the guide Link Previews in Message Input for more.
Type | Default |
---|---|
number | 1500 |
enrichURLForPreview
A global flag to toggle the URL enrichment and link previews in MessageInput
. By default, the feature is disabled. It can be overridden on Thread and MessageList level through additionalMessageInputProps
or directly on MessageInput
level through urlEnrichmentConfig
prop.
Type | Default |
---|---|
boolean | false |
error
Error object (if any) in loading the channel
, otherwise null.
Type |
---|
object |
findURLFn
Custom function to identify URLs in a string for later generation of link previews. See the guide Link Previews in Message Input for more.
Type |
---|
(text: string) => string[] |
giphyVersion
The giphy version to use when displaying giphies.
Type |
---|
'original' | 'fixed_height' | 'fixed_height_still' | 'fixed_height_downsampled' | 'fixed_width' | 'fixed_width_still' | 'fixed_width_downsampled' |
imageAttachmentSizeHandler
A custom function to provide size configuration for image attachments
Type |
---|
(a: Attachment, e: HTMLElement) => ImageAttachmentConfiguration |
hasMore
If the channel has more, older, messages to paginate through.
Type |
---|
boolean |
hasMoreNewer
If the channel has more, newer, messages to paginate through.
Type |
---|
boolean |
highlightedMessageId
Value is used internally for jump-to-message logic. Once the user "jumped" to the message, the message with the given ID is highlighted by manipulating its styles attribute.
Type |
---|
string |
loading
Boolean for the channel
loading state.
Type |
---|
boolean |
loadingMore
Boolean for the channel
loading more messages.
Type |
---|
boolean |
loadingMoreNewer?
Flag signalling whether newer messages are being loaded as the user scrolls down in the message list. Used internally by VirtualizedMessageList
.
Type |
---|
boolean |
maxNumberOfFiles
The maximum number of attachments allowed per message
, defaults to the Stream Chat API maximum.
Type | Default |
---|---|
number | 10 |
members
Members of this channel
(members are permanent, watchers are users who are online right now).
Type |
---|
object[] |
messages
Array of message objects.
Type |
---|
object[] |
multipleUploads
Whether to allow multiple attachment uploads on a message.
Type | Default |
---|---|
boolean | true |
mutes
An array of muted users for a channel
.
Type |
---|
object[] |
notifications
Temporary notifications added to the MessageList
on specific user/message actions.
Type |
---|
{id: string, text: string, type: 'success' | 'error'}[] |
onLinkPreviewDismissed
Custom function to react to link preview dismissal. See the guide Link Previews in Message Input for more.
Type |
---|
(linkPreview: LinkPreview) => void |
channelUnreadUiState
The read state maintained for use by components representing channel unread state (for example UnreadMessagesSeparator
, UnreadMessagesNotification
).
Property | Type | Description |
---|---|---|
last_read | Date | Date when the channel was marked read the last time. |
unread_messages | number | The count of unread messages in a given channel. Unread count refers only to foreign (not own) unread messages. |
first_unread_message_id | string or undefined | The ID of the message that was marked unread (notification.mark_unread event). The value is available only when a message is marked unread. Therefore, cannot be relied on to place unread messages UI. |
last_read_message_id | string or undefined | The ID of the message preceding the first unread message. |
Type |
---|
ChannelUnreadUiState |
pinnedMessages
The messages that are pinned in the channel
.
Type |
---|
object[] |
quotedMessage
An inline message reply to another message.
Type |
---|
object |
read
The read state for each channel
member.
Type |
---|
object |
suppressAutoscroll
Flag signalling whether the scroll to the bottom is prevented. Used internally by MessageList
and VirtualizedMessageList
components.
Type |
---|
boolean |
shouldGenerateVideoThumbnail
You can turn on/off thumbnail generation for video attachments
Type |
---|
boolean |
thread
The parent message for a thread
, if there is one, otherwise null.
Type |
---|
object |
threadHasMore
Boolean showing if there are more messages available in current active thread
, set to false when the end of pagination is reached.
Type |
---|
boolean |
threadLoadingMore
If the thread is currently loading more messages.
Type |
---|
boolean |
threadMessages
Array of messages within a thread
.
Type |
---|
object[] |
threadSuppressAutoscroll
Flag signalling whether the scroll to the bottom is prevented in thread. Used internally by MessageList
and VirtualizedMessageList
components.
Type |
---|
boolean |
videoAttachmentSizeHandler
A custom function to provide size configuration for video attachments
Type |
---|
(a: Attachment, e: HTMLElement) => VideoAttachmentConfiguration |
watcherCount
The number of watchers on the channel
.
Type |
---|
number |
watchers
An array of users who are currently watching the channel
.
Type |
---|
object[] |
watcher_count
The number of watchers on the channel
.
Type |
---|
number |