@@ -255,7 +255,7 @@ export type ChannelPropsWithContext<
255255 | 'handleFlag'
256256 | 'handleMute'
257257 | 'handleReaction'
258- | 'handleReply '
258+ | 'handleQuotedReply '
259259 | 'handleRetry'
260260 | 'handleThreadReply'
261261 | 'InlineDateSeparator'
@@ -283,9 +283,9 @@ export type ChannelPropsWithContext<
283283 | 'onPressInMessage'
284284 | 'onPressMessage'
285285 | 'OverlayReactionList'
286+ | 'quotedReply'
286287 | 'ReactionList'
287288 | 'Reply'
288- | 'reply'
289289 | 'retry'
290290 | 'ScrollToBottomButton'
291291 | 'selectReaction'
@@ -381,7 +381,14 @@ export type ChannelPropsWithContext<
381381 * Custom loading error indicator to override the Stream default
382382 */
383383 LoadingErrorIndicator ?: React . ComponentType < LoadingErrorProps > ;
384+ maxMessageLength ?: number ;
384385 messageId ?: string ;
386+ quotedRepliesEnabled ?: boolean ;
387+ reactionsEnabled ?: boolean ;
388+ readEventsEnabled ?: boolean ;
389+ threadRepliesEnabled ?: boolean ;
390+ typingEventsEnabled ?: boolean ;
391+ uploadsEnabled ?: boolean ;
385392 } ;
386393
387394const ChannelWithContext = <
@@ -404,7 +411,6 @@ const ChannelWithContext = <
404411 AttachButton = AttachButtonDefault ,
405412 Attachment = AttachmentDefault ,
406413 AttachmentActions = AttachmentActionsDefault ,
407- FileAttachmentIcon = FileIconDefault ,
408414 autoCompleteTriggerSettings,
409415 blockUser,
410416 Card = CardDefault ,
@@ -433,6 +439,7 @@ const ChannelWithContext = <
433439 EmptyStateIndicator = EmptyStateIndicatorDefault ,
434440 enforceUniqueReaction = false ,
435441 FileAttachment = FileAttachmentDefault ,
442+ FileAttachmentIcon = FileIconDefault ,
436443 FileAttachmentGroup = FileAttachmentGroupDefault ,
437444 FileUploadPreview = FileUploadPreviewDefault ,
438445 flagMessage,
@@ -449,8 +456,8 @@ const ChannelWithContext = <
449456 handleEdit,
450457 handleFlag,
451458 handleMute,
459+ handleQuotedReply,
452460 handleReaction,
453- handleReply,
454461 handleRetry,
455462 handleThreadReply,
456463 hasCommands = true ,
@@ -473,6 +480,7 @@ const ChannelWithContext = <
473480 loadingMoreRecent : loadingMoreRecentProp ,
474481 markdownRules,
475482 messageId,
483+ maxMessageLength : maxMessageLengthProp ,
476484 maxNumberOfFiles = 10 ,
477485 maxTimeBetweenGroupedMessages,
478486 Message = MessageDefault ,
@@ -484,18 +492,17 @@ const ChannelWithContext = <
484492 MessageFooter = MessageFooterDefault ,
485493 MessageHeader,
486494 MessageList = MessageListDefault ,
487- messages : messagesProp ,
488- muteUser,
489- myMessageTheme,
490- NetworkDownIndicator = NetworkDownIndicatorDefault ,
491- ScrollToBottomButton = ScrollToBottomButtonDefault ,
492495 MessageReplies = MessageRepliesDefault ,
493496 MessageRepliesAvatars = MessageRepliesAvatarsDefault ,
497+ messages : messagesProp ,
494498 MessageSimple = MessageSimpleDefault ,
495499 MessageStatus = MessageStatusDefault ,
496500 MessageSystem = MessageSystemDefault ,
497501 MessageText,
498502 MoreOptionsButton = MoreOptionsButtonDefault ,
503+ muteUser,
504+ myMessageTheme,
505+ NetworkDownIndicator = NetworkDownIndicatorDefault ,
499506 numberOfLines = 5 ,
500507 onChangeText,
501508 onDoubleTapMessage,
@@ -504,10 +511,14 @@ const ChannelWithContext = <
504511 onPressInMessage,
505512 openSuggestions,
506513 OverlayReactionList = OverlayReactionListDefault ,
514+ quotedRepliesEnabled : quotedRepliesEnabledProp ,
515+ quotedReply,
507516 ReactionList = ReactionListDefault ,
517+ reactionsEnabled : reactionsEnabledProp ,
518+ readEventsEnabled : readEventsEnabledProp ,
508519 Reply = ReplyDefault ,
509- reply,
510520 retry,
521+ ScrollToBottomButton = ScrollToBottomButtonDefault ,
511522 selectReaction,
512523 SendButton = SendButtonDefault ,
513524 sendImageAsync = false ,
@@ -517,11 +528,14 @@ const ChannelWithContext = <
517528 supportedReactions = reactionData ,
518529 t,
519530 thread : threadProps ,
531+ threadRepliesEnabled : threadRepliesEnabledProp ,
520532 threadReply,
533+ typingEventsEnabled : typingEventsEnabledProp ,
521534 TypingIndicator = TypingIndicatorDefault ,
522535 TypingIndicatorContainer = TypingIndicatorContainerDefault ,
523536 updateSuggestions,
524537 UploadProgressIndicator = UploadProgressIndicatorDefault ,
538+ uploadsEnabled : uploadsEnabledProp ,
525539 UrlPreview = CardDefault ,
526540 } = props ;
527541
@@ -726,8 +740,10 @@ const ChannelWithContext = <
726740 } ;
727741
728742 useEffect ( ( ) => {
729- // The more complex sync logic around internet connectivity (NetInfo) is part of Chat.tsx
730- // listen to client.connection.recovered and all channel events
743+ /**
744+ * The more complex sync logic around internet connectivity (NetInfo) is part of Chat.tsx
745+ * listen to client.connection.recovered and all channel events
746+ */
731747 client . on ( 'connection.recovered' , connectionRecoveredHandler ) ;
732748 client . on ( 'connection.changed' , connectionChangedHandler ) ;
733749 channel ?. on ( handleEvent ) ;
@@ -1055,35 +1071,36 @@ const ChannelWithContext = <
10551071 } ;
10561072
10571073 /**
1058- * Channel configs for use in disabling local functionality
1074+ * Channel configs for use in disabling local functionality.
1075+ * Nullish coalescing is used to give first priority to props to override
1076+ * the server settings. Then priority to server settings to override defaults.
10591077 */
1060- const messagesConfig = {
1061- reactionsEnabled : true ,
1062- repliesEnabled : true ,
1063- } as MessagesConfig ;
1064- const channelConfig = {
1065- readEventsEnabled : true ,
1066- typingEventsEnabled : true ,
1067- } as ChannelConfig ;
1068- const inputConfig = {
1069- maxMessageLength : undefined ,
1070- uploadsEnabled : true ,
1071- } as InputConfig ;
1072- if ( typeof channel ?. getConfig === 'function' ) {
1073- const clientChannelConfig = channel . getConfig ( ) ;
1074- const maxMessageLength = clientChannelConfig ?. max_message_length ;
1075- const reactions = clientChannelConfig ?. reactions ;
1076- const readEvents = clientChannelConfig ?. read_events ;
1077- const replies = clientChannelConfig ?. replies ;
1078- const typingEvents = clientChannelConfig ?. typing_events ;
1079- const uploads = clientChannelConfig ?. uploads ;
1080- channelConfig . readEventsEnabled = readEvents ;
1081- channelConfig . typingEventsEnabled = typingEvents ;
1082- inputConfig . maxMessageLength = maxMessageLength ;
1083- inputConfig . uploadsEnabled = uploads ;
1084- messagesConfig . reactionsEnabled = reactions ;
1085- messagesConfig . repliesEnabled = replies ;
1086- }
1078+ const clientChannelConfig =
1079+ typeof channel ?. getConfig === 'function' ? channel . getConfig ( ) : undefined ;
1080+
1081+ const messagesConfig : MessagesConfig = {
1082+ /**
1083+ * Replace with backend flag once its ready
1084+ */
1085+ quotedRepliesEnabled : quotedRepliesEnabledProp ?? true ,
1086+ reactionsEnabled :
1087+ reactionsEnabledProp ?? clientChannelConfig ?. reactions ?? true ,
1088+ threadRepliesEnabled :
1089+ threadRepliesEnabledProp ?? clientChannelConfig ?. replies ?? true ,
1090+ } ;
1091+ const channelConfig : ChannelConfig = {
1092+ readEventsEnabled :
1093+ readEventsEnabledProp ?? clientChannelConfig ?. read_events ?? true ,
1094+ typingEventsEnabled :
1095+ typingEventsEnabledProp ?? clientChannelConfig ?. typing_events ?? true ,
1096+ } ;
1097+ const inputConfig : InputConfig = {
1098+ maxMessageLength :
1099+ maxMessageLengthProp ??
1100+ clientChannelConfig ?. max_message_length ??
1101+ undefined ,
1102+ uploadsEnabled : uploadsEnabledProp ?? clientChannelConfig ?. uploads ?? true ,
1103+ } ;
10871104
10881105 /**
10891106 * MESSAGE METHODS
@@ -1712,8 +1729,8 @@ const ChannelWithContext = <
17121729 handleEdit,
17131730 handleFlag,
17141731 handleMute,
1732+ handleQuotedReply,
17151733 handleReaction,
1716- handleReply,
17171734 handleRetry,
17181735 handleThreadReply,
17191736 initialScrollToFirstUnreadMessage,
@@ -1742,10 +1759,10 @@ const ChannelWithContext = <
17421759 onPressInMessage,
17431760 onPressMessage,
17441761 OverlayReactionList,
1762+ quotedReply,
17451763 ReactionList,
17461764 removeMessage,
17471765 Reply,
1748- reply,
17491766 retry,
17501767 retrySendMessage,
17511768 ScrollToBottomButton,
0 commit comments