@sendbird/uikit-react-native 3.5.3 → 3.6.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/ChannelInput/SendInput.js +23 -6
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +22 -4
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChannelThreadMessageList/index.js +349 -0
- package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +100 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +24 -6
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +23 -6
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/commonjs/components/ThreadChatFlatList/index.js +76 -0
- package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +41 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +74 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +42 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +94 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +61 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +127 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +206 -0
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -0
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +7 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +7 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -5
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +14 -4
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +82 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +44 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +127 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +315 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +27 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +27 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +195 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/index.js +69 -0
- package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +42 -0
- package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +148 -0
- package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/types.js +6 -0
- package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelFragment.js +30 -5
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +267 -0
- package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -0
- package/lib/commonjs/hooks/useMentionSuggestion.js +5 -2
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/index.js +72 -40
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/libs/VoiceMessageStatusManager.js +66 -0
- package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +25 -3
- 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/ChannelInput/SendInput.js +23 -6
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +22 -4
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChannelThreadMessageList/index.js +341 -0
- package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +92 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +24 -6
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js +23 -6
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/module/components/ThreadChatFlatList/index.js +66 -0
- package/lib/module/components/ThreadChatFlatList/index.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +34 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +67 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +34 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +87 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +54 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +119 -0
- package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
- package/lib/module/components/ThreadParentMessageRenderer/index.js +196 -0
- package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -0
- package/lib/module/containers/SendbirdUIKitContainer.js +7 -1
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +6 -0
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +30 -6
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +14 -4
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +73 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +34 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +117 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +305 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +19 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +19 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +185 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
- package/lib/module/domain/groupChannelThread/index.js +9 -0
- package/lib/module/domain/groupChannelThread/index.js.map +1 -0
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +34 -0
- package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
- package/lib/module/domain/groupChannelThread/module/moduleContext.js +137 -0
- package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelThread/types.js +2 -0
- package/lib/module/domain/groupChannelThread/types.js.map +1 -0
- package/lib/module/fragments/createGroupChannelFragment.js +33 -7
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/fragments/createGroupChannelThreadFragment.js +257 -0
- package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -0
- package/lib/module/hooks/useMentionSuggestion.js +5 -2
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/libs/VoiceMessageStatusManager.js +59 -0
- package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -0
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +27 -4
- 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/ChannelInput/index.d.ts +1 -0
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +5 -2
- package/lib/typescript/src/components/ChannelThreadMessageList/index.d.ts +55 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +1 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.d.ts +9 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -1
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +3 -1
- package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +3 -1
- package/lib/typescript/src/components/ReactionAddons/index.d.ts +2 -1
- package/lib/typescript/src/components/ThreadChatFlatList/index.d.ts +9 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.d.ts +4 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.d.ts +4 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.d.ts +9 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +13 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.d.ts +10 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.d.ts +10 -0
- package/lib/typescript/src/components/ThreadParentMessageRenderer/index.d.ts +20 -0
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +6 -4
- package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +15 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +4 -1
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadHeader.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadInput.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.d.ts +8 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannelThread/index.d.ts +8 -0
- package/lib/typescript/src/domain/groupChannelThread/module/createGroupChannelThreadModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelThread/types.d.ts +136 -0
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/fragments/createGroupChannelThreadFragment.d.ts +5 -0
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +1 -1
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/libs/VoiceMessageStatusManager.d.ts +11 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +23 -0
- package/lib/typescript/src/localization/createBaseStringSet.d.ts +1 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChannelInput/SendInput.tsx +24 -5
- package/src/components/ChannelInput/index.tsx +1 -0
- package/src/components/ChannelMessageList/index.tsx +27 -5
- package/src/components/ChannelThreadMessageList/index.tsx +406 -0
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +3 -3
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +96 -0
- package/src/components/GroupChannelMessageRenderer/index.tsx +21 -5
- package/src/components/ReactionAddons/MessageReactionAddon.tsx +38 -5
- package/src/components/ThreadChatFlatList/index.tsx +63 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.tsx +36 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +61 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.tsx +45 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +107 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +133 -0
- package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +65 -0
- package/src/components/ThreadParentMessageRenderer/index.tsx +194 -0
- package/src/containers/SendbirdUIKitContainer.tsx +9 -4
- package/src/contexts/SendbirdChatCtx.tsx +20 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +37 -8
- package/src/domain/groupChannel/module/moduleContext.tsx +12 -2
- package/src/domain/groupChannel/types.ts +5 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +63 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadInput.tsx +38 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +105 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +326 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.tsx +18 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.tsx +18 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +174 -0
- package/src/domain/groupChannelThread/index.ts +8 -0
- package/src/domain/groupChannelThread/module/createGroupChannelThreadModule.tsx +35 -0
- package/src/domain/groupChannelThread/module/moduleContext.tsx +165 -0
- package/src/domain/groupChannelThread/types.ts +184 -0
- package/src/fragments/createGroupChannelFragment.tsx +38 -8
- package/src/fragments/createGroupChannelThreadFragment.tsx +280 -0
- package/src/hooks/useMentionSuggestion.ts +13 -9
- package/src/index.ts +4 -0
- package/src/libs/VoiceMessageStatusManager.ts +56 -0
- package/src/localization/StringSet.type.ts +27 -0
- package/src/localization/createBaseStringSet.ts +33 -4
- package/src/version.ts +1 -1
|
@@ -17,6 +17,7 @@ var _GroupChannelMessageDateSeparator = _interopRequireDefault(require("./GroupC
|
|
|
17
17
|
var _GroupChannelMessageFocusAnimation = _interopRequireDefault(require("./GroupChannelMessageFocusAnimation"));
|
|
18
18
|
var _GroupChannelMessageOutgoingStatus = _interopRequireDefault(require("./GroupChannelMessageOutgoingStatus"));
|
|
19
19
|
var _GroupChannelMessageParentMessage = _interopRequireDefault(require("./GroupChannelMessageParentMessage"));
|
|
20
|
+
var _GroupChannelMessageReplyInfo = _interopRequireDefault(require("./GroupChannelMessageReplyInfo"));
|
|
20
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
22
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
23
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -29,10 +30,12 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
29
30
|
onLongPress,
|
|
30
31
|
onPressParentMessage,
|
|
31
32
|
onShowUserProfile,
|
|
33
|
+
onReplyInThreadMessage,
|
|
32
34
|
enableMessageGrouping,
|
|
33
35
|
focused,
|
|
34
36
|
prevMessage,
|
|
35
|
-
nextMessage
|
|
37
|
+
nextMessage,
|
|
38
|
+
hideParentMessage
|
|
36
39
|
} = _ref;
|
|
37
40
|
const playerUnsubscribes = (0, _react.useRef)([]);
|
|
38
41
|
const {
|
|
@@ -41,7 +44,8 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
41
44
|
const {
|
|
42
45
|
sbOptions,
|
|
43
46
|
currentUser,
|
|
44
|
-
mentionManager
|
|
47
|
+
mentionManager,
|
|
48
|
+
voiceMessageStatusManager
|
|
45
49
|
} = (0, _useContext.useSendbirdChat)();
|
|
46
50
|
const {
|
|
47
51
|
STRINGS
|
|
@@ -53,7 +57,8 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
53
57
|
const {
|
|
54
58
|
groupWithPrev,
|
|
55
59
|
groupWithNext
|
|
56
|
-
} = (0, _uikitUtils.calcMessageGrouping)(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);
|
|
60
|
+
} = (0, _uikitUtils.calcMessageGrouping)(Boolean(enableMessageGrouping), message, prevMessage, nextMessage, sbOptions.uikit.groupChannel.channel.replyType === 'thread', (0, _uikitUtils.shouldRenderParentMessage)(message, hideParentMessage));
|
|
61
|
+
const variant = (0, _uikitUtils.isMyMessage)(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? 'outgoing' : 'incoming';
|
|
57
62
|
const reactionChildren = (0, _uikitUtils.useIIFE)(() => {
|
|
58
63
|
const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;
|
|
59
64
|
if ((0, _uikitUtils.shouldRenderReaction)(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) && message.reactions && message.reactions.length > 0) {
|
|
@@ -64,6 +69,15 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
64
69
|
}
|
|
65
70
|
return null;
|
|
66
71
|
});
|
|
72
|
+
const replyInfo = (0, _uikitUtils.useIIFE)(() => {
|
|
73
|
+
if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;
|
|
74
|
+
if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(_GroupChannelMessageReplyInfo.default, {
|
|
76
|
+
channel: channel,
|
|
77
|
+
message: message,
|
|
78
|
+
onPress: onReplyInThreadMessage
|
|
79
|
+
});
|
|
80
|
+
});
|
|
67
81
|
const resetPlayer = async () => {
|
|
68
82
|
playerUnsubscribes.current.forEach(unsubscribe => {
|
|
69
83
|
try {
|
|
@@ -73,7 +87,6 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
73
87
|
playerUnsubscribes.current.length = 0;
|
|
74
88
|
await playerService.reset();
|
|
75
89
|
};
|
|
76
|
-
const variant = (0, _uikitUtils.isMyMessage)(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? 'outgoing' : 'incoming';
|
|
77
90
|
const messageProps = {
|
|
78
91
|
channel,
|
|
79
92
|
variant,
|
|
@@ -106,6 +119,7 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
106
119
|
currentTime,
|
|
107
120
|
duration
|
|
108
121
|
} = _ref2;
|
|
122
|
+
voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, currentTime);
|
|
109
123
|
if (seekFinished) {
|
|
110
124
|
setState(prevState => ({
|
|
111
125
|
...prevState,
|
|
@@ -157,11 +171,12 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
157
171
|
groupedWithPrev: groupWithPrev,
|
|
158
172
|
groupedWithNext: groupWithNext,
|
|
159
173
|
children: reactionChildren,
|
|
174
|
+
replyInfo: replyInfo,
|
|
160
175
|
sendingStatus: (0, _uikitUtils.isMyMessage)(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? /*#__PURE__*/_react.default.createElement(_GroupChannelMessageOutgoingStatus.default, {
|
|
161
176
|
channel: channel,
|
|
162
177
|
message: message
|
|
163
178
|
}) : null,
|
|
164
|
-
parentMessage: (0, _uikitUtils.shouldRenderParentMessage)(message) ? /*#__PURE__*/_react.default.createElement(_GroupChannelMessageParentMessage.default, {
|
|
179
|
+
parentMessage: (0, _uikitUtils.shouldRenderParentMessage)(message, hideParentMessage) ? /*#__PURE__*/_react.default.createElement(_GroupChannelMessageParentMessage.default, {
|
|
165
180
|
channel: channel,
|
|
166
181
|
message: message.parentMessage,
|
|
167
182
|
variant: variant,
|
|
@@ -267,6 +282,9 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
267
282
|
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.GroupChannelMessage.VoiceFile, _extends({
|
|
268
283
|
message: message,
|
|
269
284
|
durationMetaArrayKey: _constants.VOICE_MESSAGE_META_ARRAY_DURATION_KEY,
|
|
285
|
+
initialCurrentTime: voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId),
|
|
286
|
+
onSubscribeStatus: voiceMessageStatusManager.subscribe,
|
|
287
|
+
onUnsubscribeStatus: voiceMessageStatusManager.unsubscribe,
|
|
270
288
|
onUnmount: () => {
|
|
271
289
|
if ((0, _uikitUtils.isVoiceMessage)(message) && playerService.uri === message.url) {
|
|
272
290
|
resetPlayer();
|
|
@@ -290,7 +308,7 @@ const GroupChannelMessageRenderer = _ref => {
|
|
|
290
308
|
} else {
|
|
291
309
|
return 16;
|
|
292
310
|
}
|
|
293
|
-
} else if (nextMessage && (0, _uikitUtils.shouldRenderParentMessage)(nextMessage)) {
|
|
311
|
+
} else if (nextMessage && (0, _uikitUtils.shouldRenderParentMessage)(nextMessage, hideParentMessage)) {
|
|
294
312
|
return 16;
|
|
295
313
|
} else if (groupWithNext) {
|
|
296
314
|
return 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_SBUUtils","_interopRequireDefault","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","enableMessageGrouping","focused","prevMessage","nextMessage","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","reactionChildren","useIIFE","configs","uikitWithAppInfo","groupChannel","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","resetPlayer","current","forEach","unsubscribe","reset","variant","isMyMessage","userId","messageProps","onPressURL","url","SBUUtils","openURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref2","stopped","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","shouldRenderParentMessage","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","uikit","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref3","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","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","onUnmount","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, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n}) => {\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager } = 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 );\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 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 variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(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 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 sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message) ? (\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 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 onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer();\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)) {\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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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_SBUUtils","_interopRequireDefault","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","hideParentMessage","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","SBUUtils","openURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref2","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","_ref3","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","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","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, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\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 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) => SBUUtils.openURL(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, 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 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();\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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"}
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
10
|
+
var _uikitTools = require("@sendbird/uikit-tools");
|
|
10
11
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
12
|
var _constants = require("../../constants");
|
|
12
13
|
var _useContext = require("../../hooks/useContext");
|
|
@@ -27,7 +28,7 @@ const createOnPressReaction = (reaction, channel, message, reacted) => {
|
|
|
27
28
|
}
|
|
28
29
|
};
|
|
29
30
|
};
|
|
30
|
-
const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenReactionList, onOpenReactionUserList, currentUserId) => {
|
|
31
|
+
const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenReactionList, onOpenReactionUserList, currentUserId, reactionAddonType) => {
|
|
31
32
|
const reactions = message.reactions ?? [];
|
|
32
33
|
const buttons = reactions.map((reaction, index) => {
|
|
33
34
|
const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;
|
|
@@ -45,7 +46,7 @@ const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenRea
|
|
|
45
46
|
url: getEmoji(reaction.key).url,
|
|
46
47
|
count: (0, _uikitUtils.getReactionCount)(reaction),
|
|
47
48
|
reacted: pressed || getUserReacted(reaction, currentUserId),
|
|
48
|
-
style: [isNotLastOfRow && styles.marginRight, isNotLastOfCol && styles.marginBottom]
|
|
49
|
+
style: reactionAddonType === 'default' ? [isNotLastOfRow && styles.marginRight, isNotLastOfCol && styles.marginBottom] : [styles.marginRight, styles.marginBottom]
|
|
49
50
|
});
|
|
50
51
|
});
|
|
51
52
|
});
|
|
@@ -68,12 +69,14 @@ const MessageReactionAddon = _ref3 => {
|
|
|
68
69
|
var _message$reactions;
|
|
69
70
|
let {
|
|
70
71
|
channel,
|
|
71
|
-
message
|
|
72
|
+
message,
|
|
73
|
+
reactionAddonType = 'default'
|
|
72
74
|
} = _ref3;
|
|
73
75
|
const {
|
|
74
76
|
colors
|
|
75
77
|
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
76
78
|
const {
|
|
79
|
+
sdk,
|
|
77
80
|
emojiManager,
|
|
78
81
|
currentUser
|
|
79
82
|
} = (0, _useContext.useSendbirdChat)();
|
|
@@ -81,7 +84,16 @@ const MessageReactionAddon = _ref3 => {
|
|
|
81
84
|
openReactionList,
|
|
82
85
|
openReactionUserList
|
|
83
86
|
} = (0, _useContext.useReaction)();
|
|
84
|
-
|
|
87
|
+
const forceUpdate = (0, _uikitTools.useForceUpdate)();
|
|
88
|
+
(0, _uikitTools.useGroupChannelHandler)(sdk, {
|
|
89
|
+
async onReactionUpdated(_, event) {
|
|
90
|
+
if (event.messageId === message.messageId) {
|
|
91
|
+
message.applyReactionEvent(event);
|
|
92
|
+
forceUpdate();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
if (reactionAddonType === 'default' && !((_message$reactions = message.reactions) !== null && _message$reactions !== void 0 && _message$reactions.length)) return null;
|
|
85
97
|
const reactionButtons = createReactionButtons(channel, message, key => emojiManager.allEmojiMap[key], emojiManager.allEmoji.length, () => openReactionList({
|
|
86
98
|
channel,
|
|
87
99
|
message
|
|
@@ -89,9 +101,10 @@ const MessageReactionAddon = _ref3 => {
|
|
|
89
101
|
channel,
|
|
90
102
|
message,
|
|
91
103
|
focusIndex
|
|
92
|
-
}), currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
|
|
104
|
+
}), currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId, reactionAddonType);
|
|
105
|
+
const containerStyle = reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;
|
|
93
106
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
|
|
94
|
-
style: [
|
|
107
|
+
style: [containerStyle, {
|
|
95
108
|
backgroundColor: colors.background,
|
|
96
109
|
borderColor: colors.ui.reaction.rounded.enabled.background
|
|
97
110
|
}]
|
|
@@ -106,6 +119,10 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
|
106
119
|
borderRadius: 16,
|
|
107
120
|
borderWidth: 1
|
|
108
121
|
},
|
|
122
|
+
reactionThreadParentMessageContainer: {
|
|
123
|
+
flexDirection: 'row',
|
|
124
|
+
flexWrap: 'wrap'
|
|
125
|
+
},
|
|
109
126
|
marginRight: {
|
|
110
127
|
marginRight: 4.5
|
|
111
128
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","obj","__esModule","default","NUM_COL","REACTION_MORE_KEY","getUserReacted","reaction","userId","arguments","length","undefined","UNKNOWN_USER_ID","userIds","indexOf","createOnPressReaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getEmoji","emojiLimit","onOpenReactionList","onOpenReactionUserList","currentUserId","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","createElement","Pressable","onPress","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","_ref","pressed","url","count","getReactionCount","style","styles","marginRight","marginBottom","push","_ref2","More","MessageReactionAddon","_ref3","_message$reactions","colors","useUIKitTheme","emojiManager","currentUser","useSendbirdChat","openReactionList","openReactionUserList","useReaction","reactionButtons","allEmojiMap","allEmoji","focusIndex","reactionContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { Emoji } from '@sendbird/chat';\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY, UNKNOWN_USER_ID } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\n\nconst getUserReacted = (reaction: SendbirdReaction, userId = UNKNOWN_USER_ID) => {\n return reaction.userIds.indexOf(userId) > -1;\n};\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getEmoji: (key: string) => Emoji,\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n currentUserId?: string,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, getUserReacted(reaction, currentUserId))}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n url={getEmoji(reaction.key).url}\n count={getReactionCount(reaction)}\n reacted={pressed || getUserReacted(reaction, currentUserId)}\n style={[isNotLastOfRow && styles.marginRight, isNotLastOfCol && styles.marginBottom]}\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({ channel, message }: { channel: SendbirdBaseChannel; message: SendbirdBaseMessage }) => {\n const { colors } = useUIKitTheme();\n const { emojiManager, currentUser } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n\n if (!message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (key) => emojiManager.allEmojiMap[key],\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n currentUser?.userId,\n );\n\n return (\n <Pressable\n style={[\n styles.reactionContainer,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n marginRight: {\n marginRight: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","obj","__esModule","default","NUM_COL","REACTION_MORE_KEY","getUserReacted","reaction","userId","arguments","length","undefined","UNKNOWN_USER_ID","userIds","indexOf","createOnPressReaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getEmoji","emojiLimit","onOpenReactionList","onOpenReactionUserList","currentUserId","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","createElement","Pressable","onPress","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","_ref","pressed","url","count","getReactionCount","style","styles","marginRight","marginBottom","push","_ref2","More","MessageReactionAddon","_ref3","_message$reactions","colors","useUIKitTheme","sdk","emojiManager","currentUser","useSendbirdChat","openReactionList","openReactionUserList","useReaction","forceUpdate","useForceUpdate","useGroupChannelHandler","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","allEmojiMap","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { Emoji } from '@sendbird/chat';\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY, UNKNOWN_USER_ID } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst getUserReacted = (reaction: SendbirdReaction, userId = UNKNOWN_USER_ID) => {\n return reaction.userIds.indexOf(userId) > -1;\n};\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getEmoji: (key: string) => Emoji,\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n currentUserId?: string,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, getUserReacted(reaction, currentUserId))}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n url={getEmoji(reaction.key).url}\n count={getReactionCount(reaction)}\n reacted={pressed || getUserReacted(reaction, currentUserId)}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginRight, isNotLastOfCol && styles.marginBottom]\n : [styles.marginRight, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager, currentUser } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (key) => emojiManager.allEmojiMap[key],\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n currentUser?.userId,\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginRight: {\n marginRight: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
var _FlatListInternal = _interopRequireDefault(require("../ChatFlatList/FlatListInternal"));
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
|
+
const BOTTOM_DETECT_THRESHOLD = 50;
|
|
17
|
+
const UNREACHABLE_THRESHOLD = Number.MIN_SAFE_INTEGER;
|
|
18
|
+
const ThreadChatFlatList = /*#__PURE__*/(0, _react.forwardRef)(function ThreadChatFlatList(_ref, ref) {
|
|
19
|
+
let {
|
|
20
|
+
onTopReached,
|
|
21
|
+
onBottomReached,
|
|
22
|
+
onScrolledAwayFromBottom,
|
|
23
|
+
onScroll,
|
|
24
|
+
...props
|
|
25
|
+
} = _ref;
|
|
26
|
+
const {
|
|
27
|
+
select
|
|
28
|
+
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
29
|
+
const contentOffsetY = (0, _react.useRef)(0);
|
|
30
|
+
const _onScroll = (0, _uikitUtils.useFreshCallback)(event => {
|
|
31
|
+
onScroll === null || onScroll === void 0 ? void 0 : onScroll(event);
|
|
32
|
+
const {
|
|
33
|
+
contentOffset,
|
|
34
|
+
contentSize,
|
|
35
|
+
layoutMeasurement
|
|
36
|
+
} = event.nativeEvent;
|
|
37
|
+
const prevOffsetY = contentOffsetY.current;
|
|
38
|
+
const currOffsetY = contentOffset.y;
|
|
39
|
+
const bottomDetectThreshold = contentSize.height - layoutMeasurement.height - BOTTOM_DETECT_THRESHOLD;
|
|
40
|
+
if (bottomDetectThreshold < prevOffsetY && currOffsetY <= bottomDetectThreshold) {
|
|
41
|
+
onScrolledAwayFromBottom(true);
|
|
42
|
+
} else if (bottomDetectThreshold < currOffsetY && prevOffsetY <= bottomDetectThreshold) {
|
|
43
|
+
onScrolledAwayFromBottom(false);
|
|
44
|
+
}
|
|
45
|
+
contentOffsetY.current = contentOffset.y;
|
|
46
|
+
});
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_FlatListInternal.default, _extends({
|
|
48
|
+
bounces: false,
|
|
49
|
+
removeClippedSubviews: true,
|
|
50
|
+
keyboardDismissMode: 'on-drag',
|
|
51
|
+
keyboardShouldPersistTaps: 'handled',
|
|
52
|
+
indicatorStyle: select({
|
|
53
|
+
light: 'black',
|
|
54
|
+
dark: 'white'
|
|
55
|
+
})
|
|
56
|
+
}, props, {
|
|
57
|
+
ref: ref,
|
|
58
|
+
onEndReached: onBottomReached,
|
|
59
|
+
onScrollToIndexFailed: _uikitUtils.NOOP,
|
|
60
|
+
onStartReached: onTopReached,
|
|
61
|
+
scrollEventThrottle: 16,
|
|
62
|
+
onScroll: _onScroll,
|
|
63
|
+
keyExtractor: _uikitUtils.getMessageUniqId,
|
|
64
|
+
style: {
|
|
65
|
+
flex: 1,
|
|
66
|
+
..._reactNative.StyleSheet.flatten(props.style)
|
|
67
|
+
},
|
|
68
|
+
maintainVisibleContentPosition: {
|
|
69
|
+
minIndexForVisible: 0,
|
|
70
|
+
autoscrollToTopThreshold: UNREACHABLE_THRESHOLD
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
});
|
|
74
|
+
var _default = ThreadChatFlatList;
|
|
75
|
+
exports.default = _default;
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_FlatListInternal","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","BOTTOM_DETECT_THRESHOLD","UNREACHABLE_THRESHOLD","Number","MIN_SAFE_INTEGER","ThreadChatFlatList","forwardRef","_ref","ref","onTopReached","onBottomReached","onScrolledAwayFromBottom","onScroll","props","select","useUIKitTheme","contentOffsetY","useRef","_onScroll","useFreshCallback","event","contentOffset","contentSize","layoutMeasurement","nativeEvent","prevOffsetY","current","currOffsetY","y","bottomDetectThreshold","height","createElement","bounces","removeClippedSubviews","keyboardDismissMode","keyboardShouldPersistTaps","indicatorStyle","light","dark","onEndReached","onScrollToIndexFailed","NOOP","onStartReached","scrollEventThrottle","keyExtractor","getMessageUniqId","style","flex","StyleSheet","flatten","maintainVisibleContentPosition","minIndexForVisible","autoscrollToTopThreshold","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { FlatListProps, FlatList as RNFlatList, StyleSheet } from 'react-native';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP, SendbirdMessage, getMessageUniqId, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport FlatListInternal from '../ChatFlatList/FlatListInternal';\n\nconst BOTTOM_DETECT_THRESHOLD = 50;\nconst UNREACHABLE_THRESHOLD = Number.MIN_SAFE_INTEGER;\n\ntype Props = Omit<FlatListProps<SendbirdMessage>, 'onEndReached'> & {\n onBottomReached: () => void;\n onTopReached: () => void;\n onScrolledAwayFromBottom: (value: boolean) => void;\n};\nconst ThreadChatFlatList = forwardRef<RNFlatList, Props>(function ThreadChatFlatList(\n { onTopReached, onBottomReached, onScrolledAwayFromBottom, onScroll, ...props },\n ref,\n) {\n const { select } = useUIKitTheme();\n const contentOffsetY = useRef(0);\n\n const _onScroll = useFreshCallback<NonNullable<Props['onScroll']>>((event) => {\n onScroll?.(event);\n\n const { contentOffset, contentSize, layoutMeasurement } = event.nativeEvent;\n\n const prevOffsetY = contentOffsetY.current;\n const currOffsetY = contentOffset.y;\n\n const bottomDetectThreshold = contentSize.height - layoutMeasurement.height - BOTTOM_DETECT_THRESHOLD;\n if (bottomDetectThreshold < prevOffsetY && currOffsetY <= bottomDetectThreshold) {\n onScrolledAwayFromBottom(true);\n } else if (bottomDetectThreshold < currOffsetY && prevOffsetY <= bottomDetectThreshold) {\n onScrolledAwayFromBottom(false);\n }\n\n contentOffsetY.current = contentOffset.y;\n });\n\n return (\n <FlatListInternal\n bounces={false}\n removeClippedSubviews\n keyboardDismissMode={'on-drag'}\n keyboardShouldPersistTaps={'handled'}\n indicatorStyle={select({ light: 'black', dark: 'white' })}\n {...props}\n ref={ref}\n onEndReached={onBottomReached}\n onScrollToIndexFailed={NOOP}\n onStartReached={onTopReached}\n scrollEventThrottle={16}\n onScroll={_onScroll}\n keyExtractor={getMessageUniqId}\n style={{ flex: 1, ...StyleSheet.flatten(props.style) }}\n maintainVisibleContentPosition={{ minIndexForVisible: 0, autoscrollToTopThreshold: UNREACHABLE_THRESHOLD }}\n />\n );\n});\n\nexport default ThreadChatFlatList;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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 _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
9
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const ThreadParentMessageFileImage = props => {
|
|
12
|
+
const fileMessage = props.parentMessage;
|
|
13
|
+
if (!fileMessage) return null;
|
|
14
|
+
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
15
|
+
style: styles.container
|
|
16
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
|
|
17
|
+
onPress: props.onPress,
|
|
18
|
+
onLongPress: props.onLongPress
|
|
19
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ImageWithPlaceholder, {
|
|
20
|
+
source: {
|
|
21
|
+
uri: (0, _uikitUtils.getThumbnailUriFromFileMessage)(fileMessage)
|
|
22
|
+
},
|
|
23
|
+
style: styles.image
|
|
24
|
+
})));
|
|
25
|
+
};
|
|
26
|
+
const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
27
|
+
container: {
|
|
28
|
+
borderRadius: 16,
|
|
29
|
+
overflow: 'hidden'
|
|
30
|
+
},
|
|
31
|
+
image: {
|
|
32
|
+
maxWidth: 240,
|
|
33
|
+
width: 240,
|
|
34
|
+
height: 160,
|
|
35
|
+
borderRadius: 16,
|
|
36
|
+
overflow: 'hidden'
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
var _default = ThreadParentMessageFileImage;
|
|
40
|
+
exports.default = _default;
|
|
41
|
+
//# sourceMappingURL=ThreadParentMessage.file.image.js.map
|
package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","obj","__esModule","default","ThreadParentMessageFileImage","props","fileMessage","parentMessage","createElement","Box","style","styles","container","PressBox","onPress","onLongPress","ImageWithPlaceholder","source","uri","getThumbnailUriFromFileMessage","image","createStyleSheet","borderRadius","overflow","maxWidth","width","height","_default","exports"],"sources":["ThreadParentMessage.file.image.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Box, PressBox, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { ImageWithPlaceholder } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdFileMessage, getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport { ThreadParentMessageRendererProps } from './index';\n\nconst ThreadParentMessageFileImage = (props: ThreadParentMessageRendererProps) => {\n const fileMessage: SendbirdFileMessage = props.parentMessage as SendbirdFileMessage;\n if (!fileMessage) return null;\n\n return (\n <Box style={styles.container}>\n <PressBox onPress={props.onPress} onLongPress={props.onLongPress}>\n <ImageWithPlaceholder source={{ uri: getThumbnailUriFromFileMessage(fileMessage) }} style={styles.image} />\n </PressBox>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n image: {\n maxWidth: 240,\n width: 240,\n height: 160,\n borderRadius: 16,\n overflow: 'hidden',\n },\n});\n\nexport default ThreadParentMessageFileImage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAA4F,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI5F,MAAMG,4BAA4B,GAAIC,KAAuC,IAAK;EAChF,MAAMC,WAAgC,GAAGD,KAAK,CAACE,aAAoC;EACnF,IAAI,CAACD,WAAW,EAAE,OAAO,IAAI;EAE7B,oBACEV,MAAA,CAAAO,OAAA,CAAAK,aAAA,CAACT,2BAAA,CAAAU,GAAG;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC3BhB,MAAA,CAAAO,OAAA,CAAAK,aAAA,CAACT,2BAAA,CAAAc,QAAQ;IAACC,OAAO,EAAET,KAAK,CAACS,OAAQ;IAACC,WAAW,EAAEV,KAAK,CAACU;EAAY,gBAC/DnB,MAAA,CAAAO,OAAA,CAAAK,aAAA,CAACT,2BAAA,CAAAiB,oBAAoB;IAACC,MAAM,EAAE;MAAEC,GAAG,EAAE,IAAAC,0CAA8B,EAACb,WAAW;IAAE,CAAE;IAACI,KAAK,EAAEC,MAAM,CAACS;EAAM,EAAG,CAClG,CACP;AAEV,CAAC;AAED,MAAMT,MAAM,GAAG,IAAAU,4CAAgB,EAAC;EAC9BT,SAAS,EAAE;IACTU,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDH,KAAK,EAAE;IACLI,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXJ,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAAC,IAAAI,QAAA,GAEYvB,4BAA4B;AAAAwB,OAAA,CAAAzB,OAAA,GAAAwB,QAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
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 _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
9
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
10
|
+
var _useContext = require("./../../hooks/useContext");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const ThreadParentMessageFile = props => {
|
|
13
|
+
const fileMessage = props.parentMessage;
|
|
14
|
+
if (!fileMessage) return null;
|
|
15
|
+
const {
|
|
16
|
+
STRINGS
|
|
17
|
+
} = (0, _useContext.useLocalization)();
|
|
18
|
+
const {
|
|
19
|
+
select,
|
|
20
|
+
colors,
|
|
21
|
+
palette
|
|
22
|
+
} = (0, _uikitReactNativeFoundation.useUIKitTheme)();
|
|
23
|
+
const fileType = (0, _uikitUtils.getFileType)(fileMessage.type || (0, _uikitUtils.getFileExtension)(fileMessage.name));
|
|
24
|
+
const fileName = STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(fileMessage) ?? fileMessage.name;
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
26
|
+
style: styles.fileBubbleContainer,
|
|
27
|
+
backgroundColor: select({
|
|
28
|
+
light: palette.background100,
|
|
29
|
+
dark: palette.background400
|
|
30
|
+
})
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
|
|
32
|
+
onPress: props.onPress,
|
|
33
|
+
onLongPress: props.onLongPress
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
|
|
35
|
+
style: styles.iconBackground
|
|
36
|
+
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon.File, {
|
|
37
|
+
fileType: fileType,
|
|
38
|
+
size: 24,
|
|
39
|
+
containerStyle: {
|
|
40
|
+
backgroundColor: palette.background50,
|
|
41
|
+
borderRadius: 8
|
|
42
|
+
}
|
|
43
|
+
}), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
44
|
+
body3: true,
|
|
45
|
+
numberOfLines: 1,
|
|
46
|
+
color: colors.onBackground01,
|
|
47
|
+
style: styles.name
|
|
48
|
+
}, (0, _uikitUtils.truncate)(fileName, {
|
|
49
|
+
mode: 'mid',
|
|
50
|
+
maxLen: 30
|
|
51
|
+
})))));
|
|
52
|
+
};
|
|
53
|
+
const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
|
|
54
|
+
fileBubbleContainer: {
|
|
55
|
+
alignSelf: 'flex-start',
|
|
56
|
+
overflow: 'hidden',
|
|
57
|
+
flexDirection: 'row',
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
borderRadius: 16,
|
|
60
|
+
paddingHorizontal: 12,
|
|
61
|
+
paddingVertical: 8
|
|
62
|
+
},
|
|
63
|
+
iconBackground: {
|
|
64
|
+
flexDirection: 'row',
|
|
65
|
+
alignItems: 'center'
|
|
66
|
+
},
|
|
67
|
+
name: {
|
|
68
|
+
flexShrink: 1,
|
|
69
|
+
marginLeft: 8
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var _default = ThreadParentMessageFile;
|
|
73
|
+
exports.default = _default;
|
|
74
|
+
//# sourceMappingURL=ThreadParentMessage.file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","obj","__esModule","default","ThreadParentMessageFile","props","fileMessage","parentMessage","STRINGS","useLocalization","select","colors","palette","useUIKitTheme","fileType","getFileType","type","getFileExtension","name","fileName","GROUP_CHANNEL","MESSAGE_BUBBLE_FILE_TITLE","createElement","Box","style","styles","fileBubbleContainer","backgroundColor","light","background100","dark","background400","PressBox","onPress","onLongPress","iconBackground","Icon","File","size","containerStyle","background50","borderRadius","Text","body3","numberOfLines","color","onBackground01","truncate","mode","maxLen","createStyleSheet","alignSelf","overflow","flexDirection","alignItems","paddingHorizontal","paddingVertical","flexShrink","marginLeft","_default","exports"],"sources":["ThreadParentMessage.file.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Box, Icon, PressBox, Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdFileMessage, getFileExtension, getFileType, truncate } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from './../../hooks/useContext';\nimport { ThreadParentMessageRendererProps } from './index';\n\nconst ThreadParentMessageFile = (props: ThreadParentMessageRendererProps) => {\n const fileMessage: SendbirdFileMessage = props.parentMessage as SendbirdFileMessage;\n if (!fileMessage) return null;\n\n const { STRINGS } = useLocalization();\n const { select, colors, palette } = useUIKitTheme();\n\n const fileType = getFileType(fileMessage.type || getFileExtension(fileMessage.name));\n const fileName = STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(fileMessage) ?? fileMessage.name;\n\n return (\n <Box\n style={styles.fileBubbleContainer}\n backgroundColor={select({ light: palette.background100, dark: palette.background400 })}\n >\n <PressBox onPress={props.onPress} onLongPress={props.onLongPress}>\n <Box style={styles.iconBackground}>\n <Icon.File\n fileType={fileType}\n size={24}\n containerStyle={{ backgroundColor: palette.background50, borderRadius: 8 }}\n />\n <Text body3 numberOfLines={1} color={colors.onBackground01} style={styles.name}>\n {truncate(fileName, { mode: 'mid', maxLen: 30 })}\n </Text>\n </Box>\n </PressBox>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n fileBubbleContainer: {\n alignSelf: 'flex-start',\n overflow: 'hidden',\n flexDirection: 'row',\n alignItems: 'center',\n borderRadius: 16,\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n iconBackground: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flexShrink: 1,\n marginLeft: 8,\n },\n});\n\nexport default ThreadParentMessageFile;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAA2D,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG3D,MAAMG,uBAAuB,GAAIC,KAAuC,IAAK;EAC3E,MAAMC,WAAgC,GAAGD,KAAK,CAACE,aAAoC;EACnF,IAAI,CAACD,WAAW,EAAE,OAAO,IAAI;EAE7B,MAAM;IAAEE;EAAQ,CAAC,GAAG,IAAAC,2BAAe,GAAE;EACrC,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,yCAAa,GAAE;EAEnD,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAACT,WAAW,CAACU,IAAI,IAAI,IAAAC,4BAAgB,EAACX,WAAW,CAACY,IAAI,CAAC,CAAC;EACpF,MAAMC,QAAQ,GAAGX,OAAO,CAACY,aAAa,CAACC,yBAAyB,CAACf,WAAW,CAAC,IAAIA,WAAW,CAACY,IAAI;EAEjG,oBACEvB,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACxB,2BAAA,CAAAyB,GAAG;IACFC,KAAK,EAAEC,MAAM,CAACC,mBAAoB;IAClCC,eAAe,EAAEjB,MAAM,CAAC;MAAEkB,KAAK,EAAEhB,OAAO,CAACiB,aAAa;MAAEC,IAAI,EAAElB,OAAO,CAACmB;IAAc,CAAC;EAAE,gBAEvFpC,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACxB,2BAAA,CAAAkC,QAAQ;IAACC,OAAO,EAAE5B,KAAK,CAAC4B,OAAQ;IAACC,WAAW,EAAE7B,KAAK,CAAC6B;EAAY,gBAC/DvC,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACxB,2BAAA,CAAAyB,GAAG;IAACC,KAAK,EAAEC,MAAM,CAACU;EAAe,gBAChCxC,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACxB,2BAAA,CAAAsC,IAAI,CAACC,IAAI;IACRvB,QAAQ,EAAEA,QAAS;IACnBwB,IAAI,EAAE,EAAG;IACTC,cAAc,EAAE;MAAEZ,eAAe,EAAEf,OAAO,CAAC4B,YAAY;MAAEC,YAAY,EAAE;IAAE;EAAE,EAC3E,eACF9C,MAAA,CAAAQ,OAAA,CAAAmB,aAAA,CAACxB,2BAAA,CAAA4C,IAAI;IAACC,KAAK;IAACC,aAAa,EAAE,CAAE;IAACC,KAAK,EAAElC,MAAM,CAACmC,cAAe;IAACtB,KAAK,EAAEC,MAAM,CAACP;EAAK,GAC5E,IAAA6B,oBAAQ,EAAC5B,QAAQ,EAAE;IAAE6B,IAAI,EAAE,KAAK;IAAEC,MAAM,EAAE;EAAG,CAAC,CAAC,CAC3C,CACH,CACG,CACP;AAEV,CAAC;AAED,MAAMxB,MAAM,GAAG,IAAAyB,4CAAgB,EAAC;EAC9BxB,mBAAmB,EAAE;IACnByB,SAAS,EAAE,YAAY;IACvBC,QAAQ,EAAE,QAAQ;IAClBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBb,YAAY,EAAE,EAAE;IAChBc,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDrB,cAAc,EAAE;IACdkB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDpC,IAAI,EAAE;IACJuC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYvD,uBAAuB;AAAAwD,OAAA,CAAAzD,OAAA,GAAAwD,QAAA"}
|