stream-chat-react-native-core 5.34.0 → 5.34.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +0 -1
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +1 -3
  4. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  5. package/lib/commonjs/components/Message/Message.js +1 -9
  6. package/lib/commonjs/components/Message/Message.js.map +1 -1
  7. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +3 -10
  8. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  9. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +0 -6
  10. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  11. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -3
  12. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  13. package/lib/commonjs/components/MessageInput/AttachButton.js +4 -17
  14. package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
  15. package/lib/commonjs/components/MessageInput/CommandsButton.js +3 -14
  16. package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
  17. package/lib/commonjs/components/MessageInput/MessageInput.js +5 -14
  18. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  19. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +2 -25
  20. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
  21. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -16
  22. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
  23. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +1 -12
  24. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +15 -26
  26. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
  27. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +15 -28
  28. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js.map +1 -1
  29. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +15 -26
  30. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
  31. package/lib/commonjs/components/MessageList/MessageList.js +2 -2
  32. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  33. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +1 -3
  34. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  35. package/lib/commonjs/utils/utils.js +2 -1
  36. package/lib/commonjs/utils/utils.js.map +1 -1
  37. package/lib/commonjs/version.json +1 -1
  38. package/lib/module/components/Channel/Channel.js +0 -1
  39. package/lib/module/components/Channel/Channel.js.map +1 -1
  40. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +1 -3
  41. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  42. package/lib/module/components/Message/Message.js +1 -9
  43. package/lib/module/components/Message/Message.js.map +1 -1
  44. package/lib/module/components/Message/MessageSimple/MessageContent.js +3 -10
  45. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  46. package/lib/module/components/Message/MessageSimple/MessageSimple.js +0 -6
  47. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  48. package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -3
  49. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  50. package/lib/module/components/MessageInput/AttachButton.js +4 -17
  51. package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
  52. package/lib/module/components/MessageInput/CommandsButton.js +3 -14
  53. package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
  54. package/lib/module/components/MessageInput/MessageInput.js +5 -14
  55. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  56. package/lib/module/components/MessageInput/MoreOptionsButton.js +2 -25
  57. package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
  58. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -16
  59. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
  60. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +1 -12
  61. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  62. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +15 -26
  63. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js.map +1 -1
  64. package/lib/module/components/MessageInput/components/InputGiphySearch.js +15 -28
  65. package/lib/module/components/MessageInput/components/InputGiphySearch.js.map +1 -1
  66. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +15 -26
  67. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js.map +1 -1
  68. package/lib/module/components/MessageList/MessageList.js +2 -2
  69. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  70. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +1 -3
  71. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  72. package/lib/module/utils/utils.js +2 -1
  73. package/lib/module/utils/utils.js.map +1 -1
  74. package/lib/module/version.json +1 -1
  75. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  76. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -74
  77. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
  78. package/lib/typescript/components/Message/Message.d.ts +1 -1
  79. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  80. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  81. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts.map +1 -1
  82. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  83. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts.map +1 -1
  84. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  85. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts.map +1 -1
  86. package/lib/typescript/components/MessageInput/AttachButton.d.ts +3 -5
  87. package/lib/typescript/components/MessageInput/AttachButton.d.ts.map +1 -1
  88. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +1 -2
  89. package/lib/typescript/components/MessageInput/CommandsButton.d.ts.map +1 -1
  90. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  91. package/lib/typescript/components/MessageInput/MessageInput.d.ts.map +1 -1
  92. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +2 -9
  93. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts.map +1 -1
  94. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts +1 -2
  95. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts.map +1 -1
  96. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts +1 -2
  97. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts.map +1 -1
  98. package/lib/typescript/components/MessageInput/components/InputEditingStateHeader.d.ts +2 -5
  99. package/lib/typescript/components/MessageInput/components/InputEditingStateHeader.d.ts.map +1 -1
  100. package/lib/typescript/components/MessageInput/components/InputGiphySearch.d.ts +4 -5
  101. package/lib/typescript/components/MessageInput/components/InputGiphySearch.d.ts.map +1 -1
  102. package/lib/typescript/components/MessageInput/components/InputReplyStateHeader.d.ts +2 -5
  103. package/lib/typescript/components/MessageInput/components/InputReplyStateHeader.d.ts.map +1 -1
  104. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -2
  105. package/lib/typescript/contexts/messageContext/MessageContext.d.ts.map +1 -1
  106. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +4 -4
  107. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
  108. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  109. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  110. package/lib/typescript/utils/utils.d.ts +1 -1
  111. package/lib/typescript/utils/utils.d.ts.map +1 -1
  112. package/package.json +1 -1
  113. package/src/components/Channel/Channel.tsx +0 -1
  114. package/src/components/Channel/__tests__/ownCapabilities.test.js +0 -18
  115. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +1 -11
  116. package/src/components/Message/Message.tsx +3 -15
  117. package/src/components/Message/MessageSimple/MessageContent.tsx +1 -10
  118. package/src/components/Message/MessageSimple/MessageSimple.tsx +2 -14
  119. package/src/components/Message/hooks/useCreateMessageContext.ts +0 -3
  120. package/src/components/MessageInput/AttachButton.tsx +12 -47
  121. package/src/components/MessageInput/CommandsButton.tsx +9 -23
  122. package/src/components/MessageInput/MessageInput.tsx +10 -22
  123. package/src/components/MessageInput/MoreOptionsButton.tsx +3 -53
  124. package/src/components/MessageInput/__tests__/__snapshots__/AttachButton.test.js.snap +2 -2
  125. package/src/components/MessageInput/components/AudioRecorder/AudioRecorder.tsx +36 -52
  126. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +27 -42
  127. package/src/components/MessageInput/components/InputEditingStateHeader.tsx +18 -44
  128. package/src/components/MessageInput/components/InputGiphySearch.tsx +27 -51
  129. package/src/components/MessageInput/components/InputReplyStateHeader.tsx +19 -44
  130. package/src/components/MessageList/MessageList.tsx +1 -1
  131. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +2 -2
  132. package/src/contexts/messageContext/MessageContext.tsx +1 -1
  133. package/src/contexts/messageInputContext/MessageInputContext.tsx +3 -3
  134. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +0 -3
  135. package/src/utils/utils.ts +2 -1
  136. package/src/version.json +1 -1
@@ -132,10 +132,7 @@ export type MessageActionHandlers<
132
132
 
133
133
  export type MessagePropsWithContext<
134
134
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
135
- > = Pick<
136
- ChannelContextValue<StreamChatGenerics>,
137
- 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'
138
- > &
135
+ > = Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'enforceUniqueReaction' | 'members'> &
139
136
  Pick<KeyboardContextValue, 'dismissKeyboard'> &
140
137
  Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &
141
138
  Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &
@@ -245,7 +242,6 @@ const MessageWithContext = <
245
242
  chatContext,
246
243
  deleteMessage: deleteMessageFromContext,
247
244
  deleteReaction,
248
- disabled,
249
245
  dismissKeyboard,
250
246
  dismissKeyboardOnMessageTouch,
251
247
  enableLongPress = true,
@@ -627,7 +623,7 @@ const MessageWithContext = <
627
623
  };
628
624
 
629
625
  const onLongPressMessage =
630
- disabled || hasAttachmentActions || isBlockedMessage(message)
626
+ hasAttachmentActions || isBlockedMessage(message)
631
627
  ? () => null
632
628
  : onLongPressMessageProp
633
629
  ? (payload?: TouchableHandlerPayload) =>
@@ -662,7 +658,6 @@ const MessageWithContext = <
662
658
  actionsEnabled,
663
659
  alignment,
664
660
  channel,
665
- disabled,
666
661
  files: attachments.files,
667
662
  goToMessage,
668
663
  groupStyles,
@@ -780,7 +775,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
780
775
  ) => {
781
776
  const {
782
777
  chatContext: { mutedUsers: prevMutedUsers },
783
- disabled: prevDisabled,
784
778
  goToMessage: prevGoToMessage,
785
779
  groupStyles: prevGroupStyles,
786
780
  isAttachmentEqual,
@@ -794,7 +788,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
794
788
  } = prevProps;
795
789
  const {
796
790
  chatContext: { mutedUsers: nextMutedUsers },
797
- disabled: nextDisabled,
798
791
  goToMessage: nextGoToMessage,
799
792
  groupStyles: nextGroupStyles,
800
793
  isTargetedMessage: nextIsTargetedMessage,
@@ -806,9 +799,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
806
799
  t: nextT,
807
800
  } = nextProps;
808
801
 
809
- const disabledEqual = prevDisabled === nextDisabled;
810
- if (!disabledEqual) return false;
811
-
812
802
  const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;
813
803
  if (!membersEqual) return false;
814
804
 
@@ -935,8 +925,7 @@ export const Message = <
935
925
  >(
936
926
  props: MessageProps<StreamChatGenerics>,
937
927
  ) => {
938
- const { channel, disabled, enforceUniqueReaction, members } =
939
- useChannelContext<StreamChatGenerics>();
928
+ const { channel, enforceUniqueReaction, members } = useChannelContext<StreamChatGenerics>();
940
929
  const chatContext = useChatContext<StreamChatGenerics>();
941
930
  const { dismissKeyboard } = useKeyboardContext();
942
931
  const { setData } = useMessageOverlayContext<StreamChatGenerics>();
@@ -951,7 +940,6 @@ export const Message = <
951
940
  {...{
952
941
  channel,
953
942
  chatContext,
954
- disabled,
955
943
  dismissKeyboard,
956
944
  enforceUniqueReaction,
957
945
  members,
@@ -63,7 +63,6 @@ export type MessageContentPropsWithContext<
63
63
  > = Pick<
64
64
  MessageContextValue<StreamChatGenerics>,
65
65
  | 'alignment'
66
- | 'disabled'
67
66
  | 'isEditedMessageOpen'
68
67
  | 'goToMessage'
69
68
  | 'groupStyles'
@@ -116,7 +115,6 @@ const MessageContentWithContext = <
116
115
  additionalTouchableProps,
117
116
  alignment,
118
117
  Attachment,
119
- disabled,
120
118
  FileAttachmentGroup,
121
119
  Gallery,
122
120
  groupStyles,
@@ -272,7 +270,7 @@ const MessageContentWithContext = <
272
270
  return (
273
271
  <TouchableOpacity
274
272
  activeOpacity={0.7}
275
- disabled={disabled || preventPress}
273
+ disabled={preventPress}
276
274
  onLongPress={(event) => {
277
275
  if (onLongPress) {
278
276
  onLongPress({
@@ -402,7 +400,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
402
400
  nextProps: MessageContentPropsWithContext<StreamChatGenerics>,
403
401
  ) => {
404
402
  const {
405
- disabled: prevDisabled,
406
403
  goToMessage: prevGoToMessage,
407
404
  groupStyles: prevGroupStyles,
408
405
  hasReactions: prevHasReactions,
@@ -418,7 +415,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
418
415
  t: prevT,
419
416
  } = prevProps;
420
417
  const {
421
- disabled: nextDisabled,
422
418
  goToMessage: nextGoToMessage,
423
419
  groupStyles: nextGroupStyles,
424
420
  hasReactions: nextHasReactions,
@@ -433,9 +429,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
433
429
  t: nextT,
434
430
  } = nextProps;
435
431
 
436
- const disabledEqual = prevDisabled === nextDisabled;
437
- if (!disabledEqual) return false;
438
-
439
432
  const hasReactionsEqual = prevHasReactions === nextHasReactions;
440
433
  if (!hasReactionsEqual) return false;
441
434
 
@@ -554,7 +547,6 @@ export const MessageContent = <
554
547
  ) => {
555
548
  const {
556
549
  alignment,
557
- disabled,
558
550
  goToMessage,
559
551
  groupStyles,
560
552
  hasReactions,
@@ -598,7 +590,6 @@ export const MessageContent = <
598
590
  additionalTouchableProps,
599
591
  alignment,
600
592
  Attachment,
601
- disabled,
602
593
  FileAttachmentGroup,
603
594
  Gallery,
604
595
  goToMessage,
@@ -31,13 +31,7 @@ export type MessageSimplePropsWithContext<
31
31
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
32
32
  > = Pick<
33
33
  MessageContextValue<StreamChatGenerics>,
34
- | 'alignment'
35
- | 'channel'
36
- | 'disabled'
37
- | 'isEditedMessageOpen'
38
- | 'groupStyles'
39
- | 'hasReactions'
40
- | 'message'
34
+ 'alignment' | 'channel' | 'isEditedMessageOpen' | 'groupStyles' | 'hasReactions' | 'message'
41
35
  > &
42
36
  Pick<
43
37
  MessagesContextValue<StreamChatGenerics>,
@@ -125,7 +119,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
125
119
  ) => {
126
120
  const {
127
121
  channel: prevChannel,
128
- disabled: prevDisabled,
129
122
  groupStyles: prevGroupStyles,
130
123
  hasReactions: prevHasReactions,
131
124
  isEditedMessageOpen: prevIsEditedMessageOpen,
@@ -134,7 +127,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
134
127
  } = prevProps;
135
128
  const {
136
129
  channel: nextChannel,
137
- disabled: nextDisabled,
138
130
  groupStyles: nextGroupStyles,
139
131
  hasReactions: nextHasReactions,
140
132
  isEditedMessageOpen: nextIsEditedMessageOpen,
@@ -142,9 +134,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
142
134
  myMessageTheme: nextMyMessageTheme,
143
135
  } = nextProps;
144
136
 
145
- const disabledEqual = prevDisabled === nextDisabled;
146
- if (!disabledEqual) return false;
147
-
148
137
  const hasReactionsEqual = prevHasReactions === nextHasReactions;
149
138
  if (!hasReactionsEqual) return false;
150
139
 
@@ -231,7 +220,7 @@ export const MessageSimple = <
231
220
  >(
232
221
  props: MessageSimpleProps<StreamChatGenerics>,
233
222
  ) => {
234
- const { alignment, channel, disabled, groupStyles, hasReactions, isEditedMessageOpen, message } =
223
+ const { alignment, channel, groupStyles, hasReactions, isEditedMessageOpen, message } =
235
224
  useMessageContext<StreamChatGenerics>();
236
225
  const {
237
226
  enableMessageGroupingByUser,
@@ -246,7 +235,6 @@ export const MessageSimple = <
246
235
  {...{
247
236
  alignment,
248
237
  channel,
249
- disabled,
250
238
  enableMessageGroupingByUser,
251
239
  groupStyles,
252
240
  hasReactions,
@@ -10,7 +10,6 @@ export const useCreateMessageContext = <
10
10
  actionsEnabled,
11
11
  alignment,
12
12
  channel,
13
- disabled,
14
13
  files,
15
14
  goToMessage,
16
15
  groupStyles,
@@ -63,7 +62,6 @@ export const useCreateMessageContext = <
63
62
  actionsEnabled,
64
63
  alignment,
65
64
  channel,
66
- disabled,
67
65
  files,
68
66
  goToMessage,
69
67
  groupStyles,
@@ -106,7 +104,6 @@ export const useCreateMessageContext = <
106
104
  actionsEnabled,
107
105
  quotedMessageDeletedValue,
108
106
  alignment,
109
- disabled,
110
107
  goToMessage,
111
108
  groupStylesLength,
112
109
  hasReactions,
@@ -3,29 +3,17 @@ import type { GestureResponderEvent } from 'react-native';
3
3
  import { Pressable } from 'react-native';
4
4
 
5
5
  import { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';
6
- import {
7
- ChannelContextValue,
8
- useChannelContext,
9
- } from '../../contexts/channelContext/ChannelContext';
10
6
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
11
7
  import { Attach } from '../../icons/Attach';
12
8
 
13
- import type { DefaultStreamChatGenerics } from '../../types/types';
14
-
15
- type AttachButtonPropsWithContext<
16
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
17
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> & {
9
+ type AttachButtonPropsWithContext = {
18
10
  /** Function that opens attachment options bottom sheet */
19
11
  handleOnPress?: ((event: GestureResponderEvent) => void) & (() => void);
20
12
  selectedPicker?: 'images';
21
13
  };
22
14
 
23
- const AttachButtonWithContext = <
24
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
25
- >(
26
- props: AttachButtonPropsWithContext<StreamChatGenerics>,
27
- ) => {
28
- const { disabled, handleOnPress, selectedPicker } = props;
15
+ const AttachButtonWithContext = (props: AttachButtonPropsWithContext) => {
16
+ const { handleOnPress, selectedPicker } = props;
29
17
  const {
30
18
  theme: {
31
19
  colors: { accent_blue, grey },
@@ -34,34 +22,18 @@ const AttachButtonWithContext = <
34
22
  } = useTheme();
35
23
 
36
24
  return (
37
- <Pressable
38
- disabled={disabled}
39
- onPress={disabled ? () => null : handleOnPress}
40
- style={[attachButton]}
41
- testID='attach-button'
42
- >
25
+ <Pressable onPress={handleOnPress} style={[attachButton]} testID='attach-button'>
43
26
  <Attach pathFill={selectedPicker === 'images' ? accent_blue : grey} />
44
27
  </Pressable>
45
28
  );
46
29
  };
47
30
 
48
- const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
49
- prevProps: AttachButtonPropsWithContext<StreamChatGenerics>,
50
- nextProps: AttachButtonPropsWithContext<StreamChatGenerics>,
31
+ const areEqual = (
32
+ prevProps: AttachButtonPropsWithContext,
33
+ nextProps: AttachButtonPropsWithContext,
51
34
  ) => {
52
- const {
53
- disabled: prevDisabled,
54
- handleOnPress: prevHandleOnPress,
55
- selectedPicker: prevSelectedPicker,
56
- } = prevProps;
57
- const {
58
- disabled: nextDisabled,
59
- handleOnPress: nextHandleOnPress,
60
- selectedPicker: nextSelectedPicker,
61
- } = nextProps;
62
-
63
- const disabledEqual = prevDisabled === nextDisabled;
64
- if (!disabledEqual) return false;
35
+ const { handleOnPress: prevHandleOnPress, selectedPicker: prevSelectedPicker } = prevProps;
36
+ const { handleOnPress: nextHandleOnPress, selectedPicker: nextSelectedPicker } = nextProps;
65
37
 
66
38
  const handleOnPressEqual = prevHandleOnPress === nextHandleOnPress;
67
39
  if (!handleOnPressEqual) return false;
@@ -77,22 +49,15 @@ const MemoizedAttachButton = React.memo(
77
49
  areEqual,
78
50
  ) as typeof AttachButtonWithContext;
79
51
 
80
- export type AttachButtonProps<
81
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
82
- > = Partial<AttachButtonPropsWithContext<StreamChatGenerics>>;
52
+ export type AttachButtonProps = Partial<AttachButtonPropsWithContext>;
83
53
 
84
54
  /**
85
55
  * UI Component for attach button in MessageInput component.
86
56
  */
87
- export const AttachButton = <
88
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
89
- >(
90
- props: AttachButtonProps<StreamChatGenerics>,
91
- ) => {
92
- const { disabled = false } = useChannelContext<StreamChatGenerics>();
57
+ export const AttachButton = (props: AttachButtonProps) => {
93
58
  const { selectedPicker } = useAttachmentPickerContext();
94
59
 
95
- return <MemoizedAttachButton {...{ disabled, selectedPicker }} {...props} />;
60
+ return <MemoizedAttachButton {...{ selectedPicker }} {...props} />;
96
61
  };
97
62
 
98
63
  AttachButton.displayName = 'AttachButton{messageInput}';
@@ -2,10 +2,6 @@ import React from 'react';
2
2
  import type { GestureResponderEvent } from 'react-native';
3
3
  import { Pressable } from 'react-native';
4
4
 
5
- import {
6
- ChannelContextValue,
7
- useChannelContext,
8
- } from '../../contexts/channelContext/ChannelContext';
9
5
  import {
10
6
  isSuggestionCommand,
11
7
  SuggestionsContextValue,
@@ -18,18 +14,17 @@ import type { DefaultStreamChatGenerics } from '../../types/types';
18
14
 
19
15
  type CommandsButtonPropsWithContext<
20
16
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
21
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> &
22
- Pick<SuggestionsContextValue<StreamChatGenerics>, 'suggestions'> & {
23
- /** Function that opens commands selector */
24
- handleOnPress?: ((event: GestureResponderEvent) => void) & (() => void);
25
- };
17
+ > = Pick<SuggestionsContextValue<StreamChatGenerics>, 'suggestions'> & {
18
+ /** Function that opens commands selector */
19
+ handleOnPress?: ((event: GestureResponderEvent) => void) & (() => void);
20
+ };
26
21
 
27
22
  const CommandsButtonWithContext = <
28
23
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
29
24
  >(
30
25
  props: CommandsButtonPropsWithContext<StreamChatGenerics>,
31
26
  ) => {
32
- const { disabled, handleOnPress, suggestions } = props;
27
+ const { handleOnPress, suggestions } = props;
33
28
 
34
29
  const {
35
30
  theme: {
@@ -39,12 +34,7 @@ const CommandsButtonWithContext = <
39
34
  } = useTheme();
40
35
 
41
36
  return (
42
- <Pressable
43
- disabled={disabled}
44
- onPress={handleOnPress}
45
- style={[commandsButton]}
46
- testID='commands-button'
47
- >
37
+ <Pressable onPress={handleOnPress} style={[commandsButton]} testID='commands-button'>
48
38
  <Lightning
49
39
  pathFill={
50
40
  suggestions && suggestions.data.some((suggestion) => isSuggestionCommand(suggestion))
@@ -60,11 +50,8 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
60
50
  prevProps: CommandsButtonPropsWithContext<StreamChatGenerics>,
61
51
  nextProps: CommandsButtonPropsWithContext<StreamChatGenerics>,
62
52
  ) => {
63
- const { disabled: prevDisabled, suggestions: prevSuggestions } = prevProps;
64
- const { disabled: nextDisabled, suggestions: nextSuggestions } = nextProps;
65
-
66
- const disabledEqual = prevDisabled === nextDisabled;
67
- if (!disabledEqual) return false;
53
+ const { suggestions: prevSuggestions } = prevProps;
54
+ const { suggestions: nextSuggestions } = nextProps;
68
55
 
69
56
  const suggestionsEqual = !!prevSuggestions === !!nextSuggestions;
70
57
  if (!suggestionsEqual) return false;
@@ -89,10 +76,9 @@ export const CommandsButton = <
89
76
  >(
90
77
  props: CommandsButtonProps<StreamChatGenerics>,
91
78
  ) => {
92
- const { disabled = false } = useChannelContext<StreamChatGenerics>();
93
79
  const { suggestions } = useSuggestionsContext<StreamChatGenerics>();
94
80
 
95
- return <MemoizedCommandsButton {...{ disabled, suggestions }} {...props} />;
81
+ return <MemoizedCommandsButton {...{ suggestions }} {...props} />;
96
82
  };
97
83
 
98
84
  CommandsButton.displayName = 'CommandsButton{messageInput}';
@@ -21,7 +21,7 @@ import type { UserResponse } from 'stream-chat';
21
21
  import { useAudioController } from './hooks/useAudioController';
22
22
  import { useCountdown } from './hooks/useCountdown';
23
23
 
24
- import { ChatContextValue, useChatContext } from '../../contexts';
24
+ import { ChatContextValue, useChatContext, useOwnCapabilitiesContext } from '../../contexts';
25
25
  import {
26
26
  AttachmentPickerContextValue,
27
27
  useAttachmentPickerContext,
@@ -38,7 +38,6 @@ import {
38
38
  MessagesContextValue,
39
39
  useMessagesContext,
40
40
  } from '../../contexts/messagesContext/MessagesContext';
41
- import { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';
42
41
  import {
43
42
  SuggestionsContextValue,
44
43
  useSuggestionsContext,
@@ -96,10 +95,7 @@ type MessageInputPropsWithContext<
96
95
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
97
96
  > = Pick<AttachmentPickerContextValue, 'AttachmentPickerSelectionBar'> &
98
97
  Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &
99
- Pick<
100
- ChannelContextValue<StreamChatGenerics>,
101
- 'disabled' | 'members' | 'threadList' | 'watchers'
102
- > &
98
+ Pick<ChannelContextValue<StreamChatGenerics>, 'members' | 'threadList' | 'watchers'> &
103
99
  Pick<
104
100
  MessageInputContextValue<StreamChatGenerics>,
105
101
  | 'additionalTextInputProps'
@@ -184,7 +180,6 @@ const MessageInputWithContext = <
184
180
  closeAttachmentPicker,
185
181
  cooldownEndsAt,
186
182
  CooldownTimer,
187
- disabled,
188
183
  editing,
189
184
  FileUploadPreview,
190
185
  fileUploads,
@@ -457,7 +452,8 @@ const MessageInputWithContext = <
457
452
  fileUploads.length > 0 ||
458
453
  mentionedUsers.length > 0 ||
459
454
  imageUploads.length > 0 ||
460
- numberOfUploads > 0)
455
+ numberOfUploads > 0) &&
456
+ resetInput
461
457
  ) {
462
458
  resetInput();
463
459
  }
@@ -517,7 +513,6 @@ const MessageInputWithContext = <
517
513
  };
518
514
 
519
515
  const additionalTextInputContainerProps = {
520
- editable: disabled ? false : undefined,
521
516
  ...additionalTextInputProps,
522
517
  };
523
518
 
@@ -771,12 +766,7 @@ const MessageInputWithContext = <
771
766
  ) : (
772
767
  <View style={[styles.sendButtonContainer, sendButtonContainer]}>
773
768
  <SendButton
774
- disabled={
775
- disabled ||
776
- sending.current ||
777
- !isValidMessage() ||
778
- (giphyActive && !isOnline)
779
- }
769
+ disabled={sending.current || !isValidMessage() || (giphyActive && !isOnline)}
780
770
  />
781
771
  </View>
782
772
  ))}
@@ -849,7 +839,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
849
839
  asyncMessagesSlideToCancelDistance: prevAsyncMessagesSlideToCancelDistance,
850
840
  asyncUploads: prevAsyncUploads,
851
841
  audioRecordingEnabled: prevAsyncMessagesEnabled,
852
- disabled: prevDisabled,
853
842
  editing: prevEditing,
854
843
  fileUploads: prevFileUploads,
855
844
  giphyActive: prevGiphyActive,
@@ -872,7 +861,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
872
861
  asyncMessagesSlideToCancelDistance: nextAsyncMessagesSlideToCancelDistance,
873
862
  asyncUploads: nextAsyncUploads,
874
863
  audioRecordingEnabled: nextAsyncMessagesEnabled,
875
- disabled: nextDisabled,
876
864
  editing: nextEditing,
877
865
  fileUploads: nextFileUploads,
878
866
  giphyActive: nextGiphyActive,
@@ -911,9 +899,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
911
899
  prevAsyncMessagesSlideToCancelDistance === nextAsyncMessagesSlideToCancelDistance;
912
900
  if (!asyncMessagesSlideToCancelDistanceEqual) return false;
913
901
 
914
- const disabledEqual = prevDisabled === nextDisabled;
915
- if (!disabledEqual) return false;
916
-
917
902
  const editingEqual = !!prevEditing === !!nextEditing;
918
903
  if (!editingEqual) return false;
919
904
 
@@ -1071,7 +1056,11 @@ export const MessageInput = <
1071
1056
 
1072
1057
  const { t } = useTranslationContext();
1073
1058
 
1074
- if ((disabled || !ownCapabilities.sendMessage) && SendMessageDisallowedIndicator) {
1059
+ /**
1060
+ * Disable the message input if the channel is frozen, or the user doesn't have the capability to send a message.
1061
+ * Enable it in frozen mode, if it the input has editing state.
1062
+ */
1063
+ if (!editing && disabled && !ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {
1075
1064
  return <SendMessageDisallowedIndicator />;
1076
1065
  }
1077
1066
 
@@ -1099,7 +1088,6 @@ export const MessageInput = <
1099
1088
  closeAttachmentPicker,
1100
1089
  cooldownEndsAt,
1101
1090
  CooldownTimer,
1102
- disabled,
1103
1091
  editing,
1104
1092
  FileUploadPreview,
1105
1093
  fileUploads,
@@ -2,28 +2,16 @@ import React from 'react';
2
2
  import type { GestureResponderEvent } from 'react-native';
3
3
  import { TouchableOpacity } from 'react-native-gesture-handler';
4
4
 
5
- import {
6
- ChannelContextValue,
7
- useChannelContext,
8
- } from '../../contexts/channelContext/ChannelContext';
9
5
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
10
6
  import { CircleRight } from '../../icons/CircleRight';
11
7
 
12
- import type { DefaultStreamChatGenerics } from '../../types/types';
13
-
14
- type MoreOptionsButtonPropsWithContext<
15
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
16
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> & {
8
+ export type MoreOptionsButtonProps = {
17
9
  /** Function that opens attachment options bottom sheet */
18
10
  handleOnPress?: ((event: GestureResponderEvent) => void) & (() => void);
19
11
  };
20
12
 
21
- const MoreOptionsButtonWithContext = <
22
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
23
- >(
24
- props: MoreOptionsButtonPropsWithContext<StreamChatGenerics>,
25
- ) => {
26
- const { disabled, handleOnPress } = props;
13
+ export const MoreOptionsButton = (props: MoreOptionsButtonProps) => {
14
+ const { handleOnPress } = props;
27
15
 
28
16
  const {
29
17
  theme: {
@@ -34,7 +22,6 @@ const MoreOptionsButtonWithContext = <
34
22
 
35
23
  return (
36
24
  <TouchableOpacity
37
- disabled={disabled}
38
25
  hitSlop={{ bottom: 15, left: 15, right: 15, top: 15 }}
39
26
  onPress={handleOnPress}
40
27
  style={[moreOptionsButton]}
@@ -45,41 +32,4 @@ const MoreOptionsButtonWithContext = <
45
32
  );
46
33
  };
47
34
 
48
- const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
49
- prevProps: MoreOptionsButtonPropsWithContext<StreamChatGenerics>,
50
- nextProps: MoreOptionsButtonPropsWithContext<StreamChatGenerics>,
51
- ) => {
52
- const { disabled: prevDisabled, handleOnPress: prevHandleOnPress } = prevProps;
53
- const { disabled: nextDisabled, handleOnPress: nextHandleOnPress } = nextProps;
54
- const disabledEqual = prevDisabled === nextDisabled;
55
- if (!disabledEqual) return false;
56
-
57
- const handleOnPressEqual = prevHandleOnPress === nextHandleOnPress;
58
- if (!handleOnPressEqual) return false;
59
-
60
- return true;
61
- };
62
-
63
- const MemoizedMoreOptionsButton = React.memo(
64
- MoreOptionsButtonWithContext,
65
- areEqual,
66
- ) as typeof MoreOptionsButtonWithContext;
67
-
68
- export type MoreOptionsButtonProps<
69
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
70
- > = Partial<MoreOptionsButtonPropsWithContext<StreamChatGenerics>>;
71
-
72
- /**
73
- * UI Component for more options button in MessageInput component.
74
- */
75
- export const MoreOptionsButton = <
76
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
77
- >(
78
- props: MoreOptionsButtonProps<StreamChatGenerics>,
79
- ) => {
80
- const { disabled = false } = useChannelContext<StreamChatGenerics>();
81
-
82
- return <MemoizedMoreOptionsButton {...{ disabled }} {...props} />;
83
- };
84
-
85
35
  MoreOptionsButton.displayName = 'MoreOptionsButton{messageInput}';
@@ -6,7 +6,7 @@ exports[`AttachButton should render a disabled AttachButton 1`] = `
6
6
  {
7
7
  "busy": undefined,
8
8
  "checked": undefined,
9
- "disabled": true,
9
+ "disabled": undefined,
10
10
  "expanded": undefined,
11
11
  "selected": undefined,
12
12
  }
@@ -101,7 +101,7 @@ exports[`AttachButton should render an enabled AttachButton 1`] = `
101
101
  {
102
102
  "busy": undefined,
103
103
  "checked": undefined,
104
- "disabled": false,
104
+ "disabled": undefined,
105
105
  "expanded": undefined,
106
106
  "selected": undefined,
107
107
  }