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 packageCustomization

Replace components

When to use

Prefer this when you only need branded pieces (avatar, conversation row, composer, drawers) while keeping the default layout and data wiring. Only keys you pass are overridden - omit everything else.

Passing undefined for a key is the same as omitting it. Confirm the slot is listed as wired in the Components table before debugging why an override seems ignored.

Need a completely different shell? See Replace entire UI. For visual polish only, use classNames.

Example

tsx
1<ChatMain2  {...chatConfig}3  components={{4    Avatar: MyAvatar,5    ChannelListItem: MyConversationRow,6    MessageItem: MyMessageBubble,7    MessageInput: MyComposer,8    PhoneCallButton: MyPhoneBtn,9    MembersDrawer: MyMembersPanel,10  }}11/>
PreviousReplace entire UINextStyle with classNames

On this page

When to useExample
Back to top