The message type, which must extend IdentifiableMessage.
OptionalalignmentAlignment of the chat list. Determines whether new messages appear at the top or bottom.
OptionalclassClass name for the root element of the chat viewer.
OptionalhistoryOffset in pixels from the end of the history at which to trigger onHistoryEndReached.
OptionalkeepMessageIds of messages to keep mounted even when out of view.
OptionalkeepIndexes of messages to keep mounted even when out of view. This allows you to preserve the state of messages that are not currently visible.
The array of messages to display in the chat viewer.
OptionalonCallback fired when the viewport reaches the bottom of the message list.
ChatViewerHandle instance. Allows you to control the chat viewer.
OptionalonCallback fired when the viewport reaches the top of the message list.
ChatViewerHandle instance. Allows you to control the chat viewer.
OptionalonCallback fired when the user scrolls to the end of the history (top or bottom, depending on alignment).
ChatViewerHandle instance. Allows you to control the chat viewer.
OptionalonCallback fired on key down events in the scrollable container.
OptionalonCallback fired when newer messages are requested (e.g., user scrolls to the bottom).
You might want to use this callback with utility functions like followEveryMessage, followMessagesAtBottom, or followMessagesBy to automatically scroll to automatically follow new messages.
<ChatViewer
messages={messages}
renderMessage={renderMessage}
onNewerMessages={followMessagesAtBottom()}
/>
ChatViewerHandle instance. Allows you to control the chat viewer.
followMessagesAtBottom - scrolls to the bottom when viewport is at the bottom of the history.
OptionalonCallback fired when older messages are requested (e.g., user scrolls to the top).
ChatViewerHandle instance. Allows you to control the chat viewer.
OptionalonCallback fired when the prefix node is displayed in the viewport.
ChatViewerHandle instance. Allows you to control the chat viewer.
OptionalonCallback fired on scroll with the current scroll offset.
The current scroll offset.
OptionalonCallback fired when scrolling ends.
OptionalonCallback fired when the suffix node is displayed in the viewport.
ChatViewerHandle instance. Allows you to control the chat viewer.
followSuffixAtBottom - scrolls to the bottom when viewport when suffix is displayed at the bottom of the history.
OptionalonCallback fired on wheel events in the scrollable container.
OptionaloverscanNumber of extra items to render beyond the visible area (for virtualization performance).
Passed to Virtua's overscan prop.
OptionalprefixReact node to render before the message list (e.g., a header or history loader). It can be conditionally displayed. When changed, it will trigger a onPrefixDisplay callback.
Function to render a message.
OptionalscrollerClass name for the scrollable container.
OptionalscrollerStyle for the scrollable container.
OptionalssrNumber of items to render on the server for SSR. Passed to Virtua's ssrCount prop.
OptionalstyleStyle for the root element of the chat viewer.
OptionalsuffixReact node to render after the message list (e.g., a footer or typing indicator). It can be conditionally displayed. When changed, it will trigger a onSuffixDisplay callback.
Props for the ChatViewer component.