RealTimeX
Sign inStart for free
RealTimeXWeb Package
IntroductionPrerequisitesInstallationProject setupQuick start
Package structureConfigurationComponentsHooksAPI integrationSocket events
OverviewReplace entire UIReplace componentsStyle with classNamesThemes & localePhone & video callingIn-call control barFeatures
Unread badgeRich-text messagesPins, stars & datesMessage threadsMentionsCanvas & draftsNotificationsAdmin permissionsServer refusalsSession & token refresh
Host app integrationTroubleshootingFAQVersion historyBest practicesSupport & contact
Web packageBuilt-in features

Message threads

Reply to any message in its own side thread, Slack-style. Built in while threadsEnabled is on.

Overview

WhereWhat the user sees
Message toolbarReply in thread opens the ThreadDrawer for that message
Under the parent messageReply count, reply avatars and “last reply” time - click to open the thread
Thread composerThe same composer as the chat, plus Also send to conversation
Your repliesSent / delivered / read ticks, updated live as others read the thread
Thread headerTyping indicator (“X is typing…”) and a mute bell for this thread only
Sidebar (optional)Threads inbox - every thread you're in, with unread replies

Files can be dragged onto the thread panel, the same as the main chat.

Read receipts on replies

A reply turns read once every other member of the conversation has read the thread past it, and delivered once someone has read it or been online since it was sent. So in a group, one member opening the thread shows delivered, not read.

Threads inbox

Off by default - turn it on with the layout prop:

tsx
<ChatMain {...props} layout={{ threadsInbox: true }} />

Customize & limits

Replace the UI with the ThreadDrawer / ThreadsInboxDialog slots, or restyle with classNames.threadsInboxTrigger / threadsInboxDialog. Limits come from the admin settings: maxRepliesPerThread, and the messageTimers edit/delete windows also apply to replies - see Admin permissions.

Exports

ExportPurpose
ThreadDrawer, ThreadsInboxDialogDefault components (wrap them in your own slots)
apiGetThread({ rootId }), apiListThreads({ conversationId? })REST - one thread with replies / the inbox list
buildThreadReplySummaries, collectThreadRepliesBuild reply summaries from loaded messages
formatReplyCount, formatLastReplyLabel“3 replies” / “Last reply 2h ago” labels
ThreadMembership, ThreadInboxItem, ThreadReplySummaryTypes
PreviousPins, stars & datesNextMentions

On this page

OverviewRead receipts on repliesThreads inboxCustomize & limitsExports
Back to top