@sendbird/uikit-react-native 3.5.4 → 3.7.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/README.md +11 -27
- 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 +12 -11
- 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/EmojiManager.js.map +1 -1
- package/lib/commonjs/libs/InternalLocalCacheStorage.js +65 -19
- package/lib/commonjs/libs/InternalLocalCacheStorage.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/platform/createMediaService.native.js.map +1 -1
- package/lib/commonjs/types.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 +13 -12
- 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/EmojiManager.js.map +1 -1
- package/lib/module/libs/InternalLocalCacheStorage.js +65 -19
- package/lib/module/libs/InternalLocalCacheStorage.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/platform/createMediaService.native.js.map +1 -1
- package/lib/module/types.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 +8 -10
- 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/InternalLocalCacheStorage.d.ts +5 -4
- 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/types.d.ts +4 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +27 -22
- 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 +28 -17
- 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/EmojiManager.ts +2 -2
- package/src/libs/InternalLocalCacheStorage.ts +70 -21
- package/src/libs/VoiceMessageStatusManager.ts +56 -0
- package/src/localization/StringSet.type.ts +27 -0
- package/src/localization/createBaseStringSet.ts +33 -4
- package/src/platform/createMediaService.native.tsx +9 -1
- package/src/types.ts +6 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uikitUtils","require","_constants","createBaseStringSet","_ref","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","OPEN_CHANNEL","HEADER_TITLE","channel","getOpenChannelTitle","HEADER_SUBTITLE","getOpenChannelParticipants","LIST_DATE_SEPARATOR","date","locale","getDateSeparatorFormat","MESSAGE_BUBBLE_TIME","message","getMessageTimeFormat","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","OPEN_CHANNEL_PARTICIPANTS","OPEN_CHANNEL_SETTINGS","HEADER_RIGHT","INFO_URL","MENU_MODERATION","MENU_PARTICIPANTS","MENU_DELETE_CHANNEL","DIALOG_CHANNEL_DELETE_CONFIRM_TITLE","DIALOG_CHANNEL_DELETE_CONFIRM_OK","DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","OPEN_CHANNEL_CREATE","PLACEHOLDER","DIALOG_IMAGE_MENU_REMOVE","DIALOG_IMAGE_MENU_CAMERA","DIALOG_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_PARTICIPANTS","MENU_BANNED_USERS","OPEN_CHANNEL_BANNED_USERS","OPEN_CHANNEL_MUTED_PARTICIPANTS","OPEN_CHANNEL_OPERATORS","OPEN_CHANNEL_REGISTER_OPERATOR","_ref2","selectedUsers","len","length","GROUP_CHANNEL","uid","getGroupChannelTitle","LIST_BUTTON_NEW_MSG","newMessages","MENTION_LIMITED","mentionLimit","GROUP_CHANNEL_SETTINGS","MENU_MEMBERS","MENU_SEARCH","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_MUTED_MEMBERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","_ref3","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","currentUserId","CHANNEL_PREVIEW_TITLE_CAPTION","getGroupChannelPreviewTime","CHANNEL_PREVIEW_BODY","lastMessage","isVoiceMessage","getMessagePreviewBody","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","GROUP_CHANNEL_CREATE","_ref4","GROUP_CHANNEL_INVITE","_ref5","MESSAGE_SEARCH","HEADER_INPUT_PLACEHOLDER","SEARCH_RESULT_ITEM_TITLE","getMessagePreviewTitle","SEARCH_RESULT_ITEM_BODY","SEARCH_RESULT_ITEM_TITLE_CAPTION","getMessagePreviewTime","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","PERMISSION_MICROPHONE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","arguments","undefined","userNames","map","u","nickname","join","REPLY_FROM_SENDER_TO_RECEIVER","reply","parent","UNKNOWN_USER_ID","senderNickname","sender","receiverNickname","userId","MESSAGE_UNAVAILABLE","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","CHANNEL_MESSAGE_LIST_FROZEN","CHANNEL_MESSAGE_COPY","CHANNEL_MESSAGE_EDIT","CHANNEL_MESSAGE_SAVE","CHANNEL_MESSAGE_DELETE","CHANNEL_MESSAGE_REPLY","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","CHANNEL_INPUT_ATTACHMENT_FILES","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_EDIT_OK","CHANNEL_INPUT_EDIT_CANCEL","CHANNEL_INPUT_REPLY_PREVIEW_TITLE","user","CHANNEL_INPUT_REPLY_PREVIEW_BODY","isFileMessage","messageType","getMessageType","type","toLowerCase","includes","isUserMessage","VOICE_MESSAGE","VOICE_MESSAGE_INPUT_CANCEL","FILE_VIEWER","TITLE","_message$sender","SUBTITLE","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_MUTED_PARTICIPANTS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","UNKNOWN_ERROR","GET_CHANNEL_ERROR","FIND_PARENT_MSG_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY","exports"],"sources":["createBaseStringSet.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type { PartialDeep } from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getMessageType,\n getOpenChannelParticipants,\n getOpenChannelTitle,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../constants';\nimport type { StringSet } from './StringSet.type';\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n\n return {\n OPEN_CHANNEL: {\n HEADER_TITLE: (channel) => getOpenChannelTitle(channel),\n HEADER_SUBTITLE: (channel) => getOpenChannelParticipants(channel),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n ...overrides?.OPEN_CHANNEL,\n },\n OPEN_CHANNEL_PARTICIPANTS: {\n HEADER_TITLE: 'Participants',\n ...overrides?.OPEN_CHANNEL_PARTICIPANTS,\n },\n OPEN_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n INFO_URL: 'URL',\n MENU_MODERATION: 'Moderation',\n MENU_PARTICIPANTS: 'Participants',\n MENU_DELETE_CHANNEL: 'Delete channel',\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: 'Delete channel?',\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_SETTINGS,\n },\n OPEN_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (channel) => getOpenChannelTitle(channel),\n ...overrides?.OPEN_CHANNEL_LIST,\n },\n OPEN_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: 'Create',\n PLACEHOLDER: 'Enter channel name',\n DIALOG_IMAGE_MENU_REMOVE: 'Remove photo',\n DIALOG_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_CREATE,\n },\n OPEN_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_PARTICIPANTS: 'Muted participants',\n MENU_BANNED_USERS: 'Banned users',\n ...overrides?.OPEN_CHANNEL_MODERATION,\n },\n OPEN_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.OPEN_CHANNEL_BANNED_USERS,\n },\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n HEADER_TITLE: 'Muted participants',\n ...overrides?.OPEN_CHANNEL_MUTED_PARTICIPANTS,\n },\n OPEN_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.OPEN_CHANNEL_OPERATORS,\n },\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.OPEN_CHANNEL_REGISTER_OPERATOR,\n },\n GROUP_CHANNEL: {\n HEADER_TITLE: (uid, channel) => getGroupChannelTitle(uid, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_SEARCH: 'Search in channel',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => {\n if (!channel.lastMessage) return '';\n if (isVoiceMessage(channel.lastMessage)) return 'Voice message';\n return getMessagePreviewBody(channel.lastMessage);\n },\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n MESSAGE_SEARCH: {\n HEADER_INPUT_PLACEHOLDER: 'Search',\n HEADER_RIGHT: 'Search',\n SEARCH_RESULT_ITEM_TITLE: (message) => getMessagePreviewTitle(message),\n SEARCH_RESULT_ITEM_BODY: (message) => {\n if (isVoiceMessage(message)) return 'Voice message';\n return getMessagePreviewBody(message);\n },\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message, locale) => {\n return getMessagePreviewTime(message.createdAt, locale ?? dateLocale);\n },\n },\n LABELS: {\n PERMISSION_APP_NAME: 'Application',\n PERMISSION_CAMERA: 'camera',\n PERMISSION_DEVICE_STORAGE: 'device storage',\n PERMISSION_MICROPHONE: 'microphone',\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n REPLY_FROM_SENDER_TO_RECEIVER: (reply, parent, currentUserId = UNKNOWN_USER_ID) => {\n const senderNickname = reply.sender.nickname || USER_NO_NAME;\n const receiverNickname = parent.sender.nickname || USER_NO_NAME;\n return `${reply.sender.userId !== currentUserId ? senderNickname : 'You'} replied to ${receiverNickname}`;\n },\n MESSAGE_UNAVAILABLE: 'Message unavailable',\n\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n CHANNEL_MESSAGE_LIST_FROZEN: 'Channel is frozen',\n CHANNEL_MESSAGE_COPY: 'Copy',\n CHANNEL_MESSAGE_EDIT: 'Edit',\n CHANNEL_MESSAGE_SAVE: 'Save',\n CHANNEL_MESSAGE_DELETE: 'Delete',\n CHANNEL_MESSAGE_REPLY: 'Reply',\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n CHANNEL_MESSAGE_FAILED_RETRY: 'Retry',\n CHANNEL_MESSAGE_FAILED_REMOVE: 'Remove',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: 'Take a photo',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: 'Take a video',\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n CHANNEL_INPUT_ATTACHMENT_FILES: 'Files',\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n CHANNEL_INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n CHANNEL_INPUT_PLACEHOLDER_REPLY: 'Reply to message',\n CHANNEL_INPUT_EDIT_OK: 'Save',\n CHANNEL_INPUT_EDIT_CANCEL: 'Cancel',\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user) => `Reply to ${user.nickname || USER_NO_NAME}`,\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message) => {\n if (message.isFileMessage()) {\n const messageType = getMessageType(message);\n switch (messageType) {\n case 'file.image':\n return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';\n case 'file.video':\n return 'Video';\n case 'file.audio':\n return 'Audio';\n case 'file.voice':\n return 'Voice message';\n default:\n return message.name;\n }\n } else if (message.isUserMessage()) {\n return message.message;\n }\n return 'Unknown message';\n },\n VOICE_MESSAGE: 'Voice message',\n VOICE_MESSAGE_INPUT_CANCEL: 'Cancel',\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_MUTED_PARTICIPANTS: 'No muted participants',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} needs permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n USER_MUTED_ERROR: \"You're muted by the operator.\",\n CHANNEL_FROZEN_ERROR: 'Channel is frozen.',\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n UNKNOWN_ERROR: 'Something went wrong.',\n GET_CHANNEL_ERROR: \"Couldn't retrieve channel.\",\n FIND_PARENT_MSG_ERROR: \"Couldn't find the original message for this reply.\",\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_uikitUtils","require","_constants","createBaseStringSet","_ref","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","dateLocale","overrides","USER_NO_NAME","LABELS","CHANNEL_NO_MEMBERS","OPEN_CHANNEL","HEADER_TITLE","channel","getOpenChannelTitle","HEADER_SUBTITLE","getOpenChannelParticipants","LIST_DATE_SEPARATOR","date","locale","getDateSeparatorFormat","MESSAGE_BUBBLE_TIME","message","getMessageTimeFormat","Date","createdAt","MESSAGE_BUBBLE_FILE_TITLE","name","MESSAGE_BUBBLE_EDITED_POSTFIX","MESSAGE_BUBBLE_UNKNOWN_TITLE","MESSAGE_BUBBLE_UNKNOWN_DESC","OPEN_CHANNEL_PARTICIPANTS","OPEN_CHANNEL_SETTINGS","HEADER_RIGHT","INFO_URL","MENU_MODERATION","MENU_PARTICIPANTS","MENU_DELETE_CHANNEL","DIALOG_CHANNEL_DELETE_CONFIRM_TITLE","DIALOG_CHANNEL_DELETE_CONFIRM_OK","DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL","DIALOG_CHANGE_NAME","DIALOG_CHANGE_NAME_PROMPT_TITLE","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","DIALOG_CHANGE_NAME_PROMPT_OK","DIALOG_CHANGE_NAME_PROMPT_CANCEL","DIALOG_CHANGE_IMAGE","DIALOG_CHANGE_IMAGE_MENU_TITLE","DIALOG_CHANGE_IMAGE_MENU_CAMERA","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_LIST","CHANNEL_PREVIEW_TITLE","OPEN_CHANNEL_CREATE","PLACEHOLDER","DIALOG_IMAGE_MENU_REMOVE","DIALOG_IMAGE_MENU_CAMERA","DIALOG_IMAGE_MENU_PHOTO_LIBRARY","OPEN_CHANNEL_MODERATION","MENU_OPERATORS","MENU_MUTED_PARTICIPANTS","MENU_BANNED_USERS","OPEN_CHANNEL_BANNED_USERS","OPEN_CHANNEL_MUTED_PARTICIPANTS","OPEN_CHANNEL_OPERATORS","OPEN_CHANNEL_REGISTER_OPERATOR","_ref2","selectedUsers","len","length","GROUP_CHANNEL","uid","getGroupChannelTitle","LIST_BUTTON_NEW_MSG","newMessages","MENTION_LIMITED","mentionLimit","GROUP_CHANNEL_THREAD","PARENT_MESSAGE_TIME","getThreadParentMessageTimeFormat","REPLY_COUNT","replyCount","maxReplyCount","getReplyCountFormat","GROUP_CHANNEL_SETTINGS","MENU_MEMBERS","MENU_SEARCH","MENU_LEAVE_CHANNEL","MENU_NOTIFICATION","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENU_NOTIFICATION_LABEL_MENTION_ONLY","GROUP_CHANNEL_NOTIFICATIONS","MENU_NOTIFICATIONS","MENU_NOTIFICATIONS_DESC","MENU_NOTIFICATIONS_OPTION_ALL","MENU_NOTIFICATIONS_OPTION_MENTION_ONLY","GROUP_CHANNEL_MODERATION","MENU_MUTED_MEMBERS","MENU_FREEZE_CHANNEL","GROUP_CHANNEL_OPERATORS","GROUP_CHANNEL_REGISTER_OPERATOR","_ref3","GROUP_CHANNEL_MUTED_MEMBERS","GROUP_CHANNEL_BANNED_USERS","GROUP_CHANNEL_LIST","currentUserId","CHANNEL_PREVIEW_TITLE_CAPTION","getGroupChannelPreviewTime","CHANNEL_PREVIEW_BODY","lastMessage","isVoiceMessage","getMessagePreviewBody","TYPE_SELECTOR_HEADER_TITLE","TYPE_SELECTOR_GROUP","TYPE_SELECTOR_SUPER_GROUP","TYPE_SELECTOR_BROADCAST","DIALOG_CHANNEL_TITLE","DIALOG_CHANNEL_NOTIFICATION","myPushTriggerOption","DIALOG_CHANNEL_LEAVE","GROUP_CHANNEL_MEMBERS","GROUP_CHANNEL_CREATE","_ref4","GROUP_CHANNEL_INVITE","_ref5","MESSAGE_SEARCH","HEADER_INPUT_PLACEHOLDER","SEARCH_RESULT_ITEM_TITLE","getMessagePreviewTitle","SEARCH_RESULT_ITEM_BODY","SEARCH_RESULT_ITEM_TITLE_CAPTION","getMessagePreviewTime","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","PERMISSION_MICROPHONE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","arguments","undefined","userNames","map","u","nickname","join","REPLY_FROM_SENDER_TO_RECEIVER","reply","parent","UNKNOWN_USER_ID","replySenderNickname","sender","userId","parentSenderNickname","MESSAGE_UNAVAILABLE","USER_BAR_ME_POSTFIX","USER_BAR_OPERATOR","REGISTER_AS_OPERATOR","UNREGISTER_OPERATOR","MUTE","UNMUTE","BAN","UNBAN","CHANNEL_MESSAGE_LIST_FROZEN","CHANNEL_MESSAGE_COPY","CHANNEL_MESSAGE_EDIT","CHANNEL_MESSAGE_SAVE","CHANNEL_MESSAGE_DELETE","CHANNEL_MESSAGE_REPLY","CHANNEL_MESSAGE_THREAD","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_FAILED_RETRY","CHANNEL_MESSAGE_FAILED_REMOVE","CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO","CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO","CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY","CHANNEL_INPUT_ATTACHMENT_FILES","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD","CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD","CHANNEL_INPUT_EDIT_OK","CHANNEL_INPUT_EDIT_CANCEL","CHANNEL_INPUT_REPLY_PREVIEW_TITLE","user","CHANNEL_INPUT_REPLY_PREVIEW_BODY","isFileMessage","messageType","getMessageType","type","toLowerCase","includes","isUserMessage","VOICE_MESSAGE","VOICE_MESSAGE_INPUT_CANCEL","FILE_VIEWER","TITLE","_message$sender","SUBTITLE","NO_BANNED_USERS","NO_USERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_MUTED_PARTICIPANTS","NO_RESULTS_FOUND","ERROR","MESSAGE","RETRY_LABEL","DIALOG","ALERT_DEFAULT_OK","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","permission","appName","ALERT_PERMISSIONS_OK","PROMPT_DEFAULT_OK","PROMPT_DEFAULT_CANCEL","PROMPT_DEFAULT_PLACEHOLDER","TOAST","COPY_OK","DOWNLOAD_START","DOWNLOAD_OK","DOWNLOAD_ERROR","OPEN_CAMERA_ERROR","OPEN_FILES_ERROR","OPEN_PHOTO_LIBRARY_ERROR","DELETE_MSG_ERROR","RESEND_MSG_ERROR","SEND_MSG_ERROR","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","UNKNOWN_ERROR","GET_CHANNEL_ERROR","FIND_PARENT_MSG_ERROR","THREAD_PARENT_MESSAGE_DELETED_ERROR","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","uploadSizeLimit","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY","exports"],"sources":["createBaseStringSet.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport { PartialDeep, SendbirdMessage, getThreadParentMessageTimeFormat } from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getMessageType,\n getOpenChannelParticipants,\n getOpenChannelTitle,\n getReplyCountFormat,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../constants';\nimport type { StringSet } from './StringSet.type';\n\ntype StringSetCreateOptions = {\n dateLocale: Locale;\n overrides?: PartialDeep<StringSet>;\n};\n\n/**\n * Create string set\n * You can create localized String set, you should provide locale for date and string as a parameters\n *\n * @param {StringSetCreateOptions.dateLocale} dateLocale Date locale (from date-fns)\n * @param {StringSetCreateOptions.overrides} [overrides] Localized strings\n * */\nexport const createBaseStringSet = ({ dateLocale, overrides }: StringSetCreateOptions): StringSet => {\n const USER_NO_NAME = overrides?.LABELS?.USER_NO_NAME ?? '(No name)';\n const CHANNEL_NO_MEMBERS = overrides?.LABELS?.CHANNEL_NO_MEMBERS ?? '(No members)';\n\n return {\n OPEN_CHANNEL: {\n HEADER_TITLE: (channel) => getOpenChannelTitle(channel),\n HEADER_SUBTITLE: (channel) => getOpenChannelParticipants(channel),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n ...overrides?.OPEN_CHANNEL,\n },\n OPEN_CHANNEL_PARTICIPANTS: {\n HEADER_TITLE: 'Participants',\n ...overrides?.OPEN_CHANNEL_PARTICIPANTS,\n },\n OPEN_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n INFO_URL: 'URL',\n MENU_MODERATION: 'Moderation',\n MENU_PARTICIPANTS: 'Participants',\n MENU_DELETE_CHANNEL: 'Delete channel',\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: 'Delete channel?',\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: 'Delete',\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: 'Cancel',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_SETTINGS,\n },\n OPEN_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (channel) => getOpenChannelTitle(channel),\n ...overrides?.OPEN_CHANNEL_LIST,\n },\n OPEN_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: 'Create',\n PLACEHOLDER: 'Enter channel name',\n DIALOG_IMAGE_MENU_REMOVE: 'Remove photo',\n DIALOG_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.OPEN_CHANNEL_CREATE,\n },\n OPEN_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_PARTICIPANTS: 'Muted participants',\n MENU_BANNED_USERS: 'Banned users',\n ...overrides?.OPEN_CHANNEL_MODERATION,\n },\n OPEN_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.OPEN_CHANNEL_BANNED_USERS,\n },\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n HEADER_TITLE: 'Muted participants',\n ...overrides?.OPEN_CHANNEL_MUTED_PARTICIPANTS,\n },\n OPEN_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.OPEN_CHANNEL_OPERATORS,\n },\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.OPEN_CHANNEL_REGISTER_OPERATOR,\n },\n GROUP_CHANNEL: {\n HEADER_TITLE: (uid, channel) => getGroupChannelTitle(uid, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n ...overrides?.GROUP_CHANNEL,\n },\n GROUP_CHANNEL_THREAD: {\n HEADER_TITLE: 'Thread',\n HEADER_SUBTITLE: (uid, channel) => getGroupChannelTitle(uid, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n LIST_DATE_SEPARATOR: (date, locale) => getDateSeparatorFormat(date, locale ?? dateLocale),\n LIST_BUTTON_NEW_MSG: (newMessages) => `${newMessages.length} new messages`,\n\n MESSAGE_BUBBLE_TIME: (message, locale) => getMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n MESSAGE_BUBBLE_FILE_TITLE: (message) => message.name,\n MESSAGE_BUBBLE_EDITED_POSTFIX: ' (edited)',\n MESSAGE_BUBBLE_UNKNOWN_TITLE: () => '(Unknown message type)',\n MESSAGE_BUBBLE_UNKNOWN_DESC: () => 'Cannot read this message.',\n\n PARENT_MESSAGE_TIME: (message: SendbirdMessage, locale?: Locale) =>\n getThreadParentMessageTimeFormat(new Date(message.createdAt), locale ?? dateLocale),\n REPLY_COUNT: (replyCount: number, maxReplyCount?: number) => getReplyCountFormat(replyCount, maxReplyCount),\n\n MENTION_LIMITED: (mentionLimit) => `You can have up to ${mentionLimit} mentions per message.`,\n ...overrides?.GROUP_CHANNEL_THREAD,\n },\n GROUP_CHANNEL_SETTINGS: {\n HEADER_TITLE: 'Channel information',\n HEADER_RIGHT: 'Edit',\n MENU_MODERATION: 'Moderation',\n MENU_MEMBERS: 'Members',\n MENU_SEARCH: 'Search in channel',\n MENU_LEAVE_CHANNEL: 'Leave channel',\n MENU_NOTIFICATION: 'Notifications',\n MENU_NOTIFICATION_LABEL_ON: 'On',\n MENU_NOTIFICATION_LABEL_OFF: 'Off',\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: 'Mentions only',\n DIALOG_CHANGE_NAME: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_TITLE: 'Change channel name',\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: 'Enter name',\n DIALOG_CHANGE_NAME_PROMPT_OK: 'Save',\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: 'Cancel',\n DIALOG_CHANGE_IMAGE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_TITLE: 'Change channel image',\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: 'Take photo',\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: 'Choose photo',\n ...overrides?.GROUP_CHANNEL_SETTINGS,\n },\n GROUP_CHANNEL_NOTIFICATIONS: {\n HEADER_TITLE: 'Notifications',\n MENU_NOTIFICATIONS: 'Notifications',\n MENU_NOTIFICATIONS_DESC:\n 'Turn on push notifications if you wish to be notified when messages are delivered to this channel.',\n MENU_NOTIFICATIONS_OPTION_ALL: 'All new messages',\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: 'Mentions only',\n ...overrides?.GROUP_CHANNEL_NOTIFICATIONS,\n },\n GROUP_CHANNEL_MODERATION: {\n HEADER_TITLE: 'Moderation',\n MENU_OPERATORS: 'Operators',\n MENU_MUTED_MEMBERS: 'Muted members',\n MENU_BANNED_USERS: 'Banned users',\n MENU_FREEZE_CHANNEL: 'Freeze channel',\n ...overrides?.GROUP_CHANNEL_MODERATION,\n },\n GROUP_CHANNEL_OPERATORS: {\n HEADER_TITLE: 'Operators',\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n HEADER_TITLE: 'Set as operators',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Add';\n return `Add (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_OPERATORS,\n },\n GROUP_CHANNEL_MUTED_MEMBERS: {\n HEADER_TITLE: 'Muted members',\n ...overrides?.GROUP_CHANNEL_MUTED_MEMBERS,\n },\n GROUP_CHANNEL_BANNED_USERS: {\n HEADER_TITLE: 'Banned users',\n ...overrides?.GROUP_CHANNEL_BANNED_USERS,\n },\n GROUP_CHANNEL_LIST: {\n HEADER_TITLE: 'Channels',\n CHANNEL_PREVIEW_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel, locale) => getGroupChannelPreviewTime(channel, locale ?? dateLocale),\n CHANNEL_PREVIEW_BODY: (channel) => {\n if (!channel.lastMessage) return '';\n if (isVoiceMessage(channel.lastMessage)) return 'Voice message';\n return getMessagePreviewBody(channel.lastMessage);\n },\n TYPE_SELECTOR_HEADER_TITLE: 'Channel type',\n TYPE_SELECTOR_GROUP: 'Group',\n TYPE_SELECTOR_SUPER_GROUP: 'Super group',\n TYPE_SELECTOR_BROADCAST: 'Broadcast',\n DIALOG_CHANNEL_TITLE: (currentUserId, channel) =>\n getGroupChannelTitle(currentUserId, channel, USER_NO_NAME, CHANNEL_NO_MEMBERS),\n DIALOG_CHANNEL_NOTIFICATION: (channel) => {\n if (!channel) return '';\n if (channel.myPushTriggerOption === 'off') return 'Turn on notifications';\n return 'Turn off notifications';\n },\n DIALOG_CHANNEL_LEAVE: 'Leave channel',\n ...overrides?.GROUP_CHANNEL_LIST,\n },\n GROUP_CHANNEL_MEMBERS: {\n HEADER_TITLE: 'Members',\n ...overrides?.GROUP_CHANNEL_MEMBERS,\n },\n GROUP_CHANNEL_CREATE: {\n HEADER_TITLE: 'New channel',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Create';\n return `Create (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_CREATE,\n },\n GROUP_CHANNEL_INVITE: {\n HEADER_TITLE: 'Invite users',\n HEADER_RIGHT: ({ selectedUsers }) => {\n const len = selectedUsers.length;\n if (len === 0) return 'Invite';\n return `Invite (${len})`;\n },\n ...overrides?.GROUP_CHANNEL_INVITE,\n },\n MESSAGE_SEARCH: {\n HEADER_INPUT_PLACEHOLDER: 'Search',\n HEADER_RIGHT: 'Search',\n SEARCH_RESULT_ITEM_TITLE: (message) => getMessagePreviewTitle(message),\n SEARCH_RESULT_ITEM_BODY: (message) => {\n if (isVoiceMessage(message)) return 'Voice message';\n return getMessagePreviewBody(message);\n },\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message, locale) => {\n return getMessagePreviewTime(message.createdAt, locale ?? dateLocale);\n },\n },\n LABELS: {\n PERMISSION_APP_NAME: 'Application',\n PERMISSION_CAMERA: 'camera',\n PERMISSION_DEVICE_STORAGE: 'device storage',\n PERMISSION_MICROPHONE: 'microphone',\n USER_NO_NAME,\n CHANNEL_NO_MEMBERS,\n TYPING_INDICATOR_TYPINGS: (users, NO_NAME = USER_NO_NAME) => {\n const userNames = users.map((u) => u.nickname || NO_NAME);\n if (userNames.length === 0) return;\n if (userNames.length === 1) return `${userNames[0]} is typing...`;\n if (users.length === 2) return `${userNames.join(' and ')} are typing...`;\n return 'Several people are typing...';\n },\n REPLY_FROM_SENDER_TO_RECEIVER: (reply, parent, currentUserId = UNKNOWN_USER_ID) => {\n const replySenderNickname =\n reply.sender.userId === currentUserId ? 'You' : reply.sender.nickname || USER_NO_NAME;\n const parentSenderNickname =\n parent.sender.userId === currentUserId ? 'You' : parent.sender.nickname || USER_NO_NAME;\n return `${replySenderNickname} replied to ${parentSenderNickname}`;\n },\n MESSAGE_UNAVAILABLE: 'Message unavailable',\n\n USER_BAR_ME_POSTFIX: ' (You)',\n USER_BAR_OPERATOR: 'Operator',\n REGISTER_AS_OPERATOR: 'Register as operator',\n UNREGISTER_OPERATOR: 'Unregister operator',\n MUTE: 'Mute',\n UNMUTE: 'Unmute',\n BAN: 'Ban',\n UNBAN: 'Unban',\n CHANNEL_MESSAGE_LIST_FROZEN: 'Channel is frozen',\n CHANNEL_MESSAGE_COPY: 'Copy',\n CHANNEL_MESSAGE_EDIT: 'Edit',\n CHANNEL_MESSAGE_SAVE: 'Save',\n CHANNEL_MESSAGE_DELETE: 'Delete',\n CHANNEL_MESSAGE_REPLY: 'Reply',\n CHANNEL_MESSAGE_THREAD: 'Reply in thread',\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: 'Delete',\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',\n CHANNEL_MESSAGE_FAILED_RETRY: 'Retry',\n CHANNEL_MESSAGE_FAILED_REMOVE: 'Remove',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: 'Take a photo',\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: 'Take a video',\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: 'Photo library',\n CHANNEL_INPUT_ATTACHMENT_FILES: 'Files',\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: 'Enter message',\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',\n CHANNEL_INPUT_PLACEHOLDER_MUTED: \"You're muted by the operator.\",\n CHANNEL_INPUT_PLACEHOLDER_REPLY: 'Reply to message',\n CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD: 'Reply in thread',\n CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD: 'Reply to thread',\n CHANNEL_INPUT_EDIT_OK: 'Save',\n CHANNEL_INPUT_EDIT_CANCEL: 'Cancel',\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user) => `Reply to ${user.nickname || USER_NO_NAME}`,\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message) => {\n if (message.isFileMessage()) {\n const messageType = getMessageType(message);\n switch (messageType) {\n case 'file.image':\n return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';\n case 'file.video':\n return 'Video';\n case 'file.audio':\n return 'Audio';\n case 'file.voice':\n return 'Voice message';\n default:\n return message.name;\n }\n } else if (message.isUserMessage()) {\n return message.message;\n }\n return 'Unknown message';\n },\n VOICE_MESSAGE: 'Voice message',\n VOICE_MESSAGE_INPUT_CANCEL: 'Cancel',\n ...overrides?.LABELS,\n },\n FILE_VIEWER: {\n TITLE: (message) => message.sender?.nickname || USER_NO_NAME,\n SUBTITLE: (message) => getMessageTimeFormat(new Date(message.createdAt), dateLocale),\n },\n PLACEHOLDER: {\n NO_BANNED_USERS: 'No banned users',\n NO_USERS: 'No users',\n NO_CHANNELS: 'No channels',\n NO_MESSAGES: 'No messages',\n NO_MUTED_MEMBERS: 'No muted members',\n NO_MUTED_PARTICIPANTS: 'No muted participants',\n NO_RESULTS_FOUND: 'No results found',\n ...overrides?.PLACEHOLDER,\n ERROR: {\n MESSAGE: 'Something went wrong',\n RETRY_LABEL: 'Retry',\n ...overrides?.PLACEHOLDER?.ERROR,\n },\n },\n DIALOG: {\n ALERT_DEFAULT_OK: 'OK',\n ALERT_PERMISSIONS_TITLE: 'Allow access?',\n ALERT_PERMISSIONS_MESSAGE: (permission, appName = 'Application') => {\n return `${appName} needs permission to access your ${permission}.`;\n },\n ALERT_PERMISSIONS_OK: 'Go to settings',\n PROMPT_DEFAULT_OK: 'Submit',\n PROMPT_DEFAULT_CANCEL: 'Cancel',\n PROMPT_DEFAULT_PLACEHOLDER: 'Enter',\n ...overrides?.DIALOG,\n },\n TOAST: {\n COPY_OK: 'Copied',\n DOWNLOAD_START: 'Downloading...',\n DOWNLOAD_OK: 'File saved',\n DOWNLOAD_ERROR: \"Couldn't download file.\",\n OPEN_CAMERA_ERROR: \"Couldn't open camera.\",\n OPEN_FILES_ERROR: \"Couldn't open files.\",\n OPEN_PHOTO_LIBRARY_ERROR: \"Couldn't open photo library.\",\n DELETE_MSG_ERROR: \"Couldn't delete message.\",\n RESEND_MSG_ERROR: \"Couldn't send message.\",\n SEND_MSG_ERROR: \"Couldn't send message.\",\n USER_MUTED_ERROR: \"You're muted by the operator.\",\n CHANNEL_FROZEN_ERROR: 'Channel is frozen.',\n UPDATE_MSG_ERROR: \"Couldn't edit message.\",\n TURN_ON_NOTIFICATIONS_ERROR: \"Couldn't turn on notifications.\",\n TURN_OFF_NOTIFICATIONS_ERROR: \"Couldn't turn off notifications.\",\n LEAVE_CHANNEL_ERROR: \"Couldn't leave channel.\",\n UNKNOWN_ERROR: 'Something went wrong.',\n GET_CHANNEL_ERROR: \"Couldn't retrieve channel.\",\n FIND_PARENT_MSG_ERROR: \"Couldn't find the original message for this reply.\",\n THREAD_PARENT_MESSAGE_DELETED_ERROR: \"The thread doesn't exist because the parent message was deleted.\",\n FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR: (uploadSizeLimit: string) => {\n return `The maximum size per file is ${uploadSizeLimit}.`;\n },\n ...overrides?.TOAST,\n },\n PROFILE_CARD: {\n BUTTON_MESSAGE: 'Message',\n BODY_LABEL: 'User ID',\n BODY: (user) => user.userId,\n ...overrides?.PROFILE_CARD,\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_SBUUtils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","createNativeMediaService","_ref","VideoComponent","thumbnailModule","imageResizerModule","_ref2","resizeMode","onLoad","props","createElement","controls","getVideoThumbnail","_ref3","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","hash","split","compressImage","_ref4","uri","maxWidth","maxHeight","compressionRate","originSize","SBUUtils","getImageSize","width","height","getDownscaleSize","extension","getFileExtension","size","resizedSize","compressedURI","createResizedImage","Math","min","max","_default","exports"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: typeof RNCreateThumbnail;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return <VideoComponent
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_SBUUtils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","createNativeMediaService","_ref","VideoComponent","thumbnailModule","imageResizerModule","_ref2","resizeMode","onLoad","props","createElement","controls","getVideoThumbnail","_ref3","url","timeMills","path","createThumbnail","format","timeStamp","cacheName","hash","split","compressImage","_ref4","uri","maxWidth","maxHeight","compressionRate","originSize","SBUUtils","getImageSize","width","height","getDownscaleSize","extension","getFileExtension","size","resizedSize","compressedURI","createResizedImage","Math","min","max","_default","exports"],"sources":["createMediaService.native.tsx"],"sourcesContent":["import type * as RNImageResizer from '@bam.tech/react-native-image-resizer';\nimport React from 'react';\nimport type * as RNCreateThumbnail from 'react-native-create-thumbnail';\nimport type RNVideo from 'react-native-video';\n\nimport { getDownscaleSize, getFileExtension, hash } from '@sendbird/uikit-utils';\n\nimport SBUUtils from '../libs/SBUUtils';\nimport type { MediaServiceInterface } from './types';\n\ntype Modules = {\n VideoComponent: typeof RNVideo;\n thumbnailModule: typeof RNCreateThumbnail;\n imageResizerModule: typeof RNImageResizer;\n};\n\nconst createNativeMediaService = ({\n VideoComponent,\n thumbnailModule,\n imageResizerModule,\n}: Modules): MediaServiceInterface => {\n return {\n VideoComponent({ source, resizeMode, onLoad, ...props }) {\n return (\n <VideoComponent\n {...props}\n source={source as { uri: string }}\n resizeMode={resizeMode}\n onLoad={onLoad}\n controls\n />\n );\n },\n async getVideoThumbnail({ url, timeMills }) {\n try {\n const { path } = await thumbnailModule.createThumbnail({\n url,\n format: 'jpeg',\n timeStamp: timeMills,\n cacheName: hash(url.split('?')[0]),\n });\n return { path };\n } catch {\n return null;\n }\n },\n async compressImage({ uri, maxWidth, maxHeight, compressionRate = 1 }) {\n const originSize = await SBUUtils.getImageSize(uri);\n const { width, height } = getDownscaleSize(originSize, { width: maxWidth, height: maxHeight });\n const extension = (() => {\n return { 'png': 'PNG', 'jpeg': 'JPEG', 'jpg': 'JPEG' }[getFileExtension(uri)] ?? 'JPEG';\n })() as 'PNG' | 'JPEG';\n\n const { size: resizedSize, uri: compressedURI } = await imageResizerModule.default.createResizedImage(\n uri,\n width,\n height,\n extension,\n Math.min(Math.max(0, compressionRate), 1) * 100,\n );\n\n return { uri: compressedURI, size: resizedSize };\n },\n };\n};\n\nexport default createNativeMediaService;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypingIndicatorType","exports"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface
|
|
1
|
+
{"version":3,"names":["TypingIndicatorType","exports"],"sources":["types.ts"],"sourcesContent":["import type { ComponentType, ErrorInfo, ReactNode } from 'react';\nimport type { MMKV } from 'react-native-mmkv';\n\nimport type { SendbirdUser } from '@sendbird/uikit-utils';\n\nexport type LocalCacheStorage = AsyncLocalCacheStorage | MMKVLocalCacheStorage;\n\nexport type KeyValuePairGet = [string, string | null];\nexport type KeyValuePairSet = [string, string];\nexport interface AsyncLocalCacheStorage {\n getAllKeys(): Promise<readonly string[] | string[]>;\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n\n multiSet?(keyValuePairs: Array<KeyValuePairSet>): Promise<void>;\n multiGet?(keys: string[]): Promise<readonly KeyValuePairGet[] | KeyValuePairGet[]>;\n multiRemove?(keys: string[]): Promise<void>;\n}\n\nexport type MMKVLocalCacheStorage = Pick<MMKV, 'getString' | 'set' | 'delete' | 'getAllKeys'>;\n\nexport type ErrorBoundaryProps = { error: Error; errorInfo: ErrorInfo; reset: () => void };\n\nexport type CommonComponent<P = {}> = ComponentType<P & { children?: ReactNode | undefined }>;\n\nexport type MentionedUser = {\n range: Range;\n user: SendbirdUser;\n};\n\nexport type Range = {\n start: number;\n end: number;\n};\n\nexport enum TypingIndicatorType {\n Text = 'text',\n Bubble = 'bubble',\n}\n"],"mappings":";;;;;;IAoCYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAAC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA"}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.
|
|
1
|
+
{"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.7.0';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,OAAO;AAAC,IAAAC,QAAA,GACTD,OAAO;AAAAE,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -24,7 +24,8 @@ const SendInput = /*#__PURE__*/forwardRef(function SendInput(_ref, ref) {
|
|
|
24
24
|
inputMuted,
|
|
25
25
|
channel,
|
|
26
26
|
messageToReply,
|
|
27
|
-
setMessageToReply
|
|
27
|
+
setMessageToReply,
|
|
28
|
+
messageForThread
|
|
28
29
|
} = _ref;
|
|
29
30
|
const {
|
|
30
31
|
playerService,
|
|
@@ -51,11 +52,20 @@ const SendInput = /*#__PURE__*/forwardRef(function SendInput(_ref, ref) {
|
|
|
51
52
|
const {
|
|
52
53
|
groupChannel
|
|
53
54
|
} = sbOptions.uikit;
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
if (channel.isGroupChannel()) {
|
|
56
|
+
if (groupChannel.channel.replyType === 'quote_reply' && messageToReply) {
|
|
57
|
+
return {
|
|
58
|
+
parentMessageId: messageToReply.messageId,
|
|
59
|
+
isReplyToChannel: true
|
|
60
|
+
};
|
|
61
|
+
} else if (groupChannel.channel.replyType === 'thread' && messageForThread) {
|
|
62
|
+
return {
|
|
63
|
+
parentMessageId: messageForThread.messageId,
|
|
64
|
+
isReplyToChannel: true
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return {};
|
|
59
69
|
});
|
|
60
70
|
const messageMentionParams = useIIFE(() => {
|
|
61
71
|
const {
|
|
@@ -117,6 +127,13 @@ const SendInput = /*#__PURE__*/forwardRef(function SendInput(_ref, ref) {
|
|
|
117
127
|
if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;
|
|
118
128
|
if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;
|
|
119
129
|
if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;
|
|
130
|
+
if (messageForThread) {
|
|
131
|
+
if (messageForThread.threadInfo && messageForThread.threadInfo.replyCount > 0) {
|
|
132
|
+
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD;
|
|
133
|
+
} else {
|
|
134
|
+
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
120
137
|
return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;
|
|
121
138
|
};
|
|
122
139
|
const voiceMessageEnabled = channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableVoiceMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","TouchableOpacity","View","MentionType","MessageMetaArray","Icon","Modal","TextInput","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","useDeferredModalState","useIIFE","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY","useChannelInputItems","useLocalization","usePlatformService","useSendbirdChat","SBUUtils","SendInput","_ref","ref","style","VoiceMessageInput","MessageToReplyPreview","AttachmentsButton","onPressSendUserMessage","onPressSendFileMessage","text","onChangeText","onSelectionChange","mentionedUsers","inputDisabled","inputFrozen","inputMuted","channel","messageToReply","setMessageToReply","playerService","recorderService","mentionManager","sbOptions","STRINGS","openSheet","toast","onClose","onDismiss","visible","voiceMessageInputVisible","setVisible","setVoiceMessageInputVisible","messageReplyParams","groupChannel","uikit","isGroupChannel","replyType","parentMessageId","messageId","isReplyToChannel","messageMentionParams","enableMention","mentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","onFailureToSend","error","show","TOAST","SEND_MSG_ERROR","sendUserMessage","message","catch","sendFileMessage","file","sendVoiceMessage","durationMills","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","metaArrays","key","value","String","options","extension","sheetItems","getPlaceholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","voiceMessageEnabled","enableVoiceMessage","sendButtonVisible","Boolean","trim","createElement","styles","sendInputContainer","onPress","disabled","multiline","disableFullscreenUI","editable","placeholder","textToMentionedComponents","VoiceMessageButton","UserMessageSendButton","disableBackgroundClose","Promise","allSettled","reset","backgroundStyle","justifyContent","type","onSend","_ref2","duration","_ref3","alert","colors","onPressWithPermissionCheck","recorderGranted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","ALERT_PERMISSIONS_OK","openSettings","playerGranted","PERMISSION_DEVICE_STORAGE","color","ui","input","default","highlight","active","icon","size","containerStyle","sendIcon","_ref4","paddingVertical","paddingHorizontal","alignItems","flexDirection","marginLeft","padding"],"sources":["SendInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport { MentionType, MessageMetaArray } from '@sendbird/chat/message';\nimport {\n Icon,\n Modal,\n TextInput,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { Logger, useDeferredModalState, useIIFE } from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY, VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY } from '../../constants';\nimport { useChannelInputItems } from '../../hooks/useChannelInputItems';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport type { FileType } from '../../platform/types';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface SendInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n mentionedUsers: MentionedUser[];\n}\n\nconst SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(\n {\n style,\n VoiceMessageInput,\n MessageToReplyPreview,\n AttachmentsButton,\n onPressSendUserMessage,\n onPressSendFileMessage,\n text,\n onChangeText,\n onSelectionChange,\n mentionedUsers,\n inputDisabled,\n inputFrozen,\n inputMuted,\n channel,\n messageToReply,\n setMessageToReply,\n },\n ref,\n) {\n const { playerService, recorderService } = usePlatformService();\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const toast = useToast();\n\n const {\n onClose,\n onDismiss,\n visible: voiceMessageInputVisible,\n setVisible: setVoiceMessageInputVisible,\n } = useDeferredModalState();\n\n const messageReplyParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || groupChannel.channel.replyType === 'none' || !messageToReply) return {};\n return {\n parentMessageId: messageToReply.messageId,\n isReplyToChannel: true,\n };\n });\n\n const messageMentionParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || !groupChannel.channel.enableMention) return {};\n return {\n mentionType: MentionType.USERS,\n mentionedUserIds: mentionedUsers.map((it) => it.user.userId),\n mentionedMessageTemplate: mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n groupChannel.channel.enableMention,\n ),\n };\n });\n\n const onFailureToSend = (error: Error) => {\n toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.SEND_MSG_ERROR, error);\n };\n\n const sendUserMessage = () => {\n onPressSendUserMessage({\n message: text,\n ...messageMentionParams,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sendFileMessage = (file: FileType) => {\n onPressSendFileMessage({\n file,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n setMessageToReply?.();\n };\n\n const sendVoiceMessage = (file: FileType, durationMills: number) => {\n if (inputMuted) {\n toast.show(STRINGS.TOAST.USER_MUTED_ERROR, 'error');\n Logger.error(STRINGS.TOAST.USER_MUTED_ERROR);\n } else if (inputFrozen) {\n toast.show(STRINGS.TOAST.CHANNEL_FROZEN_ERROR, 'error');\n Logger.error(STRINGS.TOAST.CHANNEL_FROZEN_ERROR);\n } else {\n onPressSendFileMessage({\n file,\n metaArrays: [\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_DURATION_KEY,\n value: [String(durationMills)],\n }),\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY,\n value: [`voice/${recorderService.options.extension}`],\n }),\n ],\n ...messageReplyParams,\n }).catch(onFailureToSend);\n }\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sheetItems = useChannelInputItems(channel, sendFileMessage);\n\n const getPlaceholder = () => {\n if (inputMuted) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_MUTED;\n if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;\n\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;\n };\n\n const voiceMessageEnabled = channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableVoiceMessage;\n const sendButtonVisible = Boolean(text.trim());\n\n return (\n <View>\n {MessageToReplyPreview && (\n <MessageToReplyPreview messageToReply={messageToReply} setMessageToReply={setMessageToReply} />\n )}\n <View style={styles.sendInputContainer}>\n {AttachmentsButton && <AttachmentsButton onPress={() => openSheet({ sheetItems })} disabled={inputDisabled} />}\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n onSelectionChange={onSelectionChange}\n editable={!inputDisabled}\n onChangeText={onChangeText}\n style={style}\n placeholder={getPlaceholder()}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n\n {voiceMessageEnabled && (\n <VoiceMessageButton\n visible={!sendButtonVisible}\n disabled={inputDisabled}\n onPress={() => setVoiceMessageInputVisible(true)}\n />\n )}\n <UserMessageSendButton visible={sendButtonVisible} disabled={inputDisabled} onPress={sendUserMessage} />\n {voiceMessageEnabled && VoiceMessageInput && (\n <Modal\n disableBackgroundClose\n onClose={onClose}\n onDismiss={() => {\n onDismiss();\n Promise.allSettled([playerService.reset(), recorderService.reset()]);\n }}\n backgroundStyle={{ justifyContent: 'flex-end' }}\n visible={voiceMessageInputVisible}\n type={'slide-no-gesture'}\n >\n <VoiceMessageInput onClose={onClose} onSend={({ file, duration }) => sendVoiceMessage(file, duration)} />\n </Modal>\n )}\n </View>\n </View>\n );\n});\n\ntype InputButtonProps = { visible: boolean; disabled: boolean; onPress: () => void };\nconst VoiceMessageButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { STRINGS } = useLocalization();\n const { alert } = useAlert();\n const { playerService, recorderService } = usePlatformService();\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n\n const onPressWithPermissionCheck = async () => {\n const recorderGranted = await recorderService.requestPermission();\n if (!recorderGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n const playerGranted = await playerService.requestPermission();\n if (!playerGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n onPress();\n };\n\n return (\n <TouchableOpacity onPress={onPressWithPermissionCheck} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'audio-on'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\nconst UserMessageSendButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n return (\n <TouchableOpacity onPress={onPress} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n sendIcon: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","TouchableOpacity","View","MentionType","MessageMetaArray","Icon","Modal","TextInput","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","useDeferredModalState","useIIFE","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY","useChannelInputItems","useLocalization","usePlatformService","useSendbirdChat","SBUUtils","SendInput","_ref","ref","style","VoiceMessageInput","MessageToReplyPreview","AttachmentsButton","onPressSendUserMessage","onPressSendFileMessage","text","onChangeText","onSelectionChange","mentionedUsers","inputDisabled","inputFrozen","inputMuted","channel","messageToReply","setMessageToReply","messageForThread","playerService","recorderService","mentionManager","sbOptions","STRINGS","openSheet","toast","onClose","onDismiss","visible","voiceMessageInputVisible","setVisible","setVoiceMessageInputVisible","messageReplyParams","groupChannel","uikit","isGroupChannel","replyType","parentMessageId","messageId","isReplyToChannel","messageMentionParams","enableMention","mentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","onFailureToSend","error","show","TOAST","SEND_MSG_ERROR","sendUserMessage","message","catch","sendFileMessage","file","sendVoiceMessage","durationMills","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","metaArrays","key","value","String","options","extension","sheetItems","getPlaceholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_REPLY","threadInfo","replyCount","CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD","CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","voiceMessageEnabled","enableVoiceMessage","sendButtonVisible","Boolean","trim","createElement","styles","sendInputContainer","onPress","disabled","multiline","disableFullscreenUI","editable","placeholder","textToMentionedComponents","VoiceMessageButton","UserMessageSendButton","disableBackgroundClose","Promise","allSettled","reset","backgroundStyle","justifyContent","type","onSend","_ref2","duration","_ref3","alert","colors","onPressWithPermissionCheck","recorderGranted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","ALERT_PERMISSIONS_OK","openSettings","playerGranted","PERMISSION_DEVICE_STORAGE","color","ui","input","default","highlight","active","icon","size","containerStyle","sendIcon","_ref4","paddingVertical","paddingHorizontal","alignItems","flexDirection","marginLeft","padding"],"sources":["SendInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport { MentionType, MessageMetaArray } from '@sendbird/chat/message';\nimport {\n Icon,\n Modal,\n TextInput,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { Logger, useDeferredModalState, useIIFE } from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY, VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY } from '../../constants';\nimport { useChannelInputItems } from '../../hooks/useChannelInputItems';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport type { FileType } from '../../platform/types';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface SendInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n mentionedUsers: MentionedUser[];\n}\n\nconst SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(\n {\n style,\n VoiceMessageInput,\n MessageToReplyPreview,\n AttachmentsButton,\n onPressSendUserMessage,\n onPressSendFileMessage,\n text,\n onChangeText,\n onSelectionChange,\n mentionedUsers,\n inputDisabled,\n inputFrozen,\n inputMuted,\n channel,\n messageToReply,\n setMessageToReply,\n messageForThread,\n },\n ref,\n) {\n const { playerService, recorderService } = usePlatformService();\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const toast = useToast();\n\n const {\n onClose,\n onDismiss,\n visible: voiceMessageInputVisible,\n setVisible: setVoiceMessageInputVisible,\n } = useDeferredModalState();\n\n const messageReplyParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n\n if (channel.isGroupChannel()) {\n if (groupChannel.channel.replyType === 'quote_reply' && messageToReply) {\n return {\n parentMessageId: messageToReply.messageId,\n isReplyToChannel: true,\n };\n } else if (groupChannel.channel.replyType === 'thread' && messageForThread) {\n return {\n parentMessageId: messageForThread.messageId,\n isReplyToChannel: true,\n };\n }\n }\n\n return {};\n });\n\n const messageMentionParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || !groupChannel.channel.enableMention) return {};\n return {\n mentionType: MentionType.USERS,\n mentionedUserIds: mentionedUsers.map((it) => it.user.userId),\n mentionedMessageTemplate: mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n groupChannel.channel.enableMention,\n ),\n };\n });\n\n const onFailureToSend = (error: Error) => {\n toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.SEND_MSG_ERROR, error);\n };\n\n const sendUserMessage = () => {\n onPressSendUserMessage({\n message: text,\n ...messageMentionParams,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sendFileMessage = (file: FileType) => {\n onPressSendFileMessage({\n file,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n setMessageToReply?.();\n };\n\n const sendVoiceMessage = (file: FileType, durationMills: number) => {\n if (inputMuted) {\n toast.show(STRINGS.TOAST.USER_MUTED_ERROR, 'error');\n Logger.error(STRINGS.TOAST.USER_MUTED_ERROR);\n } else if (inputFrozen) {\n toast.show(STRINGS.TOAST.CHANNEL_FROZEN_ERROR, 'error');\n Logger.error(STRINGS.TOAST.CHANNEL_FROZEN_ERROR);\n } else {\n onPressSendFileMessage({\n file,\n metaArrays: [\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_DURATION_KEY,\n value: [String(durationMills)],\n }),\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY,\n value: [`voice/${recorderService.options.extension}`],\n }),\n ],\n ...messageReplyParams,\n }).catch(onFailureToSend);\n }\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sheetItems = useChannelInputItems(channel, sendFileMessage);\n\n const getPlaceholder = () => {\n if (inputMuted) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_MUTED;\n if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;\n if (messageForThread) {\n if (messageForThread.threadInfo && messageForThread.threadInfo.replyCount > 0) {\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_TO_THREAD;\n } else {\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY_IN_THREAD;\n }\n }\n\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;\n };\n\n const voiceMessageEnabled = channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableVoiceMessage;\n const sendButtonVisible = Boolean(text.trim());\n\n return (\n <View>\n {MessageToReplyPreview && (\n <MessageToReplyPreview messageToReply={messageToReply} setMessageToReply={setMessageToReply} />\n )}\n <View style={styles.sendInputContainer}>\n {AttachmentsButton && <AttachmentsButton onPress={() => openSheet({ sheetItems })} disabled={inputDisabled} />}\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n onSelectionChange={onSelectionChange}\n editable={!inputDisabled}\n onChangeText={onChangeText}\n style={style}\n placeholder={getPlaceholder()}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n\n {voiceMessageEnabled && (\n <VoiceMessageButton\n visible={!sendButtonVisible}\n disabled={inputDisabled}\n onPress={() => setVoiceMessageInputVisible(true)}\n />\n )}\n <UserMessageSendButton visible={sendButtonVisible} disabled={inputDisabled} onPress={sendUserMessage} />\n {voiceMessageEnabled && VoiceMessageInput && (\n <Modal\n disableBackgroundClose\n onClose={onClose}\n onDismiss={() => {\n onDismiss();\n Promise.allSettled([playerService.reset(), recorderService.reset()]);\n }}\n backgroundStyle={{ justifyContent: 'flex-end' }}\n visible={voiceMessageInputVisible}\n type={'slide-no-gesture'}\n >\n <VoiceMessageInput onClose={onClose} onSend={({ file, duration }) => sendVoiceMessage(file, duration)} />\n </Modal>\n )}\n </View>\n </View>\n );\n});\n\ntype InputButtonProps = { visible: boolean; disabled: boolean; onPress: () => void };\nconst VoiceMessageButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { STRINGS } = useLocalization();\n const { alert } = useAlert();\n const { playerService, recorderService } = usePlatformService();\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n\n const onPressWithPermissionCheck = async () => {\n const recorderGranted = await recorderService.requestPermission();\n if (!recorderGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n const playerGranted = await playerService.requestPermission();\n if (!playerGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n onPress();\n };\n\n return (\n <TouchableOpacity onPress={onPressWithPermissionCheck} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'audio-on'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\nconst UserMessageSendButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n return (\n <TouchableOpacity onPress={onPress} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n sendIcon: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","useSafeAreaInsets","createStyleSheet","useUIKitTheme","replace","useIIFE","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","GET_INPUT_KEY","shouldReset","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","top","left","right","bottom","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","length","inputHeight","setInputHeight","styles","inputDefault","height","fontStyle","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","shouldRenderInput","createElement","SafeAreaBottom","Fragment","keyboardVerticalOffset","behavior","paddingLeft","paddingRight","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","bottomInset","endTyping","startTyping","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","_ref","justifyContent","width","flex","marginRight","borderRadius","paddingTop","paddingBottom","minHeight","maxHeight","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\nconst GET_INPUT_KEY = (shouldReset: boolean) => (shouldReset ? 'uikit-input-clear' : 'uikit-input');\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const { top, left, right, bottom } = useSafeAreaInsets();\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={bottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={top}\n bottomInset={bottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel()) {\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n }\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginRight: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","useSafeAreaInsets","createStyleSheet","useUIKitTheme","replace","useIIFE","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","GET_INPUT_KEY","shouldReset","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","top","left","right","bottom","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","length","inputHeight","setInputHeight","styles","inputDefault","height","fontStyle","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","shouldRenderInput","createElement","SafeAreaBottom","Fragment","keyboardVerticalOffset","behavior","paddingLeft","paddingRight","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","bottomInset","endTyping","startTyping","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","_ref","justifyContent","width","flex","marginRight","borderRadius","paddingTop","paddingBottom","minHeight","maxHeight","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\nconst GET_INPUT_KEY = (shouldReset: boolean) => (shouldReset ? 'uikit-input-clear' : 'uikit-input');\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const { top, left, right, bottom } = useSafeAreaInsets();\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={bottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={top}\n bottomInset={bottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel()) {\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n }\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginRight: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const ChannelMessageList = (_ref, ref) => {
|
|
|
15
15
|
channel,
|
|
16
16
|
onEditMessage,
|
|
17
17
|
onReplyMessage,
|
|
18
|
+
onReplyInThreadMessage,
|
|
18
19
|
onDeleteMessage,
|
|
19
20
|
onResendFailedMessage,
|
|
20
21
|
onPressMediaMessage,
|
|
@@ -52,6 +53,7 @@ const ChannelMessageList = (_ref, ref) => {
|
|
|
52
53
|
currentUserId,
|
|
53
54
|
onEditMessage,
|
|
54
55
|
onReplyMessage,
|
|
56
|
+
onReplyInThreadMessage,
|
|
55
57
|
onDeleteMessage,
|
|
56
58
|
onResendFailedMessage,
|
|
57
59
|
onPressMediaMessage
|
|
@@ -79,6 +81,7 @@ const ChannelMessageList = (_ref, ref) => {
|
|
|
79
81
|
onPress,
|
|
80
82
|
onLongPress,
|
|
81
83
|
onPressParentMessage,
|
|
84
|
+
onReplyInThreadMessage,
|
|
82
85
|
onShowUserProfile: show,
|
|
83
86
|
enableMessageGrouping,
|
|
84
87
|
channel,
|
|
@@ -127,6 +130,7 @@ const useCreateMessagePressActions = _ref3 => {
|
|
|
127
130
|
onResendFailedMessage,
|
|
128
131
|
onEditMessage,
|
|
129
132
|
onReplyMessage,
|
|
133
|
+
onReplyInThreadMessage,
|
|
130
134
|
onDeleteMessage,
|
|
131
135
|
onPressMediaMessage
|
|
132
136
|
} = _ref3;
|
|
@@ -247,6 +251,12 @@ const useCreateMessagePressActions = _ref3 => {
|
|
|
247
251
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_REPLY,
|
|
248
252
|
onPress: () => onReplyMessage === null || onReplyMessage === void 0 ? void 0 : onReplyMessage(message)
|
|
249
253
|
}),
|
|
254
|
+
replyInThread: message => ({
|
|
255
|
+
disabled: Boolean(message.parentMessageId),
|
|
256
|
+
icon: 'thread',
|
|
257
|
+
title: STRINGS.LABELS.CHANNEL_MESSAGE_THREAD,
|
|
258
|
+
onPress: () => onReplyInThreadMessage === null || onReplyInThreadMessage === void 0 ? void 0 : onReplyInThreadMessage(message)
|
|
259
|
+
}),
|
|
250
260
|
download: message => ({
|
|
251
261
|
icon: 'download',
|
|
252
262
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,
|
|
@@ -260,8 +270,12 @@ const useCreateMessagePressActions = _ref3 => {
|
|
|
260
270
|
sheetItems.push(menu.edit(message));
|
|
261
271
|
sheetItems.push(menu.delete(message));
|
|
262
272
|
}
|
|
263
|
-
if (channel.isGroupChannel()
|
|
264
|
-
|
|
273
|
+
if (channel.isGroupChannel()) {
|
|
274
|
+
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
275
|
+
sheetItems.push(menu.replyInThread(message));
|
|
276
|
+
} else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {
|
|
277
|
+
sheetItems.push(menu.reply(message));
|
|
278
|
+
}
|
|
265
279
|
}
|
|
266
280
|
}
|
|
267
281
|
}
|
|
@@ -273,8 +287,12 @@ const useCreateMessagePressActions = _ref3 => {
|
|
|
273
287
|
if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {
|
|
274
288
|
sheetItems.push(menu.delete(message));
|
|
275
289
|
}
|
|
276
|
-
if (channel.isGroupChannel()
|
|
277
|
-
|
|
290
|
+
if (channel.isGroupChannel()) {
|
|
291
|
+
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
292
|
+
sheetItems.push(menu.replyInThread(message));
|
|
293
|
+
} else if (sbOptions.uikit.groupChannel.channel.replyType === 'quote_reply') {
|
|
294
|
+
sheetItems.push(menu.reply(message));
|
|
295
|
+
}
|
|
278
296
|
}
|
|
279
297
|
}
|
|
280
298
|
}
|