Documentation Index Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
AI Integration Quick Reference
{
"component" : "CometChatThreadHeader" ,
"package" : "@cometchat/chat-uikit-react" ,
"import" : "import { CometChatThreadHeader } from \" @cometchat/chat-uikit-react \" ;" ,
"cssImport" : "import \" @cometchat/chat-uikit-react/css-variables.css \" ;" ,
"description" : "Displays the parent message and reply count at the top of a threaded conversation view." ,
"cssRootClass" : ".cometchat-thread-header" ,
"props" : {
"data" : {
"parentMessage" : { "type" : "CometChat.BaseMessage" , "required" : true },
"template" : { "type" : "CometChatMessageTemplate" , "default" : "undefined" },
"textFormatters" : { "type" : "CometChatTextFormatter[]" , "default" : "undefined" },
"separatorDateTimeFormat" : { "type" : "CalendarObject" , "default" : "DD MMM, YYYY" },
"messageSentAtDateTimeFormat" : { "type" : "CalendarObject" , "default" : "hh:mm A" }
},
"callbacks" : {
"onClose" : "() => void" ,
"onError" : "((error: CometChat.CometChatException) => void) | null" ,
"onSubtitleClicked" : "() => void"
},
"visibility" : {
"hideDate" : { "type" : "boolean" , "default" : false },
"hideReplyCount" : { "type" : "boolean" , "default" : false },
"hideReceipts" : { "type" : "boolean" , "default" : false },
"showScrollbar" : { "type" : "boolean" , "default" : false }
},
"viewSlots" : {
"messageBubbleView" : "JSX.Element" ,
"subtitleView" : "JSX.Element"
}
},
"types" : {
"CalendarObject" : {
"today" : "string | undefined" ,
"yesterday" : "string | undefined" ,
"lastWeek" : "string | undefined" ,
"otherDays" : "string | undefined"
}
}
}
Where It Fits
CometChatThreadHeader renders the parent message bubble and reply count at the top of a thread panel. Wire it above a CometChatMessageList (with parentMessageId) and CometChatMessageComposer (with parentMessageId) to build a complete thread view.
import { useEffect , useState } from "react" ;
import {
CometChatThreadHeader ,
CometChatMessageList ,
CometChatMessageComposer ,
} from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
import "@cometchat/chat-uikit-react/css-variables.css" ;
function ThreadView ({ parentMessageId , user } : { parentMessageId : number ; user : CometChat . User }) {
const [ parentMessage , setParentMessage ] = useState < CometChat . BaseMessage >();
useEffect (() => {
CometChat . getMessageDetails ( String ( parentMessageId )). then ( setParentMessage );
}, [ parentMessageId ]);
if ( ! parentMessage ) return null ;
return (
< div style = { { display: "flex" , flexDirection: "column" , height: "100vh" } } >
< CometChatThreadHeader
parentMessage = { parentMessage }
onClose = { () => { /* close thread panel */ } }
/>
< CometChatMessageList user = { user } parentMessageId = { parentMessageId } />
< CometChatMessageComposer user = { user } parentMessageId = { parentMessageId } />
</ div >
);
}
Minimal Render
import { useEffect , useState } from "react" ;
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
import "@cometchat/chat-uikit-react/css-variables.css" ;
function ThreadHeaderDemo () {
const [ parentMessage , setParentMessage ] = useState < CometChat . BaseMessage >();
useEffect (() => {
CometChat . getMessageDetails ( "MESSAGE_ID" ). then ( setParentMessage );
}, []);
return parentMessage ? (
< CometChatThreadHeader parentMessage = { parentMessage } />
) : null ;
}
export default ThreadHeaderDemo ;
Root CSS class: .cometchat-thread-header
Actions and Events
Callback Props
onClose
Fires when the close button is clicked.
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function ThreadHeaderWithClose ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
onClose = { () => console . log ( "Close thread panel" ) }
/>
);
}
onSubtitleClicked
Fires when the subtitle area is clicked.
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function ThreadHeaderWithSubtitleClick ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
onSubtitleClicked = { () => console . log ( "Subtitle clicked" ) }
/>
);
}
onError
Fires on internal errors.
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function ThreadHeaderWithError ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
onError = { ( error : CometChat . CometChatException ) => {
console . error ( "ThreadHeader error:" , error );
} }
/>
);
}
SDK Events (Real-Time, Automatic)
The component listens to SDK events internally for real-time reply count updates. No manual attachment needed.
Custom View Slots
Slot Type Replaces messageBubbleViewJSX.ElementParent message bubble subtitleViewJSX.ElementSubtitle text below the thread title
messageBubbleView
Replace the parent message bubble with a custom view.
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function CustomBubbleThread ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
messageBubbleView = { < div > Custom bubble view </ div > }
/>
);
}
import {
CometChatThreadHeader ,
CalendarObject ,
} from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function CustomDateThread ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
separatorDateTimeFormat = {new CalendarObject ({
today: "hh:mm A" ,
yesterday: "[yesterday]" ,
otherDays: "DD/MM/YYYY" ,
}) }
/>
);
}
Common Patterns
import { CometChatThreadHeader } from "@cometchat/chat-uikit-react" ;
import { CometChat } from "@cometchat/chat-sdk-javascript" ;
function MinimalThread ({ parentMessage } : { parentMessage : CometChat . BaseMessage }) {
return (
< CometChatThreadHeader
parentMessage = { parentMessage }
hideDate = { true }
hideReplyCount = { true }
hideReceipts = { true }
/>
);
}
CSS Architecture
The component uses CSS custom properties (design tokens) defined in @cometchat/chat-uikit-react/css-variables.css.
Key Selectors
Target Selector Root .cometchat-thread-headerTop bar .cometchat-thread-header__top-barTitle .cometchat-thread-header__top-bar-titleSubtitle .cometchat-thread-header__top-bar-subtitle-textClose button .cometchat-thread-header__top-bar-closeBody .cometchat-thread-header__bodyDate separator .cometchat-thread-header__body-timestampMessage bubble area .cometchat-thread-header__messageIncoming message .cometchat-thread-header__message-incomingOutgoing message .cometchat-thread-header__message-outgoingReply bar .cometchat-thread-header__reply-barReply count .cometchat-thread-header__reply-bar-countReply divider .cometchat-thread-header__reply-bar-divider
Example: Brand-themed thread header
.cometchat-thread-header {
background-color : #edeafa ;
}
.cometchat-thread-header__reply-bar-count {
color : #6852d6 ;
}
.cometchat-thread-header__reply-bar-divider {
background : #6852d6 ;
}
Props
All props are optional unless noted otherwise.
hideDate
Hides the date header.
hideReceipts
Hides the receipt indicator.
hideReplyCount
Hides the reply count.
messageBubbleView
Custom component for the parent message bubble.
Type JSX.ElementDefault undefined
Format for the message sent-at timestamp.
Type CalendarObjectDefault hh:mm A
onClose
Callback fired when the close button is clicked.
Type () => voidDefault undefined
onError
Callback fired when the component encounters an error.
Type ((error: CometChat.CometChatException) => void) | nullDefault undefined
onSubtitleClicked
Callback fired when the subtitle area is clicked.
Type () => voidDefault undefined
parentMessage
The parent message displayed in the thread header. Required.
Type CometChat.BaseMessageDefault —
Format for the date separator timestamp.
Type CalendarObjectDefault DD MMM, YYYY
Shows the scrollbar in the component.
subtitleView
Custom component for the subtitle text.
Type JSX.ElementDefault undefined
template
Custom template for the parent message bubble rendering.
Type CometChatMessageTemplateDefault undefined
textFormatters
Custom text formatters for message text.
Type CometChatTextFormatter[]Default undefined
CSS Selectors
Target Selector Root .cometchat-thread-headerTop bar .cometchat-thread-header__top-barTitle .cometchat-thread-header__top-bar-titleSubtitle .cometchat-thread-header__top-bar-subtitle-textClose button .cometchat-thread-header__top-bar-closeBody .cometchat-thread-header__bodyDate separator .cometchat-thread-header__body-timestampMessage bubble area .cometchat-thread-header__messageIncoming message .cometchat-thread-header__message-incomingOutgoing message .cometchat-thread-header__message-outgoingReply bar .cometchat-thread-header__reply-barReply count .cometchat-thread-header__reply-bar-countReply divider .cometchat-thread-header__reply-bar-divider