OptionalcolorsOptionaldisabledWhether the input is disabled
OptionaliconsCustom icons
OptionallabelsCustom labels for i18n support
OptionallocalThe local user's id, used to distinguish own messages when in controlled mode. Falls back to the provider's local participant id when omitted.
OptionalmaxMaximum height before scrolling (default: none)
OptionalmessagesControlled message list. When provided, the panel renders these messages instead of the live room's chat, turning ChatPanel into a controlled component backed by the consumer's own store (e.g. a persisted history). Omit to use the in-room chat from the provider.
OptionalonCallback when chat panel gains focus (useful for clearing unread indicators)
OptionalonCalled when a link inside a message body is clicked. Call
event.preventDefault() and navigate yourself to keep the link
in-app (e.g. same-origin links in an installed PWA, which browsers
would otherwise open in an in-app browser sheet). Without a handler
(or when the default isn't prevented) links open in a new tab.
OptionalonCallback when new remote message arrives (for notifications/badges)
OptionalonControlled send handler. When provided, sending a message calls this instead of the in-room send. Pair with messages to fully control the panel's data source.
OptionalplaceholderPlaceholder text for input (default: 'Type a message...')
OptionalrenderRender props for advanced customization
OptionalresolveOverride display name for a message sender. Return a string to override, or null/undefined to keep the default.
OptionalshowShow avatars for messages (default: true)
OptionalshowShow the header (default: true)
OptionalshowShow system messages like "You joined…"
OptionalshowShow timestamps on messages (default: true)
OptionalstylesCustom styles
OptionalsxMUI sx styling prop
OptionaltitleTitle for the chat header (default: 'Chat')
Custom colors