@sendbird/uikit-react-native 3.9.6 → 3.10.0
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.
- package/lib/commonjs/components/ChannelMessageList/index.js +57 -9
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js +53 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +5 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/UnreadMessagesFloating.js +77 -0
- package/lib/commonjs/components/UnreadMessagesFloating.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +156 -7
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +57 -3
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +16 -2
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +57 -9
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js +46 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +5 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/UnreadMessagesFloating.js +70 -0
- package/lib/module/components/UnreadMessagesFloating.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +158 -9
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +59 -5
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +16 -2
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +8 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.d.ts +6 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +1 -0
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -0
- package/lib/typescript/src/components/UnreadMessagesFloating.d.ts +8 -0
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +6 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +13 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +1 -1
- package/lib/typescript/src/localization/StringSet.type.d.ts +3 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +8 -7
- package/src/components/ChannelMessageList/index.tsx +71 -5
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.tsx +45 -0
- package/src/components/GroupChannelMessageRenderer/index.tsx +5 -0
- package/src/components/UnreadMessagesFloating.tsx +60 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +204 -5
- package/src/domain/groupChannel/types.ts +15 -0
- package/src/fragments/createGroupChannelFragment.tsx +67 -4
- package/src/localization/StringSet.type.ts +3 -0
- package/src/localization/createBaseStringSet.ts +16 -4
- package/src/version.ts +1 -1
|
@@ -25,12 +25,15 @@ const ChannelMessageList = ({
|
|
|
25
25
|
onResendFailedMessage,
|
|
26
26
|
onPressMediaMessage,
|
|
27
27
|
onPressParentMessage,
|
|
28
|
+
onPressMarkAsUnreadMessage,
|
|
28
29
|
currentUserId,
|
|
30
|
+
renderUnreadMessagesFloating,
|
|
29
31
|
renderNewMessagesButton,
|
|
30
32
|
renderScrollToBottomButton,
|
|
31
33
|
renderMessage,
|
|
32
34
|
messages,
|
|
33
35
|
newMessages,
|
|
36
|
+
unreadFirstMessage,
|
|
34
37
|
enableMessageGrouping,
|
|
35
38
|
onScrolledAwayFromBottom,
|
|
36
39
|
scrolledAwayFromBottom,
|
|
@@ -38,8 +41,10 @@ const ChannelMessageList = ({
|
|
|
38
41
|
onTopReached,
|
|
39
42
|
flatListComponent,
|
|
40
43
|
flatListProps,
|
|
44
|
+
onViewableItemsChanged,
|
|
41
45
|
onPressNewMessagesButton,
|
|
42
|
-
onPressScrollToBottomButton
|
|
46
|
+
onPressScrollToBottomButton,
|
|
47
|
+
unreadMessagesFloatingProps
|
|
43
48
|
}, ref) => {
|
|
44
49
|
const {
|
|
45
50
|
STRINGS
|
|
@@ -59,7 +64,8 @@ const ChannelMessageList = ({
|
|
|
59
64
|
onReplyInThreadMessage,
|
|
60
65
|
onDeleteMessage,
|
|
61
66
|
onResendFailedMessage,
|
|
62
|
-
onPressMediaMessage
|
|
67
|
+
onPressMediaMessage,
|
|
68
|
+
onPressMarkAsUnreadMessage
|
|
63
69
|
});
|
|
64
70
|
const renderItem = (0, _uikitUtils.useFreshCallback)(({
|
|
65
71
|
item,
|
|
@@ -76,6 +82,7 @@ const ChannelMessageList = ({
|
|
|
76
82
|
message: item,
|
|
77
83
|
prevMessage: messages[index + 1],
|
|
78
84
|
nextMessage: messages[index - 1],
|
|
85
|
+
isFirstUnreadMessage: (unreadFirstMessage === null || unreadFirstMessage === void 0 ? void 0 : unreadFirstMessage.messageId) === item.messageId,
|
|
79
86
|
onPress,
|
|
80
87
|
onLongPress,
|
|
81
88
|
onPressParentMessage,
|
|
@@ -97,9 +104,16 @@ const ChannelMessageList = ({
|
|
|
97
104
|
}, channel.isFrozen && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ChannelFrozenBanner, {
|
|
98
105
|
style: styles.frozenBanner,
|
|
99
106
|
text: STRINGS.LABELS.CHANNEL_MESSAGE_LIST_FROZEN
|
|
100
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
107
|
+
}), renderUnreadMessagesFloating && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
108
|
+
style: [channel.isFrozen ? styles.unreadMsgFloatingWhenFrozen : styles.unreadMsgFloating, safeAreaLayout]
|
|
109
|
+
}, renderUnreadMessagesFloating({
|
|
110
|
+
visible: (unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.visible) ?? false,
|
|
111
|
+
onPressClose: () => unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.onPressClose(),
|
|
112
|
+
unreadMessageCount: (unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.unreadMessageCount) ?? 0
|
|
113
|
+
})), /*#__PURE__*/_react.default.createElement(_ChatFlatList.default, _extends({
|
|
101
114
|
flatListComponent: flatListComponent
|
|
102
115
|
}, flatListProps, {
|
|
116
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
103
117
|
onTopReached: onTopReached,
|
|
104
118
|
onBottomReached: onBottomReached,
|
|
105
119
|
onScrolledAwayFromBottom: onScrolledAwayFromBottom,
|
|
@@ -131,7 +145,8 @@ const useCreateMessagePressActions = ({
|
|
|
131
145
|
onReplyMessage,
|
|
132
146
|
onReplyInThreadMessage,
|
|
133
147
|
onDeleteMessage,
|
|
134
|
-
onPressMediaMessage
|
|
148
|
+
onPressMediaMessage,
|
|
149
|
+
onPressMarkAsUnreadMessage
|
|
135
150
|
}) => {
|
|
136
151
|
const handlers = (0, _useContext.useSBUHandlers)();
|
|
137
152
|
const {
|
|
@@ -199,6 +214,9 @@ const useCreateMessagePressActions = ({
|
|
|
199
214
|
}
|
|
200
215
|
}
|
|
201
216
|
};
|
|
217
|
+
const onMarkAsUnread = message => {
|
|
218
|
+
onPressMarkAsUnreadMessage === null || onPressMarkAsUnreadMessage === void 0 || onPressMarkAsUnreadMessage(message);
|
|
219
|
+
};
|
|
202
220
|
const openSheetForFailedMessage = message => {
|
|
203
221
|
openSheet({
|
|
204
222
|
sheetItems: [{
|
|
@@ -236,6 +254,11 @@ const useCreateMessagePressActions = ({
|
|
|
236
254
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,
|
|
237
255
|
onPress: () => onCopyText(message)
|
|
238
256
|
}),
|
|
257
|
+
markAsUnread: message => ({
|
|
258
|
+
icon: 'mark-as-unread',
|
|
259
|
+
title: STRINGS.LABELS.CHANNEL_MESSAGE_MARK_AS_UNREAD,
|
|
260
|
+
onPress: () => onMarkAsUnread(message)
|
|
261
|
+
}),
|
|
239
262
|
edit: message => ({
|
|
240
263
|
icon: 'edit',
|
|
241
264
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,
|
|
@@ -268,9 +291,17 @@ const useCreateMessagePressActions = ({
|
|
|
268
291
|
if (message.isUserMessage()) {
|
|
269
292
|
sheetItems.push(menu.copy(message));
|
|
270
293
|
if (!channel.isEphemeral) {
|
|
271
|
-
if (
|
|
272
|
-
|
|
273
|
-
|
|
294
|
+
if (message.sendingStatus === 'succeeded') {
|
|
295
|
+
const isMyMsg = (0, _uikitUtils.isMyMessage)(message, currentUserId);
|
|
296
|
+
if (isMyMsg) {
|
|
297
|
+
sheetItems.push(menu.edit(message));
|
|
298
|
+
}
|
|
299
|
+
if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {
|
|
300
|
+
sheetItems.push(menu.markAsUnread(message));
|
|
301
|
+
}
|
|
302
|
+
if (isMyMsg) {
|
|
303
|
+
sheetItems.push(menu.delete(message));
|
|
304
|
+
}
|
|
274
305
|
}
|
|
275
306
|
if (channel.isGroupChannel()) {
|
|
276
307
|
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
@@ -286,8 +317,13 @@ const useCreateMessagePressActions = ({
|
|
|
286
317
|
sheetItems.push(menu.download(message));
|
|
287
318
|
}
|
|
288
319
|
if (!channel.isEphemeral) {
|
|
289
|
-
if (
|
|
290
|
-
|
|
320
|
+
if (message.sendingStatus === 'succeeded') {
|
|
321
|
+
if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {
|
|
322
|
+
sheetItems.push(menu.markAsUnread(message));
|
|
323
|
+
}
|
|
324
|
+
if ((0, _uikitUtils.isMyMessage)(message, currentUserId)) {
|
|
325
|
+
sheetItems.push(menu.delete(message));
|
|
326
|
+
}
|
|
291
327
|
}
|
|
292
328
|
if (channel.isGroupChannel()) {
|
|
293
329
|
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
@@ -356,6 +392,18 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
|
356
392
|
frozenListPadding: {
|
|
357
393
|
paddingBottom: 32
|
|
358
394
|
},
|
|
395
|
+
unreadMsgFloating: {
|
|
396
|
+
position: 'absolute',
|
|
397
|
+
zIndex: 999,
|
|
398
|
+
top: 12,
|
|
399
|
+
alignSelf: 'center'
|
|
400
|
+
},
|
|
401
|
+
unreadMsgFloatingWhenFrozen: {
|
|
402
|
+
position: 'absolute',
|
|
403
|
+
zIndex: 999,
|
|
404
|
+
top: 40,
|
|
405
|
+
alignSelf: 'center'
|
|
406
|
+
},
|
|
359
407
|
newMsgButton: {
|
|
360
408
|
position: 'absolute',
|
|
361
409
|
zIndex: 999,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_ChatFlatList","_ReactionAddons","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ChannelMessageList","searchItem","hasNext","channel","onEditMessage","onReplyMessage","onReplyInThreadMessage","onDeleteMessage","onResendFailedMessage","onPressMediaMessage","onPressParentMessage","currentUserId","renderNewMessagesButton","renderScrollToBottomButton","renderMessage","messages","newMessages","enableMessageGrouping","onScrolledAwayFromBottom","scrolledAwayFromBottom","onBottomReached","onTopReached","flatListComponent","flatListProps","onPressNewMessagesButton","onPressScrollToBottomButton","ref","STRINGS","useLocalization","colors","useUIKitTheme","show","useUserProfile","safeAreaLayout","useSafeAreaPadding","createMessagePressActions","useCreateMessagePressActions","renderItem","useFreshCallback","item","index","onPress","onLongPress","bottomSheetItem","message","prevMessage","nextMessage","onShowUserProfile","focused","startingPoint","createdAt","isFirstItem","createElement","View","style","flex","backgroundColor","background","isFrozen","ChannelFrozenBanner","styles","frozenBanner","text","LABELS","CHANNEL_MESSAGE_LIST_FROZEN","data","keyExtractor","messageKeyExtractor","contentContainerStyle","frozenListPadding","newMsgButton","visible","scrollButton","handlers","useSBUHandlers","toast","useToast","openSheet","useBottomSheet","alert","useAlert","clipboardService","fileService","usePlatformService","sbOptions","useSendbirdChat","onResendFailure","error","TOAST","RESEND_MSG_ERROR","Logger","onDeleteFailure","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","toMegabyte","size","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","getFileType","getFileExtension","includes","_handlers$onOpenFileU","getAvailableUriFromFileMessage","onOpenFileURL","openFile","SBUUtils","openURL","openSheetForFailedMessage","sheetItems","title","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","titleColor","ui","dialog","none","destructive","alertForMessageDelete","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","menu","copy","icon","CHANNEL_MESSAGE_COPY","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","threadInfo","replyCount","undefined","CHANNEL_MESSAGE_DELETE","reply","Boolean","parentMessageId","CHANNEL_MESSAGE_REPLY","replyInThread","CHANNEL_MESSAGE_THREAD","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","isMyMessage","sendingStatus","isGroupChannel","uikit","groupChannel","replyType","isVoiceMessage","configs","uikitWithAppInfo","HeaderComponent","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","onClose","ReactionAddons","BottomSheet","createStyleSheet","position","zIndex","top","start","end","paddingBottom","bottom","alignSelf","_default","exports","React","forwardRef"],"sources":["index.tsx"],"sourcesContent":["import React, { Ref } from 'react';\nimport { FlatList, FlatListProps, ListRenderItem, View } from 'react-native';\n\nimport {\n BottomSheetItem,\n ChannelFrozenBanner,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n messageKeyExtractor,\n shouldRenderReaction,\n toMegabyte,\n useFreshCallback,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { UserProfileContextType } from '../../contexts/UserProfileCtx';\nimport {\n useLocalization,\n usePlatformService,\n useSBUHandlers,\n useSendbirdChat,\n useUserProfile,\n} from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport ChatFlatList from '../ChatFlatList';\nimport { ReactionAddons } from '../ReactionAddons';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\nexport type ChannelMessageListProps<T extends SendbirdGroupChannel | SendbirdOpenChannel> = {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: T;\n messages: SendbirdMessage[];\n newMessages: SendbirdMessage[];\n searchItem?: { startingPoint: number };\n\n scrolledAwayFromBottom: boolean;\n onScrolledAwayFromBottom: (value: boolean) => void;\n onTopReached: () => void;\n onBottomReached: () => void;\n hasNext: () => boolean;\n\n onPressNewMessagesButton: (animated?: boolean) => void;\n onPressScrollToBottomButton: (animated?: boolean) => void;\n\n onEditMessage: (message: HandleableMessage) => void;\n onReplyMessage?: (message: HandleableMessage) => void; // only available on group channel\n onReplyInThreadMessage?: (message: HandleableMessage) => void; // only available on group channel\n onDeleteMessage: (message: HandleableMessage) => Promise<void>;\n onResendFailedMessage: (failedMessage: HandleableMessage) => Promise<HandleableMessage | void>;\n onPressParentMessage?: (parentMessage: SendbirdMessage, childMessage: HandleableMessage) => void;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n\n renderMessage: (props: {\n focused: boolean;\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressParentMessage?: ChannelMessageListProps<T>['onPressParentMessage'];\n onReplyInThreadMessage?: ChannelMessageListProps<T>['onReplyInThreadMessage'];\n onShowUserProfile?: UserProfileContextType['show'];\n channel: T;\n currentUserId?: ChannelMessageListProps<T>['currentUserId'];\n enableMessageGrouping: ChannelMessageListProps<T>['enableMessageGrouping'];\n bottomSheetItem?: BottomSheetItem;\n isFirstItem: boolean;\n hideParentMessage?: boolean;\n }) => React.ReactElement | null;\n renderNewMessagesButton:\n | null\n | ((props: { visible: boolean; onPress: () => void; newMessages: SendbirdMessage[] }) => React.ReactElement | null);\n renderScrollToBottomButton: null | ((props: { visible: boolean; onPress: () => void }) => React.ReactElement | null);\n flatListComponent?: React.ComponentType<FlatListProps<SendbirdMessage>>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n} & {\n ref?: Ref<FlatList<SendbirdMessage>> | undefined;\n};\n\nconst ChannelMessageList = <T extends SendbirdGroupChannel | SendbirdOpenChannel>(\n {\n searchItem,\n hasNext,\n channel,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onResendFailedMessage,\n onPressMediaMessage,\n onPressParentMessage,\n currentUserId,\n renderNewMessagesButton,\n renderScrollToBottomButton,\n renderMessage,\n messages,\n newMessages,\n enableMessageGrouping,\n onScrolledAwayFromBottom,\n scrolledAwayFromBottom,\n onBottomReached,\n onTopReached,\n flatListComponent,\n flatListProps,\n onPressNewMessagesButton,\n onPressScrollToBottomButton,\n }: ChannelMessageListProps<T>,\n ref: React.ForwardedRef<FlatList<SendbirdMessage>>,\n) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { show } = useUserProfile();\n const safeAreaLayout = useSafeAreaPadding(['left', 'right']);\n const createMessagePressActions = useCreateMessagePressActions({\n channel,\n currentUserId,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onResendFailedMessage,\n onPressMediaMessage,\n });\n\n const renderItem: ListRenderItem<SendbirdMessage> = useFreshCallback(({ item, index }) => {\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: item });\n return renderMessage({\n message: item,\n prevMessage: messages[index + 1],\n nextMessage: messages[index - 1],\n onPress,\n onLongPress,\n onPressParentMessage,\n onReplyInThreadMessage,\n onShowUserProfile: show,\n enableMessageGrouping,\n channel,\n currentUserId,\n focused: (searchItem?.startingPoint ?? -1) === item.createdAt,\n bottomSheetItem,\n isFirstItem: index === 0,\n });\n });\n\n return (\n <View style={[{ flex: 1, backgroundColor: colors.background }, safeAreaLayout]}>\n {channel.isFrozen && (\n <ChannelFrozenBanner style={styles.frozenBanner} text={STRINGS.LABELS.CHANNEL_MESSAGE_LIST_FROZEN} />\n )}\n <ChatFlatList\n flatListComponent={flatListComponent}\n {...flatListProps}\n onTopReached={onTopReached}\n onBottomReached={onBottomReached}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n ref={ref}\n data={messages}\n renderItem={renderItem}\n keyExtractor={messageKeyExtractor}\n contentContainerStyle={[\n // { minHeight: '100%', justifyContent: 'flex-end' },\n channel.isFrozen && styles.frozenListPadding,\n flatListProps?.contentContainerStyle,\n ]}\n />\n {renderNewMessagesButton && (\n <View style={[styles.newMsgButton, safeAreaLayout]}>\n {renderNewMessagesButton({\n visible: newMessages.length > 0 && (hasNext() || scrolledAwayFromBottom),\n onPress: () => onPressNewMessagesButton(),\n newMessages,\n })}\n </View>\n )}\n {renderScrollToBottomButton && (\n <View style={[styles.scrollButton, safeAreaLayout]}>\n {renderScrollToBottomButton({\n visible: hasNext() || scrolledAwayFromBottom,\n onPress: () => onPressScrollToBottomButton(),\n })}\n </View>\n )}\n </View>\n );\n};\n\nconst useCreateMessagePressActions = <T extends SendbirdGroupChannel | SendbirdOpenChannel>({\n channel,\n currentUserId,\n onResendFailedMessage,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onPressMediaMessage,\n}: Pick<\n ChannelMessageListProps<T>,\n | 'channel'\n | 'currentUserId'\n | 'onEditMessage'\n | 'onReplyMessage'\n | 'onReplyInThreadMessage'\n | 'onDeleteMessage'\n | 'onResendFailedMessage'\n | 'onPressMediaMessage'\n>): CreateMessagePressActions => {\n const handlers = useSBUHandlers();\n const { colors } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onResendFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.RESEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.RESEND_MSG_ERROR, error);\n };\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage(message), getAvailableUriFromFileMessage(message));\n handlers.onOpenFileURL?.(message.url);\n } else {\n const openFile = handlers.onOpenFileURL ?? SBUUtils.openURL;\n openFile(message.url);\n }\n }\n };\n\n const openSheetForFailedMessage = (message: HandleableMessage) => {\n openSheet({\n sheetItems: [\n {\n title: STRINGS.LABELS.CHANNEL_MESSAGE_FAILED_RETRY,\n onPress: () => onResendFailedMessage(message).catch(onResendFailure),\n },\n {\n title: STRINGS.LABELS.CHANNEL_MESSAGE_FAILED_REMOVE,\n titleColor: colors.ui.dialog.default.none.destructive,\n onPress: () => alertForMessageDelete(message),\n },\n ],\n });\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n reply: (message: HandleableMessage) => ({\n disabled: Boolean(message.parentMessageId),\n icon: 'reply' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_REPLY,\n onPress: () => onReplyMessage?.(message),\n }),\n replyInThread: (message: HandleableMessage) => ({\n disabled: Boolean(message.parentMessageId),\n icon: 'thread' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_THREAD,\n onPress: () => onReplyInThreadMessage?.(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.edit(message));\n sheetItems.push(menu.delete(message));\n }\n if (channel.isGroupChannel()) {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {\n sheetItems.push(menu.replyInThread(message));\n } else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {\n sheetItems.push(menu.reply(message));\n }\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.delete(message));\n }\n if (channel.isGroupChannel()) {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {\n sheetItems.push(menu.replyInThread(message));\n } else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {\n sheetItems.push(menu.reply(message));\n }\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n switch (true) {\n case message.sendingStatus === 'pending': {\n return {\n onPress: undefined,\n onLongPress: undefined,\n bottomSheetItem: undefined,\n };\n }\n\n case message.sendingStatus === 'failed': {\n return {\n onPress: () => onResendFailedMessage(message).catch(onResendFailure),\n onLongPress: () => openSheetForFailedMessage(message),\n bottomSheetItem,\n };\n }\n\n case message.isFileMessage(): {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n\n default: {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n }\n };\n};\n\nconst styles = createStyleSheet({\n frozenBanner: {\n position: 'absolute',\n zIndex: 999,\n top: 8,\n start: 8,\n end: 8,\n },\n frozenListPadding: {\n paddingBottom: 32,\n },\n newMsgButton: {\n position: 'absolute',\n zIndex: 999,\n bottom: 10,\n alignSelf: 'center',\n },\n scrollButton: {\n position: 'absolute',\n zIndex: 998,\n bottom: 10,\n end: 16,\n },\n});\n\n// NOTE: Due to Generic inference is not working on forwardRef, we need to cast it as typeof ChannelMessageList and implicit `ref` prop\nexport default React.forwardRef(ChannelMessageList) as typeof ChannelMessageList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_ChatFlatList","_ReactionAddons","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ChannelMessageList","searchItem","hasNext","channel","onEditMessage","onReplyMessage","onReplyInThreadMessage","onDeleteMessage","onResendFailedMessage","onPressMediaMessage","onPressParentMessage","onPressMarkAsUnreadMessage","currentUserId","renderUnreadMessagesFloating","renderNewMessagesButton","renderScrollToBottomButton","renderMessage","messages","newMessages","unreadFirstMessage","enableMessageGrouping","onScrolledAwayFromBottom","scrolledAwayFromBottom","onBottomReached","onTopReached","flatListComponent","flatListProps","onViewableItemsChanged","onPressNewMessagesButton","onPressScrollToBottomButton","unreadMessagesFloatingProps","ref","STRINGS","useLocalization","colors","useUIKitTheme","show","useUserProfile","safeAreaLayout","useSafeAreaPadding","createMessagePressActions","useCreateMessagePressActions","renderItem","useFreshCallback","item","index","onPress","onLongPress","bottomSheetItem","message","prevMessage","nextMessage","isFirstUnreadMessage","messageId","onShowUserProfile","focused","startingPoint","createdAt","isFirstItem","createElement","View","style","flex","backgroundColor","background","isFrozen","ChannelFrozenBanner","styles","frozenBanner","text","LABELS","CHANNEL_MESSAGE_LIST_FROZEN","unreadMsgFloatingWhenFrozen","unreadMsgFloating","visible","onPressClose","unreadMessageCount","data","keyExtractor","messageKeyExtractor","contentContainerStyle","frozenListPadding","newMsgButton","scrollButton","handlers","useSBUHandlers","toast","useToast","openSheet","useBottomSheet","alert","useAlert","clipboardService","fileService","usePlatformService","sbOptions","useSendbirdChat","onResendFailure","error","TOAST","RESEND_MSG_ERROR","Logger","onDeleteFailure","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","toMegabyte","size","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","getFileType","getFileExtension","includes","_handlers$onOpenFileU","getAvailableUriFromFileMessage","onOpenFileURL","openFile","SBUUtils","openURL","onMarkAsUnread","openSheetForFailedMessage","sheetItems","title","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","titleColor","ui","dialog","none","destructive","alertForMessageDelete","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","menu","copy","icon","CHANNEL_MESSAGE_COPY","markAsUnread","CHANNEL_MESSAGE_MARK_AS_UNREAD","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","threadInfo","replyCount","undefined","CHANNEL_MESSAGE_DELETE","reply","Boolean","parentMessageId","CHANNEL_MESSAGE_REPLY","replyInThread","CHANNEL_MESSAGE_THREAD","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","sendingStatus","isMyMsg","isMyMessage","isGroupChannel","uikit","groupChannel","enableMarkAsUnread","replyType","isVoiceMessage","configs","uikitWithAppInfo","HeaderComponent","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","onClose","ReactionAddons","BottomSheet","createStyleSheet","position","zIndex","top","start","end","paddingBottom","alignSelf","bottom","_default","exports","React","forwardRef"],"sources":["index.tsx"],"sourcesContent":["import React, { Ref } from 'react';\nimport { FlatList, FlatListProps, ListRenderItem, View } from 'react-native';\n\nimport {\n BottomSheetItem,\n ChannelFrozenBanner,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n messageKeyExtractor,\n shouldRenderReaction,\n toMegabyte,\n useFreshCallback,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { UserProfileContextType } from '../../contexts/UserProfileCtx';\nimport {\n useLocalization,\n usePlatformService,\n useSBUHandlers,\n useSendbirdChat,\n useUserProfile,\n} from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport ChatFlatList from '../ChatFlatList';\nimport { ReactionAddons } from '../ReactionAddons';\nimport { UnreadMessagesFloatingProps } from '../UnreadMessagesFloating';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\nexport type ChannelMessageListProps<T extends SendbirdGroupChannel | SendbirdOpenChannel> = {\n enableMessageGrouping: boolean;\n currentUserId?: string;\n channel: T;\n messages: SendbirdMessage[];\n newMessages: SendbirdMessage[];\n unreadFirstMessage?: SendbirdMessage;\n searchItem?: { startingPoint: number };\n\n scrolledAwayFromBottom: boolean;\n onScrolledAwayFromBottom: (value: boolean) => void;\n onTopReached: () => void;\n onBottomReached: () => void;\n hasNext: () => boolean;\n\n onPressNewMessagesButton: (animated?: boolean) => void;\n onPressScrollToBottomButton: (animated?: boolean) => void;\n\n onEditMessage: (message: HandleableMessage) => void;\n onReplyMessage?: (message: HandleableMessage) => void; // only available on group channel\n onReplyInThreadMessage?: (message: HandleableMessage) => void; // only available on group channel\n onDeleteMessage: (message: HandleableMessage) => Promise<void>;\n onResendFailedMessage: (failedMessage: HandleableMessage) => Promise<HandleableMessage | void>;\n onPressParentMessage?: (parentMessage: SendbirdMessage, childMessage: HandleableMessage) => void;\n onPressMediaMessage?: (message: SendbirdFileMessage, deleteMessage: () => Promise<void>, uri: string) => void;\n onPressMarkAsUnreadMessage?: (message: HandleableMessage) => void;\n\n renderMessage: (props: {\n focused: boolean;\n message: SendbirdMessage;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressParentMessage?: ChannelMessageListProps<T>['onPressParentMessage'];\n onReplyInThreadMessage?: ChannelMessageListProps<T>['onReplyInThreadMessage'];\n onShowUserProfile?: UserProfileContextType['show'];\n channel: T;\n currentUserId?: ChannelMessageListProps<T>['currentUserId'];\n enableMessageGrouping: ChannelMessageListProps<T>['enableMessageGrouping'];\n bottomSheetItem?: BottomSheetItem;\n isFirstItem: boolean;\n isFirstUnreadMessage?: boolean;\n hideParentMessage?: boolean;\n }) => React.ReactElement | null;\n renderNewMessagesButton:\n | null\n | ((props: { visible: boolean; onPress: () => void; newMessages: SendbirdMessage[] }) => React.ReactElement | null);\n renderScrollToBottomButton: null | ((props: { visible: boolean; onPress: () => void }) => React.ReactElement | null);\n renderUnreadMessagesFloating?: null | ((props: UnreadMessagesFloatingProps) => React.ReactElement | null);\n unreadMessagesFloatingProps?: UnreadMessagesFloatingProps;\n flatListComponent?: React.ComponentType<FlatListProps<SendbirdMessage>>;\n flatListProps?: Omit<FlatListProps<SendbirdMessage>, 'data' | 'renderItem'>;\n onViewableItemsChanged?: FlatListProps<SendbirdMessage>['onViewableItemsChanged'];\n} & {\n ref?: Ref<FlatList<SendbirdMessage>> | undefined;\n};\n\nconst ChannelMessageList = <T extends SendbirdGroupChannel | SendbirdOpenChannel>(\n {\n searchItem,\n hasNext,\n channel,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onResendFailedMessage,\n onPressMediaMessage,\n onPressParentMessage,\n onPressMarkAsUnreadMessage,\n currentUserId,\n renderUnreadMessagesFloating,\n renderNewMessagesButton,\n renderScrollToBottomButton,\n renderMessage,\n messages,\n newMessages,\n unreadFirstMessage,\n enableMessageGrouping,\n onScrolledAwayFromBottom,\n scrolledAwayFromBottom,\n onBottomReached,\n onTopReached,\n flatListComponent,\n flatListProps,\n onViewableItemsChanged,\n onPressNewMessagesButton,\n onPressScrollToBottomButton,\n unreadMessagesFloatingProps,\n }: ChannelMessageListProps<T>,\n ref: React.ForwardedRef<FlatList<SendbirdMessage>>,\n) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { show } = useUserProfile();\n const safeAreaLayout = useSafeAreaPadding(['left', 'right']);\n const createMessagePressActions = useCreateMessagePressActions({\n channel,\n currentUserId,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onResendFailedMessage,\n onPressMediaMessage,\n onPressMarkAsUnreadMessage,\n });\n\n const renderItem: ListRenderItem<SendbirdMessage> = useFreshCallback(({ item, index }) => {\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: item });\n return renderMessage({\n message: item,\n prevMessage: messages[index + 1],\n nextMessage: messages[index - 1],\n isFirstUnreadMessage: unreadFirstMessage?.messageId === item.messageId,\n onPress,\n onLongPress,\n onPressParentMessage,\n onReplyInThreadMessage,\n onShowUserProfile: show,\n enableMessageGrouping,\n channel,\n currentUserId,\n focused: (searchItem?.startingPoint ?? -1) === item.createdAt,\n bottomSheetItem,\n isFirstItem: index === 0,\n });\n });\n\n return (\n <View style={[{ flex: 1, backgroundColor: colors.background }, safeAreaLayout]}>\n {channel.isFrozen && (\n <ChannelFrozenBanner style={styles.frozenBanner} text={STRINGS.LABELS.CHANNEL_MESSAGE_LIST_FROZEN} />\n )}\n {renderUnreadMessagesFloating && (\n <View\n style={[channel.isFrozen ? styles.unreadMsgFloatingWhenFrozen : styles.unreadMsgFloating, safeAreaLayout]}\n >\n {renderUnreadMessagesFloating({\n visible: unreadMessagesFloatingProps?.visible ?? false,\n onPressClose: () => unreadMessagesFloatingProps?.onPressClose(),\n unreadMessageCount: unreadMessagesFloatingProps?.unreadMessageCount ?? 0,\n })}\n </View>\n )}\n <ChatFlatList\n flatListComponent={flatListComponent}\n {...flatListProps}\n onViewableItemsChanged={onViewableItemsChanged}\n onTopReached={onTopReached}\n onBottomReached={onBottomReached}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n ref={ref}\n data={messages}\n renderItem={renderItem}\n keyExtractor={messageKeyExtractor}\n contentContainerStyle={[\n // { minHeight: '100%', justifyContent: 'flex-end' },\n channel.isFrozen && styles.frozenListPadding,\n flatListProps?.contentContainerStyle,\n ]}\n />\n {renderNewMessagesButton && (\n <View style={[styles.newMsgButton, safeAreaLayout]}>\n {renderNewMessagesButton({\n visible: newMessages.length > 0 && (hasNext() || scrolledAwayFromBottom),\n onPress: () => onPressNewMessagesButton(),\n newMessages,\n })}\n </View>\n )}\n {renderScrollToBottomButton && (\n <View style={[styles.scrollButton, safeAreaLayout]}>\n {renderScrollToBottomButton({\n visible: hasNext() || scrolledAwayFromBottom,\n onPress: () => onPressScrollToBottomButton(),\n })}\n </View>\n )}\n </View>\n );\n};\n\nconst useCreateMessagePressActions = <T extends SendbirdGroupChannel | SendbirdOpenChannel>({\n channel,\n currentUserId,\n onResendFailedMessage,\n onEditMessage,\n onReplyMessage,\n onReplyInThreadMessage,\n onDeleteMessage,\n onPressMediaMessage,\n onPressMarkAsUnreadMessage,\n}: Pick<\n ChannelMessageListProps<T>,\n | 'channel'\n | 'currentUserId'\n | 'onEditMessage'\n | 'onReplyMessage'\n | 'onReplyInThreadMessage'\n | 'onDeleteMessage'\n | 'onResendFailedMessage'\n | 'onPressMediaMessage'\n | 'onPressMarkAsUnreadMessage'\n>): CreateMessagePressActions => {\n const handlers = useSBUHandlers();\n const { colors } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onResendFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.RESEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.RESEND_MSG_ERROR, error);\n };\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage(message), getAvailableUriFromFileMessage(message));\n handlers.onOpenFileURL?.(message.url);\n } else {\n const openFile = handlers.onOpenFileURL ?? SBUUtils.openURL;\n openFile(message.url);\n }\n }\n };\n\n const onMarkAsUnread = (message: HandleableMessage) => {\n onPressMarkAsUnreadMessage?.(message);\n };\n\n const openSheetForFailedMessage = (message: HandleableMessage) => {\n openSheet({\n sheetItems: [\n {\n title: STRINGS.LABELS.CHANNEL_MESSAGE_FAILED_RETRY,\n onPress: () => onResendFailedMessage(message).catch(onResendFailure),\n },\n {\n title: STRINGS.LABELS.CHANNEL_MESSAGE_FAILED_REMOVE,\n titleColor: colors.ui.dialog.default.none.destructive,\n onPress: () => alertForMessageDelete(message),\n },\n ],\n });\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n markAsUnread: (message: HandleableMessage) => ({\n icon: 'mark-as-unread' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_MARK_AS_UNREAD,\n onPress: () => onMarkAsUnread(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n reply: (message: HandleableMessage) => ({\n disabled: Boolean(message.parentMessageId),\n icon: 'reply' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_REPLY,\n onPress: () => onReplyMessage?.(message),\n }),\n replyInThread: (message: HandleableMessage) => ({\n disabled: Boolean(message.parentMessageId),\n icon: 'thread' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_THREAD,\n onPress: () => onReplyInThreadMessage?.(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (message.sendingStatus === 'succeeded') {\n const isMyMsg = isMyMessage(message, currentUserId);\n if (isMyMsg) {\n sheetItems.push(menu.edit(message));\n }\n\n if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {\n sheetItems.push(menu.markAsUnread(message));\n }\n\n if (isMyMsg) {\n sheetItems.push(menu.delete(message));\n }\n }\n if (channel.isGroupChannel()) {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {\n sheetItems.push(menu.replyInThread(message));\n } else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {\n sheetItems.push(menu.reply(message));\n }\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (message.sendingStatus === 'succeeded') {\n if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {\n sheetItems.push(menu.markAsUnread(message));\n }\n\n if (isMyMessage(message, currentUserId)) {\n sheetItems.push(menu.delete(message));\n }\n }\n\n if (channel.isGroupChannel()) {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {\n sheetItems.push(menu.replyInThread(message));\n } else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {\n sheetItems.push(menu.reply(message));\n }\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n switch (true) {\n case message.sendingStatus === 'pending': {\n return {\n onPress: undefined,\n onLongPress: undefined,\n bottomSheetItem: undefined,\n };\n }\n\n case message.sendingStatus === 'failed': {\n return {\n onPress: () => onResendFailedMessage(message).catch(onResendFailure),\n onLongPress: () => openSheetForFailedMessage(message),\n bottomSheetItem,\n };\n }\n\n case message.isFileMessage(): {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n\n default: {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n }\n };\n};\n\nconst styles = createStyleSheet({\n frozenBanner: {\n position: 'absolute',\n zIndex: 999,\n top: 8,\n start: 8,\n end: 8,\n },\n frozenListPadding: {\n paddingBottom: 32,\n },\n unreadMsgFloating: {\n position: 'absolute',\n zIndex: 999,\n top: 12,\n alignSelf: 'center',\n },\n unreadMsgFloatingWhenFrozen: {\n position: 'absolute',\n zIndex: 999,\n top: 40,\n alignSelf: 'center',\n },\n newMsgButton: {\n position: 'absolute',\n zIndex: 999,\n bottom: 10,\n alignSelf: 'center',\n },\n scrollButton: {\n position: 'absolute',\n zIndex: 998,\n bottom: 10,\n end: 16,\n },\n});\n\n// NOTE: Due to Generic inference is not working on forwardRef, we need to cast it as typeof ChannelMessageList and implicit `ref` prop\nexport default React.forwardRef(ChannelMessageList) as typeof ChannelMessageList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
10
|
+
var _useContext = require("../../hooks/useContext");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const GroupChannelMessageNewLine = ({
|
|
13
|
+
shouldRenderNewLine
|
|
14
|
+
}) => {
|
|
15
|
+
if (!shouldRenderNewLine) return null;
|
|
16
|
+
const {
|
|
17
|
+
STRINGS
|
|
18
|
+
} = (0, _useContext.useLocalization)();
|
|
19
|
+
const {
|
|
20
|
+
colors
|
|
21
|
+
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
23
|
+
style: styles.container
|
|
24
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
25
|
+
backgroundColor: colors.primary,
|
|
26
|
+
style: styles.line
|
|
27
|
+
}), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
28
|
+
caption3: true,
|
|
29
|
+
numberOfLines: 1,
|
|
30
|
+
color: colors.primary,
|
|
31
|
+
style: styles.label
|
|
32
|
+
}, STRINGS.GROUP_CHANNEL.LIST_NEW_LINE), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
33
|
+
backgroundColor: colors.primary,
|
|
34
|
+
style: styles.line
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
const styles = _reactNative.StyleSheet.create({
|
|
38
|
+
container: {
|
|
39
|
+
width: '100%',
|
|
40
|
+
flexDirection: 'row',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
marginBottom: 16
|
|
43
|
+
},
|
|
44
|
+
line: {
|
|
45
|
+
flex: 1,
|
|
46
|
+
height: 1
|
|
47
|
+
},
|
|
48
|
+
label: {
|
|
49
|
+
marginHorizontal: 4
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
var _default = exports.default = /*#__PURE__*/_react.default.memo(GroupChannelMessageNewLine);
|
|
53
|
+
//# sourceMappingURL=GroupChannelMessageNewLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_useContext","e","__esModule","default","GroupChannelMessageNewLine","shouldRenderNewLine","STRINGS","useLocalization","colors","useUIKitTheme","createElement","View","style","styles","container","Box","backgroundColor","primary","line","Text","caption3","numberOfLines","color","label","GROUP_CHANNEL","LIST_NEW_LINE","StyleSheet","create","width","flexDirection","alignItems","marginBottom","flex","height","marginHorizontal","_default","exports","React","memo"],"sources":["GroupChannelMessageNewLine.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { Box, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../hooks/useContext';\n\ntype Props = {\n shouldRenderNewLine?: boolean;\n};\n\nconst GroupChannelMessageNewLine = ({ shouldRenderNewLine }: Props) => {\n if (!shouldRenderNewLine) return null;\n\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n return (\n <View style={styles.container}>\n <Box backgroundColor={colors.primary} style={styles.line} />\n <Text caption3 numberOfLines={1} color={colors.primary} style={styles.label}>\n {STRINGS.GROUP_CHANNEL.LIST_NEW_LINE}\n </Text>\n <Box backgroundColor={colors.primary} style={styles.line} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: 16,\n },\n line: {\n flex: 1,\n height: 1,\n },\n label: {\n marginHorizontal: 4,\n },\n});\n\nexport default React.memo(GroupChannelMessageNewLine);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAAyD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMzD,MAAMG,0BAA0B,GAAGA,CAAC;EAAEC;AAA2B,CAAC,KAAK;EACrE,IAAI,CAACA,mBAAmB,EAAE,OAAO,IAAI;EAErC,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EACrC,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EAElC,oBACEd,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACZ,YAAA,CAAAa,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC5BnB,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAgB,GAAG;IAACC,eAAe,EAAER,MAAM,CAACS,OAAQ;IAACL,KAAK,EAAEC,MAAM,CAACK;EAAK,CAAE,CAAC,eAC5DvB,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAoB,IAAI;IAACC,QAAQ;IAACC,aAAa,EAAE,CAAE;IAACC,KAAK,EAAEd,MAAM,CAACS,OAAQ;IAACL,KAAK,EAAEC,MAAM,CAACU;EAAM,GACzEjB,OAAO,CAACkB,aAAa,CAACC,aACnB,CAAC,eACP9B,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAgB,GAAG;IAACC,eAAe,EAAER,MAAM,CAACS,OAAQ;IAACL,KAAK,EAAEC,MAAM,CAACK;EAAK,CAAE,CACvD,CAAC;AAEX,CAAC;AAED,MAAML,MAAM,GAAGa,uBAAU,CAACC,MAAM,CAAC;EAC/Bb,SAAS,EAAE;IACTc,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE;EAChB,CAAC;EACDb,IAAI,EAAE;IACJc,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE;EACV,CAAC;EACDV,KAAK,EAAE;IACLW,gBAAgB,EAAE;EACpB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjC,OAAA,gBAEYkC,cAAK,CAACC,IAAI,CAAClC,0BAA0B,CAAC","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ var _types = require("../../types");
|
|
|
14
14
|
var _ReactionAddons = require("../ReactionAddons");
|
|
15
15
|
var _GroupChannelMessageDateSeparator = _interopRequireDefault(require("./GroupChannelMessageDateSeparator"));
|
|
16
16
|
var _GroupChannelMessageFocusAnimation = _interopRequireDefault(require("./GroupChannelMessageFocusAnimation"));
|
|
17
|
+
var _GroupChannelMessageNewLine = _interopRequireDefault(require("./GroupChannelMessageNewLine"));
|
|
17
18
|
var _GroupChannelMessageOutgoingStatus = _interopRequireDefault(require("./GroupChannelMessageOutgoingStatus"));
|
|
18
19
|
var _GroupChannelMessageParentMessage = _interopRequireDefault(require("./GroupChannelMessageParentMessage"));
|
|
19
20
|
var _GroupChannelMessageReplyInfo = _interopRequireDefault(require("./GroupChannelMessageReplyInfo"));
|
|
@@ -33,6 +34,7 @@ const GroupChannelMessageRenderer = ({
|
|
|
33
34
|
focused,
|
|
34
35
|
prevMessage,
|
|
35
36
|
nextMessage,
|
|
37
|
+
isFirstUnreadMessage,
|
|
36
38
|
hideParentMessage
|
|
37
39
|
}) => {
|
|
38
40
|
const handlers = (0, _useContext.useSBUHandlers)();
|
|
@@ -314,12 +316,15 @@ const GroupChannelMessageRenderer = ({
|
|
|
314
316
|
return 16;
|
|
315
317
|
}
|
|
316
318
|
});
|
|
319
|
+
const shouldRenderNewLine = sbOptions.uikit.groupChannel.channel.enableMarkAsUnread && isFirstUnreadMessage;
|
|
317
320
|
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
318
321
|
paddingHorizontal: 16,
|
|
319
322
|
marginBottom: messageGap
|
|
320
323
|
}, /*#__PURE__*/_react.default.createElement(_GroupChannelMessageDateSeparator.default, {
|
|
321
324
|
message: message,
|
|
322
325
|
prevMessage: prevMessage
|
|
326
|
+
}), /*#__PURE__*/_react.default.createElement(_GroupChannelMessageNewLine.default, {
|
|
327
|
+
shouldRenderNewLine: shouldRenderNewLine
|
|
323
328
|
}), /*#__PURE__*/_react.default.createElement(_GroupChannelMessageFocusAnimation.default, {
|
|
324
329
|
focused: focused
|
|
325
330
|
}, renderMessage()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","GroupChannelMessageRenderer","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","_message$mentionedUse","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","key","_messageProps$onPress","suppressHighlighting","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","catch","_","Unknown","messageGap","isAdminMessage","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, stopped ? 0 : currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate ?? '';\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n suppressHighlighting\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageNewLine","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","GroupChannelMessageRenderer","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","isFirstUnreadMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","_message$mentionedUse","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","key","_messageProps$onPress","suppressHighlighting","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","catch","_","Unknown","messageGap","isAdminMessage","shouldRenderNewLine","enableMarkAsUnread","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageNewLine from './GroupChannelMessageNewLine';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n isFirstUnreadMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, stopped ? 0 : currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate ?? '';\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n suppressHighlighting\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n const shouldRenderNewLine = sbOptions.uikit.groupChannel.channel.enableMarkAsUnread && isFirstUnreadMessage;\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageNewLine shouldRenderNewLine={shouldRenderNewLine} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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","ignoreList":[]}
|