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
@@ -5,10 +5,6 @@ import Animated from 'react-native-reanimated';
5
5
 
6
6
  import dayjs from 'dayjs';
7
7
 
8
- import {
9
- ChannelContextValue,
10
- useChannelContext,
11
- } from '../../../../contexts/channelContext/ChannelContext';
12
8
  import {
13
9
  MessageInputContextValue,
14
10
  useMessageInputContext,
@@ -21,42 +17,41 @@ import type { DefaultStreamChatGenerics } from '../../../../types/types';
21
17
 
22
18
  type AudioRecorderPropsWithContext<
23
19
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
24
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> &
25
- Pick<MessageInputContextValue<StreamChatGenerics>, 'asyncMessagesMultiSendEnabled'> & {
26
- /**
27
- * Function to stop and delete the voice recording.
28
- */
29
- deleteVoiceRecording: () => Promise<void>;
30
- /**
31
- * Boolean used to show if the voice recording state is locked. This makes sure the mic button shouldn't be pressed any longer.
32
- * When the mic is locked the `AudioRecordingInProgress` component shows up.
33
- */
34
- micLocked: boolean;
35
- /**
36
- * The current voice recording that is in progress.
37
- */
38
- recording: AudioRecordingReturnType;
39
- /**
40
- * Boolean to determine if the recording has been stopped.
41
- */
42
- recordingStopped: boolean;
43
- /**
44
- * Function to stop the ongoing voice recording.
45
- */
46
- stopVoiceRecording: () => Promise<void>;
47
- /**
48
- * Function to upload the voice recording.
49
- */
50
- uploadVoiceRecording: (multiSendEnabled: boolean) => Promise<void>;
51
- /**
52
- * The duration of the voice recording.
53
- */
54
- recordingDuration?: number;
55
- /**
56
- * Style used in slide to cancel container.
57
- */
58
- slideToCancelStyle?: StyleProp<ViewStyle>;
59
- };
20
+ > = Pick<MessageInputContextValue<StreamChatGenerics>, 'asyncMessagesMultiSendEnabled'> & {
21
+ /**
22
+ * Function to stop and delete the voice recording.
23
+ */
24
+ deleteVoiceRecording: () => Promise<void>;
25
+ /**
26
+ * Boolean used to show if the voice recording state is locked. This makes sure the mic button shouldn't be pressed any longer.
27
+ * When the mic is locked the `AudioRecordingInProgress` component shows up.
28
+ */
29
+ micLocked: boolean;
30
+ /**
31
+ * The current voice recording that is in progress.
32
+ */
33
+ recording: AudioRecordingReturnType;
34
+ /**
35
+ * Boolean to determine if the recording has been stopped.
36
+ */
37
+ recordingStopped: boolean;
38
+ /**
39
+ * Function to stop the ongoing voice recording.
40
+ */
41
+ stopVoiceRecording: () => Promise<void>;
42
+ /**
43
+ * Function to upload the voice recording.
44
+ */
45
+ uploadVoiceRecording: (multiSendEnabled: boolean) => Promise<void>;
46
+ /**
47
+ * The duration of the voice recording.
48
+ */
49
+ recordingDuration?: number;
50
+ /**
51
+ * Style used in slide to cancel container.
52
+ */
53
+ slideToCancelStyle?: StyleProp<ViewStyle>;
54
+ };
60
55
 
61
56
  const StopRecording = ({
62
57
  stopVoiceRecordingHandler,
@@ -110,10 +105,8 @@ const UploadRecording = ({
110
105
 
111
106
  const DeleteRecording = ({
112
107
  deleteVoiceRecordingHandler,
113
- disabled,
114
108
  }: {
115
109
  deleteVoiceRecordingHandler: () => Promise<void>;
116
- disabled?: boolean;
117
110
  }) => {
118
111
  const {
119
112
  theme: {
@@ -125,7 +118,6 @@ const DeleteRecording = ({
125
118
  } = useTheme();
126
119
  return (
127
120
  <Pressable
128
- disabled={disabled}
129
121
  onPress={deleteVoiceRecordingHandler}
130
122
  style={[styles.deleteContainer, deleteContainer]}
131
123
  testID='delete-button'
@@ -143,7 +135,6 @@ const AudioRecorderWithContext = <
143
135
  const {
144
136
  asyncMessagesMultiSendEnabled,
145
137
  deleteVoiceRecording,
146
- disabled,
147
138
  micLocked,
148
139
  recordingDuration,
149
140
  recordingStopped,
@@ -165,7 +156,7 @@ const AudioRecorderWithContext = <
165
156
  if (recordingStopped) {
166
157
  return (
167
158
  <>
168
- <DeleteRecording deleteVoiceRecordingHandler={deleteVoiceRecording} disabled={disabled} />
159
+ <DeleteRecording deleteVoiceRecordingHandler={deleteVoiceRecording} />
169
160
  <UploadRecording
170
161
  asyncMessagesMultiSendEnabled={asyncMessagesMultiSendEnabled}
171
162
  uploadVoiceRecordingHandler={uploadVoiceRecording}
@@ -212,7 +203,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
212
203
  ) => {
213
204
  const {
214
205
  asyncMessagesMultiSendEnabled: prevAsyncMessagesMultiSendEnabled,
215
- disabled: prevDisabled,
216
206
  micLocked: prevMicLocked,
217
207
  recording: prevRecording,
218
208
  recordingDuration: prevRecordingDuration,
@@ -220,7 +210,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
220
210
  } = prevProps;
221
211
  const {
222
212
  asyncMessagesMultiSendEnabled: nextAsyncMessagesMultiSendEnabled,
223
- disabled: nextDisabled,
224
213
  micLocked: nextMicLocked,
225
214
  recording: nextRecording,
226
215
  recordingDuration: nextRecordingDuration,
@@ -231,9 +220,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
231
220
  prevAsyncMessagesMultiSendEnabled === nextAsyncMessagesMultiSendEnabled;
232
221
  if (!asyncMessagesMultiSendEnabledEqual) return false;
233
222
 
234
- const disabledEqual = prevDisabled === nextDisabled;
235
- if (!disabledEqual) return false;
236
-
237
223
  const micLockedEqual = prevMicLocked === nextMicLocked;
238
224
  if (!micLockedEqual) return false;
239
225
 
@@ -275,14 +261,12 @@ export const AudioRecorder = <
275
261
  >(
276
262
  props: AudioRecorderProps<StreamChatGenerics>,
277
263
  ) => {
278
- const { disabled = false } = useChannelContext<StreamChatGenerics>();
279
264
  const { asyncMessagesMultiSendEnabled } = useMessageInputContext<StreamChatGenerics>();
280
265
 
281
266
  return (
282
267
  <MemoizedAudioRecorder
283
268
  {...{
284
269
  asyncMessagesMultiSendEnabled,
285
- disabled,
286
270
  }}
287
271
  {...props}
288
272
  />
@@ -1,10 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Alert, Linking, Pressable, StyleSheet } from 'react-native';
3
3
 
4
- import {
5
- ChannelContextValue,
6
- useChannelContext,
7
- } from '../../../../contexts/channelContext/ChannelContext';
8
4
  import {
9
5
  MessageInputContextValue,
10
6
  useMessageInputContext,
@@ -18,33 +14,32 @@ import type { DefaultStreamChatGenerics } from '../../../../types/types';
18
14
 
19
15
  type AudioRecordingButtonPropsWithContext<
20
16
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
21
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> &
22
- Pick<MessageInputContextValue<StreamChatGenerics>, 'asyncMessagesMinimumPressDuration'> & {
23
- /**
24
- * The current voice recording that is in progress.
25
- */
26
- recording: AudioRecordingReturnType;
27
- /**
28
- * Size of the mic button.
29
- */
30
- buttonSize?: number;
31
- /**
32
- * Handler to determine what should happen on long press of the mic button.
33
- */
34
- handleLongPress?: () => void;
35
- /**
36
- * Handler to determine what should happen on press of the mic button.
37
- */
38
- handlePress?: () => void;
39
- /**
40
- * Boolean to determine if the audio recording permissions are granted.
41
- */
42
- permissionsGranted?: boolean;
43
- /**
44
- * Function to start the voice recording.
45
- */
46
- startVoiceRecording?: () => Promise<void>;
47
- };
17
+ > = Pick<MessageInputContextValue<StreamChatGenerics>, 'asyncMessagesMinimumPressDuration'> & {
18
+ /**
19
+ * The current voice recording that is in progress.
20
+ */
21
+ recording: AudioRecordingReturnType;
22
+ /**
23
+ * Size of the mic button.
24
+ */
25
+ buttonSize?: number;
26
+ /**
27
+ * Handler to determine what should happen on long press of the mic button.
28
+ */
29
+ handleLongPress?: () => void;
30
+ /**
31
+ * Handler to determine what should happen on press of the mic button.
32
+ */
33
+ handlePress?: () => void;
34
+ /**
35
+ * Boolean to determine if the audio recording permissions are granted.
36
+ */
37
+ permissionsGranted?: boolean;
38
+ /**
39
+ * Function to start the voice recording.
40
+ */
41
+ startVoiceRecording?: () => Promise<void>;
42
+ };
48
43
 
49
44
  const AudioRecordingButtonWithContext = <
50
45
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
@@ -54,7 +49,6 @@ const AudioRecordingButtonWithContext = <
54
49
  const {
55
50
  asyncMessagesMinimumPressDuration,
56
51
  buttonSize,
57
- disabled,
58
52
  handleLongPress,
59
53
  handlePress,
60
54
  permissionsGranted,
@@ -107,7 +101,6 @@ const AudioRecordingButtonWithContext = <
107
101
  return (
108
102
  <Pressable
109
103
  delayLongPress={asyncMessagesMinimumPressDuration}
110
- disabled={disabled}
111
104
  onLongPress={onLongPressHandler}
112
105
  onPress={onPressHandler}
113
106
  style={({ pressed }) => [
@@ -132,12 +125,10 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
132
125
  ) => {
133
126
  const {
134
127
  asyncMessagesMinimumPressDuration: prevAsyncMessagesMinimumPressDuration,
135
- disabled: prevDisabled,
136
128
  recording: prevRecording,
137
129
  } = prevProps;
138
130
  const {
139
131
  asyncMessagesMinimumPressDuration: nextAsyncMessagesMinimumPressDuration,
140
- disabled: nextDisabled,
141
132
  recording: nextRecording,
142
133
  } = nextProps;
143
134
 
@@ -145,9 +136,6 @@ const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = Default
145
136
  prevAsyncMessagesMinimumPressDuration === nextAsyncMessagesMinimumPressDuration;
146
137
  if (!asyncMessagesMinimumPressDurationEqual) return false;
147
138
 
148
- const disabledEqual = prevDisabled === nextDisabled;
149
- if (!disabledEqual) return false;
150
-
151
139
  const recordingEqual = prevRecording === nextRecording;
152
140
  if (!recordingEqual) return false;
153
141
 
@@ -173,12 +161,9 @@ export const AudioRecordingButton = <
173
161
  >(
174
162
  props: AudioRecordingButtonProps<StreamChatGenerics>,
175
163
  ) => {
176
- const { disabled = false } = useChannelContext<StreamChatGenerics>();
177
164
  const { asyncMessagesMinimumPressDuration } = useMessageInputContext<StreamChatGenerics>();
178
165
 
179
- return (
180
- <MemoizedAudioRecordingButton {...{ asyncMessagesMinimumPressDuration, disabled }} {...props} />
181
- );
166
+ return <MemoizedAudioRecordingButton {...{ asyncMessagesMinimumPressDuration }} {...props} />;
182
167
  };
183
168
 
184
169
  const styles = StyleSheet.create({
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
3
3
 
4
- import type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';
5
4
  import {
6
5
  MessageInputContextValue,
7
6
  useMessageInputContext,
@@ -25,19 +24,23 @@ const styles = StyleSheet.create({
25
24
  },
26
25
  });
27
26
 
28
- export type InputEditingStateHeaderPropsWithContext<
27
+ export type InputEditingStateHeaderProps<
29
28
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
30
- > = Pick<MessageInputContextValue<StreamChatGenerics>, 'clearEditingState' | 'resetInput'> &
31
- Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'>;
29
+ > = Partial<Pick<MessageInputContextValue<StreamChatGenerics>, 'clearEditingState' | 'resetInput'>>;
32
30
 
33
- export const InputEditingStateHeaderWithContext = <
31
+ export const InputEditingStateHeader = <
34
32
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
35
33
  >({
36
- clearEditingState,
37
- disabled,
38
- resetInput,
39
- }: InputEditingStateHeaderPropsWithContext<StreamChatGenerics>) => {
34
+ clearEditingState: propClearEditingState,
35
+ resetInput: propResetInput,
36
+ }: InputEditingStateHeaderProps<StreamChatGenerics>) => {
40
37
  const { t } = useTranslationContext();
38
+ const { clearEditingState: contextClearEditingState, resetInput: contextResetInput } =
39
+ useMessageInputContext<StreamChatGenerics>();
40
+
41
+ const clearEditingState = propClearEditingState || contextClearEditingState;
42
+ const resetInput = propResetInput || contextResetInput;
43
+
41
44
  const {
42
45
  theme: {
43
46
  colors: { black, grey, grey_gainsboro },
@@ -54,10 +57,13 @@ export const InputEditingStateHeaderWithContext = <
54
57
  {t<string>('Editing Message')}
55
58
  </Text>
56
59
  <TouchableOpacity
57
- disabled={disabled}
58
60
  onPress={() => {
59
- resetInput();
60
- clearEditingState();
61
+ if (resetInput) {
62
+ resetInput();
63
+ }
64
+ if (clearEditingState) {
65
+ clearEditingState();
66
+ }
61
67
  }}
62
68
  testID='close-button'
63
69
  >
@@ -67,36 +73,4 @@ export const InputEditingStateHeaderWithContext = <
67
73
  );
68
74
  };
69
75
 
70
- const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
71
- prevProps: InputEditingStateHeaderPropsWithContext<StreamChatGenerics>,
72
- nextProps: InputEditingStateHeaderPropsWithContext<StreamChatGenerics>,
73
- ) => {
74
- const { disabled: prevDisabled } = prevProps;
75
- const { disabled: nextDisabled } = nextProps;
76
-
77
- const disabledEqual = prevDisabled === nextDisabled;
78
- if (!disabledEqual) return false;
79
-
80
- return true;
81
- };
82
-
83
- const MemoizedInputEditingStateHeader = React.memo(
84
- InputEditingStateHeaderWithContext,
85
- areEqual,
86
- ) as typeof InputEditingStateHeaderWithContext;
87
-
88
- export type InputEditingStateHeaderProps<
89
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
90
- > = Partial<InputEditingStateHeaderPropsWithContext<StreamChatGenerics>>;
91
-
92
- export const InputEditingStateHeader = <
93
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
94
- >(
95
- props: InputEditingStateHeaderProps<StreamChatGenerics>,
96
- ) => {
97
- const { clearEditingState, resetInput } = useMessageInputContext<StreamChatGenerics>();
98
-
99
- return <MemoizedInputEditingStateHeader {...{ clearEditingState, resetInput }} {...props} />;
100
- };
101
-
102
76
  InputEditingStateHeader.displayName = 'EditingStateHeader{messageInput}';
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
3
3
 
4
- import type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';
5
4
  import {
6
5
  MessageInputContextValue,
7
6
  useMessageInputContext,
@@ -34,23 +33,38 @@ const styles = StyleSheet.create({
34
33
  },
35
34
  });
36
35
 
37
- export type InputGiphySearchPropsWithContext<
36
+ export type InputGiphySearchProps<
38
37
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
39
- > = Pick<
40
- MessageInputContextValue<StreamChatGenerics>,
41
- 'additionalTextInputProps' | 'cooldownEndsAt' | 'setGiphyActive' | 'setShowMoreOptions'
42
- > &
43
- Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'>;
38
+ > = Partial<
39
+ Pick<
40
+ MessageInputContextValue<StreamChatGenerics>,
41
+ 'additionalTextInputProps' | 'cooldownEndsAt' | 'setGiphyActive' | 'setShowMoreOptions'
42
+ >
43
+ > & {
44
+ disabled: boolean;
45
+ };
44
46
 
45
- export const InputGiphySearchWithContext = <
47
+ export const InputGiphySearch = <
46
48
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
47
49
  >({
48
- additionalTextInputProps,
49
- cooldownEndsAt,
50
+ additionalTextInputProps: propAdditionalTextInputProps,
51
+ cooldownEndsAt: propCooldownEndsAt,
50
52
  disabled,
51
- setGiphyActive,
52
- setShowMoreOptions,
53
- }: InputGiphySearchPropsWithContext<StreamChatGenerics>) => {
53
+ setGiphyActive: propSetGiphyActive,
54
+ setShowMoreOptions: propSetShowMoreOptions,
55
+ }: InputGiphySearchProps<StreamChatGenerics>) => {
56
+ const {
57
+ additionalTextInputProps: contextAdditionalTextInputProps,
58
+ cooldownEndsAt: contextCooldownEndsAt,
59
+ setGiphyActive: contextSetGiphyActive,
60
+ setShowMoreOptions: contextSetShowMoreOptions,
61
+ } = useMessageInputContext<StreamChatGenerics>();
62
+
63
+ const additionalTextInputProps = propAdditionalTextInputProps || contextAdditionalTextInputProps;
64
+ const cooldownEndsAt = propCooldownEndsAt || contextCooldownEndsAt;
65
+ const setGiphyActive = propSetGiphyActive || contextSetGiphyActive;
66
+ const setShowMoreOptions = propSetShowMoreOptions || contextSetShowMoreOptions;
67
+
54
68
  const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);
55
69
 
56
70
  const {
@@ -88,42 +102,4 @@ export const InputGiphySearchWithContext = <
88
102
  );
89
103
  };
90
104
 
91
- const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
92
- prevProps: InputGiphySearchPropsWithContext<StreamChatGenerics>,
93
- nextProps: InputGiphySearchPropsWithContext<StreamChatGenerics>,
94
- ) => {
95
- const { disabled: prevDisabled } = prevProps;
96
- const { disabled: nextDisabled } = nextProps;
97
-
98
- const disabledEqual = prevDisabled === nextDisabled;
99
- if (!disabledEqual) return false;
100
-
101
- return true;
102
- };
103
-
104
- const MemoizedInputGiphySearch = React.memo(
105
- InputGiphySearchWithContext,
106
- areEqual,
107
- ) as typeof InputGiphySearchWithContext;
108
-
109
- export type InputGiphySearchProps<
110
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
111
- > = Partial<InputGiphySearchPropsWithContext<StreamChatGenerics>>;
112
-
113
- export const InputGiphySearch = <
114
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
115
- >(
116
- props: InputGiphySearchProps<StreamChatGenerics>,
117
- ) => {
118
- const { additionalTextInputProps, cooldownEndsAt, setGiphyActive, setShowMoreOptions } =
119
- useMessageInputContext<StreamChatGenerics>();
120
-
121
- return (
122
- <MemoizedInputGiphySearch
123
- {...{ additionalTextInputProps, cooldownEndsAt, setGiphyActive, setShowMoreOptions }}
124
- {...props}
125
- />
126
- );
127
- };
128
-
129
105
  InputGiphySearch.displayName = 'InputGiphySearch{messageInput}';
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
3
3
 
4
- import type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';
5
4
  import {
6
5
  MessageInputContextValue,
7
6
  useMessageInputContext,
@@ -25,19 +24,21 @@ const styles = StyleSheet.create({
25
24
  },
26
25
  });
27
26
 
28
- export type InputReplyStateHeaderPropsWithContext<
27
+ export type InputReplyStateHeaderProps<
29
28
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
30
- > = Pick<MessageInputContextValue<StreamChatGenerics>, 'clearQuotedMessageState' | 'resetInput'> &
31
- Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'>;
29
+ > = Partial<
30
+ Pick<MessageInputContextValue<StreamChatGenerics>, 'clearQuotedMessageState' | 'resetInput'>
31
+ >;
32
32
 
33
- export const InputReplyStateHeaderWithContext = <
33
+ export const InputReplyStateHeader = <
34
34
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
35
35
  >({
36
- clearQuotedMessageState,
37
- disabled,
38
- resetInput,
39
- }: InputReplyStateHeaderPropsWithContext<StreamChatGenerics>) => {
36
+ clearQuotedMessageState: propClearQuotedMessageState,
37
+ resetInput: propResetInput,
38
+ }: InputReplyStateHeaderProps<StreamChatGenerics>) => {
40
39
  const { t } = useTranslationContext();
40
+ const { clearQuotedMessageState: contextClearQuotedMessageState, resetInput: contextResetInput } =
41
+ useMessageInputContext();
41
42
  const {
42
43
  theme: {
43
44
  colors: { black, grey, grey_gainsboro },
@@ -47,6 +48,9 @@ export const InputReplyStateHeaderWithContext = <
47
48
  },
48
49
  } = useTheme();
49
50
 
51
+ const clearQuotedMessageState = propClearQuotedMessageState || contextClearQuotedMessageState;
52
+ const resetInput = propResetInput || contextResetInput;
53
+
50
54
  return (
51
55
  <View style={[styles.replyBoxHeader, editingBoxHeader]}>
52
56
  <CurveLineLeftUp pathFill={grey_gainsboro} />
@@ -54,10 +58,13 @@ export const InputReplyStateHeaderWithContext = <
54
58
  {t<string>('Reply to Message')}
55
59
  </Text>
56
60
  <TouchableOpacity
57
- disabled={disabled}
58
61
  onPress={() => {
59
- resetInput();
60
- clearQuotedMessageState();
62
+ if (resetInput) {
63
+ resetInput();
64
+ }
65
+ if (clearQuotedMessageState) {
66
+ clearQuotedMessageState();
67
+ }
61
68
  }}
62
69
  testID='close-button'
63
70
  >
@@ -67,36 +74,4 @@ export const InputReplyStateHeaderWithContext = <
67
74
  );
68
75
  };
69
76
 
70
- const areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
71
- prevProps: InputReplyStateHeaderPropsWithContext<StreamChatGenerics>,
72
- nextProps: InputReplyStateHeaderPropsWithContext<StreamChatGenerics>,
73
- ) => {
74
- const { disabled: prevDisabled } = prevProps;
75
- const { disabled: nextDisabled } = nextProps;
76
-
77
- const disabledEqual = prevDisabled === nextDisabled;
78
- if (!disabledEqual) return false;
79
-
80
- return true;
81
- };
82
-
83
- const MemoizedInputReplyStateHeader = React.memo(
84
- InputReplyStateHeaderWithContext,
85
- areEqual,
86
- ) as typeof InputReplyStateHeaderWithContext;
87
-
88
- export type InputReplyStateHeaderProps<
89
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
90
- > = Partial<InputReplyStateHeaderPropsWithContext<StreamChatGenerics>>;
91
-
92
- export const InputReplyStateHeader = <
93
- StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
94
- >(
95
- props: InputReplyStateHeaderProps<StreamChatGenerics>,
96
- ) => {
97
- const { clearQuotedMessageState, resetInput } = useMessageInputContext<StreamChatGenerics>();
98
-
99
- return <MemoizedInputReplyStateHeader {...{ clearQuotedMessageState, resetInput }} {...props} />;
100
- };
101
-
102
77
  InputReplyStateHeader.displayName = 'ReplyStateHeader{messageInput}';
@@ -1102,7 +1102,7 @@ const MessageListWithContext = <
1102
1102
  {/* Don't show the empty list indicator for Thread messages */}
1103
1103
  {processedMessageList.length === 0 && !thread ? (
1104
1104
  <View style={[styles.flex, { backgroundColor: white_snow }]} testID='empty-state'>
1105
- <EmptyStateIndicator listType='message' />
1105
+ {EmptyStateIndicator ? <EmptyStateIndicator listType='message' /> : null}
1106
1106
  </View>
1107
1107
  ) : (
1108
1108
  <FlatList
@@ -1682,7 +1682,7 @@ exports[`Thread should match thread snapshot 1`] = `
1682
1682
  {
1683
1683
  "busy": undefined,
1684
1684
  "checked": undefined,
1685
- "disabled": false,
1685
+ "disabled": undefined,
1686
1686
  "expanded": undefined,
1687
1687
  "selected": undefined,
1688
1688
  }
@@ -1778,7 +1778,7 @@ exports[`Thread should match thread snapshot 1`] = `
1778
1778
  {
1779
1779
  "busy": undefined,
1780
1780
  "checked": undefined,
1781
- "disabled": false,
1781
+ "disabled": undefined,
1782
1782
  "expanded": undefined,
1783
1783
  "selected": undefined,
1784
1784
  }
@@ -110,7 +110,7 @@ export type MessageContextValue<
110
110
  preventPress?: boolean;
111
111
  /** Whether or not the avatar show show next to Message */
112
112
  showAvatar?: boolean;
113
- } & Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'disabled' | 'members'>;
113
+ } & Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'members'>;
114
114
 
115
115
  export const MessageContext = React.createContext(
116
116
  DEFAULT_BASE_CONTEXT_VALUE as MessageContextValue,
@@ -219,7 +219,7 @@ export type LocalMessageInputContext<
219
219
 
220
220
  export type InputMessageInputContextValue<
221
221
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
222
- > = Pick<ChannelContextValue<StreamChatGenerics>, 'disabled'> & {
222
+ > = {
223
223
  /**
224
224
  * Controls how many pixels to the top side the user has to scroll in order to lock the recording view and allow the user to lift their finger from the screen without stopping the recording.
225
225
  */
@@ -241,7 +241,7 @@ export type InputMessageInputContextValue<
241
241
  *
242
242
  * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)
243
243
  */
244
- AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;
244
+ AttachButton: React.ComponentType<AttachButtonProps>;
245
245
  /**
246
246
  * Custom UI component for audio attachment upload preview.
247
247
  *
@@ -329,7 +329,7 @@ export type InputMessageInputContextValue<
329
329
  *
330
330
  * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)
331
331
  */
332
- MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;
332
+ MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps>;
333
333
  /** Limit on the number of lines in the text input before scrolling */
334
334
  numberOfLines: number;
335
335
  quotedMessage: boolean | MessageType<StreamChatGenerics>;
@@ -31,7 +31,6 @@ export const useCreateMessageInputContext = <
31
31
  compressImageQuality,
32
32
  cooldownEndsAt,
33
33
  CooldownTimer,
34
- disabled,
35
34
  doDocUploadRequest,
36
35
  doImageUploadRequest,
37
36
  editing,
@@ -151,7 +150,6 @@ export const useCreateMessageInputContext = <
151
150
  compressImageQuality,
152
151
  cooldownEndsAt,
153
152
  CooldownTimer,
154
- disabled,
155
153
  doDocUploadRequest,
156
154
  doImageUploadRequest,
157
155
  editing,
@@ -231,7 +229,6 @@ export const useCreateMessageInputContext = <
231
229
  asyncIdsLength,
232
230
  asyncUploadsValue,
233
231
  cooldownEndsAt,
234
- disabled,
235
232
  editingdep,
236
233
  fileUploadsValue,
237
234
  giphyActive,