@sendbird/uikit-react-native 2.4.2 → 2.5.0-rc.1

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 (209) hide show
  1. package/lib/commonjs/components/ChannelMessageList/index.js +319 -0
  2. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -0
  3. package/lib/commonjs/components/ChatFlatList.js +30 -50
  4. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  5. package/lib/commonjs/components/MessageSearchResultItem.js +132 -0
  6. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -0
  7. package/lib/commonjs/components/ScrollToBottomButton.js +1 -1
  8. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  9. package/lib/commonjs/constants.js +6 -2
  10. package/lib/commonjs/constants.js.map +1 -1
  11. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +2 -2
  12. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  13. package/lib/commonjs/containers/SendbirdUIKitContainer.js +4 -2
  14. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  15. package/lib/commonjs/contexts/SendbirdChatCtx.js +4 -2
  16. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  17. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +4 -2
  18. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  19. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +84 -301
  20. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  21. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
  22. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  23. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +9 -2
  24. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  25. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  26. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
  27. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  28. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  29. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +105 -0
  30. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
  31. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +40 -0
  32. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -0
  33. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +22 -0
  34. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
  35. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +26 -0
  36. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
  37. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +22 -0
  38. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
  39. package/lib/commonjs/domain/messageSearch/index.js +62 -0
  40. package/lib/commonjs/domain/messageSearch/index.js.map +1 -0
  41. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +36 -0
  42. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
  43. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +25 -0
  44. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -0
  45. package/lib/commonjs/domain/messageSearch/types.js +6 -0
  46. package/lib/commonjs/domain/messageSearch/types.js.map +1 -0
  47. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +38 -279
  48. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  49. package/lib/commonjs/domain/openChannel/module/moduleContext.js +9 -2
  50. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  51. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  52. package/lib/commonjs/fragments/createGroupChannelFragment.js +107 -15
  53. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  54. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
  55. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  56. package/lib/commonjs/fragments/createMessageSearchFragment.js +145 -0
  57. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -0
  58. package/lib/commonjs/fragments/createOpenChannelFragment.js +40 -8
  59. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  60. package/lib/commonjs/hooks/useMentionSuggestion.js +17 -0
  61. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  62. package/lib/commonjs/index.js +60 -40
  63. package/lib/commonjs/index.js.map +1 -1
  64. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  65. package/lib/commonjs/localization/createBaseStringSet.js +33 -20
  66. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  67. package/lib/commonjs/utils/pubsub.js +21 -0
  68. package/lib/commonjs/utils/pubsub.js.map +1 -0
  69. package/lib/commonjs/version.js +1 -1
  70. package/lib/commonjs/version.js.map +1 -1
  71. package/lib/module/components/ChannelMessageList/index.js +311 -0
  72. package/lib/module/components/ChannelMessageList/index.js.map +1 -0
  73. package/lib/module/components/ChatFlatList.js +32 -52
  74. package/lib/module/components/ChatFlatList.js.map +1 -1
  75. package/lib/module/components/MessageSearchResultItem.js +124 -0
  76. package/lib/module/components/MessageSearchResultItem.js.map +1 -0
  77. package/lib/module/components/ScrollToBottomButton.js +1 -1
  78. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  79. package/lib/module/constants.js +3 -1
  80. package/lib/module/constants.js.map +1 -1
  81. package/lib/module/containers/GroupChannelPreviewContainer.js +2 -2
  82. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  83. package/lib/module/containers/SendbirdUIKitContainer.js +4 -2
  84. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  85. package/lib/module/contexts/SendbirdChatCtx.js +4 -2
  86. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  87. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +4 -2
  88. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  89. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +88 -305
  90. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  91. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
  92. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  93. package/lib/module/domain/groupChannel/module/moduleContext.js +9 -2
  94. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  95. package/lib/module/domain/groupChannel/types.js.map +1 -1
  96. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
  97. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  98. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  99. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +96 -0
  100. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
  101. package/lib/module/domain/messageSearch/component/MessageSearchList.js +32 -0
  102. package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -0
  103. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js +14 -0
  104. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
  105. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +18 -0
  106. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
  107. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js +14 -0
  108. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
  109. package/lib/module/domain/messageSearch/index.js +8 -0
  110. package/lib/module/domain/messageSearch/index.js.map +1 -0
  111. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +28 -0
  112. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
  113. package/lib/module/domain/messageSearch/module/moduleContext.js +14 -0
  114. package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -0
  115. package/lib/module/domain/messageSearch/types.js +2 -0
  116. package/lib/module/domain/messageSearch/types.js.map +1 -0
  117. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +40 -281
  118. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  119. package/lib/module/domain/openChannel/module/moduleContext.js +9 -2
  120. package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
  121. package/lib/module/domain/openChannel/types.js.map +1 -1
  122. package/lib/module/fragments/createGroupChannelFragment.js +109 -17
  123. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  124. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
  125. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  126. package/lib/module/fragments/createMessageSearchFragment.js +135 -0
  127. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -0
  128. package/lib/module/fragments/createOpenChannelFragment.js +41 -9
  129. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  130. package/lib/module/hooks/useMentionSuggestion.js +18 -1
  131. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  132. package/lib/module/index.js +2 -0
  133. package/lib/module/index.js.map +1 -1
  134. package/lib/module/localization/StringSet.type.js.map +1 -1
  135. package/lib/module/localization/createBaseStringSet.js +34 -21
  136. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  137. package/lib/module/utils/pubsub.js +14 -0
  138. package/lib/module/utils/pubsub.js.map +1 -0
  139. package/lib/module/version.js +1 -1
  140. package/lib/module/version.js.map +1 -1
  141. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +55 -0
  142. package/lib/typescript/src/components/ChatFlatList.d.ts +7 -8
  143. package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -0
  144. package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -0
  145. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -0
  146. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  147. package/lib/typescript/src/constants.d.ts +3 -1
  148. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +2 -1
  149. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +3 -1
  150. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -1
  151. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +3 -32
  152. package/lib/typescript/src/domain/groupChannel/types.d.ts +23 -35
  153. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  154. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
  155. package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +3 -0
  156. package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +3 -0
  157. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -0
  158. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusError.d.ts +3 -0
  159. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -0
  160. package/lib/typescript/src/domain/messageSearch/index.d.ts +7 -0
  161. package/lib/typescript/src/domain/messageSearch/module/createMessageSearchModule.d.ts +3 -0
  162. package/lib/typescript/src/domain/messageSearch/module/moduleContext.d.ts +3 -0
  163. package/lib/typescript/src/domain/messageSearch/types.d.ts +53 -0
  164. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -37
  165. package/lib/typescript/src/domain/openChannel/types.d.ts +17 -36
  166. package/lib/typescript/src/fragments/createMessageSearchFragment.d.ts +3 -0
  167. package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +3 -2
  168. package/lib/typescript/src/index.d.ts +2 -0
  169. package/lib/typescript/src/localization/StringSet.type.d.ts +17 -3
  170. package/lib/typescript/src/utils/pubsub.d.ts +6 -0
  171. package/lib/typescript/src/version.d.ts +1 -1
  172. package/package.json +8 -7
  173. package/src/components/ChannelMessageList/index.tsx +392 -0
  174. package/src/components/ChatFlatList.tsx +33 -51
  175. package/src/components/MessageSearchResultItem.tsx +125 -0
  176. package/src/components/ScrollToBottomButton.tsx +3 -4
  177. package/src/constants.ts +3 -1
  178. package/src/containers/GroupChannelPreviewContainer.tsx +2 -2
  179. package/src/containers/SendbirdUIKitContainer.tsx +2 -0
  180. package/src/contexts/SendbirdChatCtx.tsx +7 -1
  181. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +9 -3
  182. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +73 -316
  183. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +2 -1
  184. package/src/domain/groupChannel/module/moduleContext.tsx +10 -2
  185. package/src/domain/groupChannel/types.ts +49 -38
  186. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +29 -13
  187. package/src/domain/groupChannelSettings/types.ts +2 -0
  188. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +98 -0
  189. package/src/domain/messageSearch/component/MessageSearchList.tsx +26 -0
  190. package/src/domain/messageSearch/component/MessageSearchStatusEmpty.tsx +15 -0
  191. package/src/domain/messageSearch/component/MessageSearchStatusError.tsx +16 -0
  192. package/src/domain/messageSearch/component/MessageSearchStatusLoading.tsx +15 -0
  193. package/src/domain/messageSearch/index.ts +7 -0
  194. package/src/domain/messageSearch/module/createMessageSearchModule.tsx +21 -0
  195. package/src/domain/messageSearch/module/moduleContext.tsx +16 -0
  196. package/src/domain/messageSearch/types.ts +55 -0
  197. package/src/domain/openChannel/component/OpenChannelMessageList.tsx +35 -303
  198. package/src/domain/openChannel/module/moduleContext.tsx +8 -2
  199. package/src/domain/openChannel/types.ts +40 -38
  200. package/src/fragments/createGroupChannelFragment.tsx +114 -17
  201. package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
  202. package/src/fragments/createMessageSearchFragment.tsx +159 -0
  203. package/src/fragments/createOpenChannelFragment.tsx +48 -12
  204. package/src/hooks/useMentionSuggestion.ts +23 -3
  205. package/src/index.ts +3 -0
  206. package/src/localization/StringSet.type.ts +20 -2
  207. package/src/localization/createBaseStringSet.ts +22 -2
  208. package/src/utils/pubsub.ts +20 -0
  209. package/src/version.ts +0 -2
@@ -0,0 +1,53 @@
1
+ import type React from 'react';
2
+ import type { FlatListProps } from 'react-native';
3
+ import type { SendbirdBaseMessage, SendbirdGroupChannel, SendbirdMessageSearchQuery } from '@sendbird/uikit-utils';
4
+ import type { CommonComponent } from '../../types';
5
+ export type MessageSearchProps = {
6
+ Fragment: {
7
+ channel: SendbirdGroupChannel;
8
+ onPressHeaderLeft: MessageSearchProps['Header']['onPressHeaderLeft'];
9
+ onPressSearchResultItem: MessageSearchProps['List']['onPressSearchResultItem'];
10
+ renderSearchResultItem?: MessageSearchProps['List']['renderSearchResultItem'];
11
+ queryCreator?: () => SendbirdMessageSearchQuery;
12
+ };
13
+ Header: {
14
+ keyword: string;
15
+ onChangeKeyword: (value: string) => void;
16
+ onPressHeaderLeft: () => void;
17
+ onPressHeaderRight: () => void;
18
+ };
19
+ List: {
20
+ channel: SendbirdGroupChannel;
21
+ messages: SendbirdBaseMessage[];
22
+ onPressSearchResultItem: (params: {
23
+ channel: SendbirdGroupChannel;
24
+ message: SendbirdBaseMessage;
25
+ }) => void;
26
+ renderSearchResultItem: (props: {
27
+ channel: SendbirdGroupChannel;
28
+ message: SendbirdBaseMessage;
29
+ onPress: () => void;
30
+ }) => React.ReactElement | null;
31
+ flatListProps?: Partial<FlatListProps<SendbirdBaseMessage>>;
32
+ };
33
+ StatusError: {
34
+ onPressRetry: () => void;
35
+ };
36
+ };
37
+ /**
38
+ * Internal context for MessageSearch
39
+ * For example, the developer can create a custom header
40
+ * with getting data from the domain context
41
+ * */
42
+ export type MessageSearchContextsType = {
43
+ Fragment: React.Context<null>;
44
+ };
45
+ export interface MessageSearchModule {
46
+ Provider: CommonComponent;
47
+ Header: CommonComponent<MessageSearchProps['Header']>;
48
+ List: CommonComponent<MessageSearchProps['List']>;
49
+ StatusEmpty: CommonComponent;
50
+ StatusLoading: CommonComponent;
51
+ StatusError: CommonComponent<MessageSearchProps['StatusError']>;
52
+ }
53
+ export type MessageSearchFragment = CommonComponent<MessageSearchProps['Fragment']>;
@@ -1,39 +1,3 @@
1
1
  import React from 'react';
2
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
3
- declare const _default: React.MemoExoticComponent<({ currentUserId, channel, messages, renderMessage, nextMessages, newMessagesFromMembers, onBottomReached, onTopReached, renderNewMessagesButton, renderScrollToBottomButton, onResendFailedMessage, onDeleteMessage, onPressMediaMessage, flatListProps, enableMessageGrouping, }: {
4
- enableMessageGrouping: boolean;
5
- currentUserId?: string | undefined;
6
- channel: import("@sendbird/chat/openChannel").OpenChannel;
7
- messages: SendbirdMessage[];
8
- nextMessages: SendbirdMessage[];
9
- newMessagesFromMembers: SendbirdMessage[];
10
- onTopReached: () => void;
11
- onBottomReached: () => void;
12
- onResendFailedMessage: (failedMessage: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => Promise<void>;
13
- onDeleteMessage: (message: import("@sendbird/chat/message").FileMessage | import("@sendbird/chat/message").UserMessage) => Promise<void>;
14
- onPressMediaMessage?: ((message: import("@sendbird/chat/message").FileMessage, deleteMessage: () => Promise<void>, uri: string) => void) | undefined;
15
- renderMessage: (props: {
16
- message: SendbirdMessage;
17
- prevMessage?: SendbirdMessage | undefined;
18
- nextMessage?: SendbirdMessage | undefined;
19
- onPress?: (() => void) | undefined;
20
- onLongPress?: (() => void) | undefined;
21
- onPressAvatar?: ((user: import("@sendbird/chat/groupChannel").Member | import("@sendbird/chat").User, options?: {
22
- hideMessageButton?: boolean | undefined;
23
- } | undefined) => void) | undefined;
24
- channel: import("@sendbird/chat/openChannel").OpenChannel;
25
- currentUserId?: string | undefined;
26
- enableMessageGrouping: boolean;
27
- }) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
28
- renderNewMessagesButton: import("../../..").CommonComponent<{
29
- visible: boolean;
30
- onPress: () => void;
31
- newMessages: SendbirdMessage[];
32
- }> | null;
33
- renderScrollToBottomButton: import("../../..").CommonComponent<{
34
- visible: boolean;
35
- onPress: () => void;
36
- }> | null;
37
- flatListProps?: Omit<import("react-native").FlatListProps<SendbirdMessage>, "data" | "renderItem"> | undefined;
38
- }) => JSX.Element>;
2
+ declare const _default: React.MemoExoticComponent<(props: Pick<import("../../../components/ChannelMessageList").ChannelMessageListProps<import("@sendbird/chat/openChannel").OpenChannel>, "channel" | "onTopReached" | "onBottomReached" | "onScrolledAwayFromBottom" | "currentUserId" | "enableMessageGrouping" | "hasNext" | "onDeleteMessage" | "onResendFailedMessage" | "onPressMediaMessage" | "renderNewMessagesButton" | "renderScrollToBottomButton" | "renderMessage" | "messages" | "newMessages" | "scrolledAwayFromBottom" | "flatListProps" | "onPressImageMessage">) => JSX.Element>;
39
3
  export default _default;
@@ -1,11 +1,12 @@
1
1
  import type React from 'react';
2
- import type { FlatListProps } from 'react-native';
3
2
  import type { UseOpenChannelMessagesOptions } from '@sendbird/uikit-chat-hooks';
4
3
  import type { Icon } from '@sendbird/uikit-react-native-foundation';
5
4
  import type { OnBeforeHandler, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdFileMessageUpdateParams, SendbirdMessage, SendbirdOpenChannel, SendbirdUserMessage, SendbirdUserMessageCreateParams, SendbirdUserMessageUpdateParams } from '@sendbird/uikit-utils';
6
5
  import type { ChannelInputProps } from '../../components/ChannelInput';
7
- import type { UserProfileContextType } from '../../contexts/UserProfileCtx';
6
+ import type { ChannelMessageListProps } from '../../components/ChannelMessageList';
8
7
  import type { CommonComponent } from '../../types';
8
+ import type { PubSub } from '../../utils/pubsub';
9
+ import type { GroupChannelPubSubContextPayload } from '../groupChannel/types';
9
10
  export type OpenChannelProps = {
10
11
  Fragment: {
11
12
  channel: SendbirdOpenChannel;
@@ -32,44 +33,12 @@ export type OpenChannelProps = {
32
33
  onPressHeaderLeft: () => void;
33
34
  onPressHeaderRight: () => void;
34
35
  };
35
- MessageList: {
36
- enableMessageGrouping: boolean;
37
- currentUserId?: string;
38
- channel: SendbirdOpenChannel;
39
- messages: SendbirdMessage[];
40
- nextMessages: SendbirdMessage[];
41
- newMessagesFromMembers: SendbirdMessage[];
42
- onTopReached: () => void;
43
- onBottomReached: () => void;
44
- onResendFailedMessage: (failedMessage: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;
45
- onDeleteMessage: (message: SendbirdUserMessage | SendbirdFileMessage) => Promise<void>;
46
- onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;
47
- renderMessage: (props: {
48
- message: SendbirdMessage;
49
- prevMessage?: SendbirdMessage;
50
- nextMessage?: SendbirdMessage;
51
- onPress?: () => void;
52
- onLongPress?: () => void;
53
- onPressAvatar?: UserProfileContextType['show'];
54
- channel: OpenChannelProps['MessageList']['channel'];
55
- currentUserId?: OpenChannelProps['MessageList']['currentUserId'];
56
- enableMessageGrouping: OpenChannelProps['MessageList']['enableMessageGrouping'];
57
- }) => React.ReactElement | null;
58
- renderNewMessagesButton: null | CommonComponent<{
59
- visible: boolean;
60
- onPress: () => void;
61
- newMessages: SendbirdMessage[];
62
- }>;
63
- renderScrollToBottomButton: null | CommonComponent<{
64
- visible: boolean;
65
- onPress: () => void;
66
- }>;
67
- flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;
68
- };
36
+ MessageList: Pick<ChannelMessageListProps<SendbirdOpenChannel>, 'enableMessageGrouping' | 'currentUserId' | 'channel' | 'messages' | 'newMessages' | 'scrolledAwayFromBottom' | 'onScrolledAwayFromBottom' | 'onTopReached' | 'onBottomReached' | 'onResendFailedMessage' | 'onDeleteMessage' | 'onPressMediaMessage' | 'renderMessage' | 'renderNewMessagesButton' | 'renderScrollToBottomButton' | 'flatListProps' | 'onPressImageMessage' | 'hasNext'>;
69
37
  Input: Pick<ChannelInputProps, 'shouldRenderInput' | 'onPressSendUserMessage' | 'onPressSendFileMessage' | 'onPressUpdateUserMessage' | 'onPressUpdateFileMessage'>;
70
38
  Provider: {
71
39
  channel: SendbirdOpenChannel;
72
40
  keyboardAvoidOffset?: number;
41
+ openChannelPubSub: PubSub<OpenChannelPubSubContextPayload>;
73
42
  };
74
43
  };
75
44
  /**
@@ -85,6 +54,7 @@ export type OpenChannelContextsType = {
85
54
  setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;
86
55
  keyboardAvoidOffset?: number;
87
56
  }>;
57
+ PubSub: React.Context<PubSub<GroupChannelPubSubContextPayload>>;
88
58
  };
89
59
  export interface OpenChannelModule {
90
60
  Provider: CommonComponent<OpenChannelProps['Provider']>;
@@ -95,3 +65,14 @@ export interface OpenChannelModule {
95
65
  StatusLoading: CommonComponent;
96
66
  }
97
67
  export type OpenChannelFragment = CommonComponent<OpenChannelProps['Fragment']>;
68
+ export type OpenChannelPubSubContextPayload = {
69
+ type: 'MESSAGE_SENT_PENDING' | 'MESSAGE_SENT_SUCCESS';
70
+ data: {
71
+ message: SendbirdUserMessage | SendbirdFileMessage;
72
+ };
73
+ } | {
74
+ type: 'MESSAGES_RECEIVED';
75
+ data: {
76
+ messages: SendbirdMessage[];
77
+ };
78
+ };
@@ -0,0 +1,3 @@
1
+ import type { MessageSearchFragment, MessageSearchModule } from '../domain/messageSearch/types';
2
+ declare const createMessageSearchFragment: (initModule?: Partial<MessageSearchModule>) => MessageSearchFragment;
3
+ export default createMessageSearchFragment;
@@ -1,13 +1,14 @@
1
- import type { SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';
1
+ import type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';
2
2
  import type { Range } from '../types';
3
3
  declare const useMentionSuggestion: (params: {
4
4
  text: string;
5
5
  selection: Range;
6
- channel: SendbirdGroupChannel;
7
6
  mentionedUsers: {
8
7
  user: SendbirdUser;
9
8
  range: Range;
10
9
  }[];
10
+ sdk: SendbirdChatSDK;
11
+ channel: SendbirdGroupChannel;
11
12
  }) => {
12
13
  members: import("@sendbird/chat/groupChannel").Member[];
13
14
  reset: () => void;
@@ -26,6 +26,7 @@ export { default as createGroupChannelRegisterOperatorFragment } from './fragmen
26
26
  export { default as createGroupChannelMutedMembersFragment } from './fragments/createGroupChannelMutedMembersFragment';
27
27
  export { default as createGroupChannelBannedUsersFragment } from './fragments/createGroupChannelBannedUsersFragment';
28
28
  export { default as createGroupChannelNotificationsFragment } from './fragments/createGroupChannelNotificationsFragment';
29
+ export { default as createMessageSearchFragment } from './fragments/createMessageSearchFragment';
29
30
  /** Fragments - open channels **/
30
31
  export { default as createOpenChannelFragment } from './fragments/createOpenChannelFragment';
31
32
  export { default as createOpenChannelParticipantsFragment } from './fragments/createOpenChannelParticipantsFragment';
@@ -73,6 +74,7 @@ export * from './domain/groupChannelList/types';
73
74
  export * from './domain/groupChannelNotifications';
74
75
  export * from './domain/groupChannelNotifications/types';
75
76
  export * from './domain/groupChannelUserList/types';
77
+ export * from './domain/messageSearch/types';
76
78
  /** Feature - open channels **/
77
79
  export * from './domain/openChannel';
78
80
  export * from './domain/openChannel/types';
@@ -1,5 +1,5 @@
1
1
  import type { Locale } from 'date-fns';
2
- import type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMember, SendbirdMessage, SendbirdOpenChannel, SendbirdParticipant, SendbirdUser } from '@sendbird/uikit-utils';
2
+ import type { SendbirdBaseMessage, SendbirdFileMessage, SendbirdGroupChannel, SendbirdMember, SendbirdMessage, SendbirdOpenChannel, SendbirdParticipant, SendbirdUser } from '@sendbird/uikit-utils';
3
3
  /**
4
4
  * StringSet interface
5
5
  * Do not configure over 3 depths (for overrides easy)
@@ -10,7 +10,6 @@ export interface StringSet {
10
10
  HEADER_TITLE: (channel: SendbirdOpenChannel) => string;
11
11
  HEADER_SUBTITLE: (channel: SendbirdOpenChannel) => string;
12
12
  /** OpenChannel > List */
13
- LIST_BANNER_FROZEN: string;
14
13
  LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;
15
14
  /** OpenChannel > Message bubble */
16
15
  MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;
@@ -18,6 +17,8 @@ export interface StringSet {
18
17
  MESSAGE_BUBBLE_EDITED_POSTFIX: string;
19
18
  MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;
20
19
  MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;
20
+ /** @deprecated Please use LABELS.CHANNEL_MESSAGE_LIST_FROZEN **/
21
+ LIST_BANNER_FROZEN: string;
21
22
  };
22
23
  OPEN_CHANNEL_PARTICIPANTS: {
23
24
  /** OpenChannelParticipants > Header */
@@ -95,7 +96,6 @@ export interface StringSet {
95
96
  /** GroupChannel > Header */
96
97
  HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;
97
98
  /** GroupChannel > List */
98
- LIST_BANNER_FROZEN: string;
99
99
  LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;
100
100
  LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;
101
101
  /** GroupChannel > Message bubble */
@@ -106,6 +106,8 @@ export interface StringSet {
106
106
  MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;
107
107
  /** GroupChannel > Suggested mention list */
108
108
  MENTION_LIMITED: (mentionLimit: number) => string;
109
+ /** @deprecated Please use LABELS.CHANNEL_MESSAGE_LIST_FROZEN **/
110
+ LIST_BANNER_FROZEN: string;
109
111
  /** @deprecated Please use LABELS.CHANNEL_MESSAGE_COPY **/
110
112
  DIALOG_MESSAGE_COPY: string;
111
113
  /** @deprecated Please use LABELS.CHANNEL_MESSAGE_EDIT **/
@@ -148,6 +150,7 @@ export interface StringSet {
148
150
  /** GroupChannelSettings > Menu */
149
151
  MENU_MODERATION: string;
150
152
  MENU_MEMBERS: string;
153
+ MENU_SEARCH: string;
151
154
  MENU_LEAVE_CHANNEL: string;
152
155
  MENU_NOTIFICATION: string;
153
156
  MENU_NOTIFICATION_LABEL_ON: string;
@@ -241,6 +244,15 @@ export interface StringSet {
241
244
  selectedUsers: Array<T>;
242
245
  }) => string;
243
246
  };
247
+ MESSAGE_SEARCH: {
248
+ /** MessageSearch > Header */
249
+ HEADER_INPUT_PLACEHOLDER: string;
250
+ HEADER_RIGHT: string;
251
+ /** MessageSearch > Search result item */
252
+ SEARCH_RESULT_ITEM_TITLE: (message: SendbirdBaseMessage) => string;
253
+ SEARCH_RESULT_ITEM_TITLE_CAPTION: (message: SendbirdBaseMessage, locale?: Locale) => string;
254
+ SEARCH_RESULT_ITEM_BODY: (message: SendbirdBaseMessage) => string;
255
+ };
244
256
  LABELS: {
245
257
  PERMISSION_APP_NAME: string;
246
258
  PERMISSION_CAMERA: string;
@@ -256,6 +268,8 @@ export interface StringSet {
256
268
  UNMUTE: string;
257
269
  BAN: string;
258
270
  UNBAN: string;
271
+ /** ChannelMessageList **/
272
+ CHANNEL_MESSAGE_LIST_FROZEN: string;
259
273
  /** ChannelInput **/
260
274
  CHANNEL_INPUT_PLACEHOLDER_ACTIVE: string;
261
275
  CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;
@@ -0,0 +1,6 @@
1
+ export type PubSub<T> = {
2
+ publish: (data: T) => void;
3
+ subscribe: (subscriber: (data: T) => void) => () => void;
4
+ };
5
+ declare const pubsub: <T>() => PubSub<T>;
6
+ export default pubsub;
@@ -1,2 +1,2 @@
1
- declare const VERSION = "2.4.2";
1
+ declare const VERSION = "2.5.0-rc.1";
2
2
  export default VERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native",
3
- "version": "2.4.2",
3
+ "version": "2.5.0-rc.1",
4
4
  "description": "Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.",
5
5
  "keywords": [
6
6
  "sendbird",
@@ -56,17 +56,18 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@sendbird/uikit-chat-hooks": "2.4.2",
60
- "@sendbird/uikit-react-native-foundation": "2.4.2",
61
- "@sendbird/uikit-utils": "2.4.2"
59
+ "@sendbird/uikit-chat-hooks": "2.5.0-rc.1",
60
+ "@sendbird/uikit-react-native-foundation": "2.5.0-rc.1",
61
+ "@sendbird/uikit-utils": "2.5.0-rc.1"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@bam.tech/react-native-image-resizer": "^3.0.4",
65
- "@react-native-camera-roll/camera-roll": "^5.0.4",
65
+ "@react-native-camera-roll/camera-roll": "^5.4.0",
66
66
  "@react-native-clipboard/clipboard": "^1.8.5",
67
67
  "@react-native-community/netinfo": "^9.3.0",
68
68
  "@react-native-firebase/app": "^14.4.0",
69
69
  "@react-native-firebase/messaging": "^14.4.0",
70
+ "@sendbird/react-native-scrollview-enhancer": "^0.1.0-beta.3",
70
71
  "@types/react": "*",
71
72
  "@types/react-native": "*",
72
73
  "@types/react-native-video": "^5.0.14",
@@ -102,6 +103,7 @@
102
103
  "@react-native-community/netinfo": ">=9.3.0",
103
104
  "@react-native-firebase/messaging": ">=14.4.0",
104
105
  "@sendbird/chat": "^4.3.0",
106
+ "@sendbird/react-native-scrollview-enhancer": "*",
105
107
  "date-fns": ">=2.28.0",
106
108
  "expo-av": ">=12.0.4",
107
109
  "expo-clipboard": ">=2.1.1",
@@ -195,6 +197,5 @@
195
197
  "entryPoint": "./src/index.ts",
196
198
  "readmeFile": "./README.md",
197
199
  "displayName": "@sendbird/uikit-react-native"
198
- },
199
- "gitHead": "ae9e60edc60cdd4f6e9b0e4019e84584e807bc2c"
200
+ }
200
201
  }