@sendbird/uikit-react-native 3.9.6 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChannelInput/index.js +13 -2
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +57 -9
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js +53 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +5 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/UnreadMessagesFloating.js +77 -0
- package/lib/commonjs/components/UnreadMessagesFloating.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +156 -7
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +57 -3
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +16 -2
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js +13 -2
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +57 -9
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js +46 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +5 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/UnreadMessagesFloating.js +70 -0
- package/lib/module/components/UnreadMessagesFloating.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +158 -9
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +59 -5
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +16 -2
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +8 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.d.ts +6 -0
- package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +1 -0
- package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -0
- package/lib/typescript/src/components/UnreadMessagesFloating.d.ts +8 -0
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +6 -1
- package/lib/typescript/src/domain/groupChannel/types.d.ts +13 -1
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/hooks/useChannelInputItems.d.ts +1 -1
- package/lib/typescript/src/localization/StringSet.type.d.ts +3 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +8 -7
- package/src/components/ChannelInput/index.tsx +17 -6
- package/src/components/ChannelMessageList/index.tsx +71 -5
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageNewLine.tsx +45 -0
- package/src/components/GroupChannelMessageRenderer/index.tsx +5 -0
- package/src/components/UnreadMessagesFloating.tsx +60 -0
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +204 -5
- package/src/domain/groupChannel/types.ts +15 -0
- package/src/fragments/createGroupChannelFragment.tsx +67 -4
- package/src/localization/StringSet.type.ts +3 -0
- package/src/localization/createBaseStringSet.ts +16 -4
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uikitUtils","require","_constants","createBaseStringSet","dateLocale","overrides","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","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","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","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","GROUP_CHANNEL_INVITE","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","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","REACTION","MORE_USERS","userCountDifference","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 REACTION: {\n MORE_USERS: (userCountDifference) => `And ${userCountDifference} others`,\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_uikitUtils","require","_constants","createBaseStringSet","dateLocale","overrides","_overrides$LABELS","_overrides$LABELS2","_overrides$PLACEHOLDE","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","selectedUsers","len","length","GROUP_CHANNEL","uid","getGroupChannelTitle","LIST_BUTTON_NEW_MSG","newMessages","count","displayCount","LIST_FLOATING_UNREAD_MSG","unreadMessageCount","LIST_NEW_LINE","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","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","GROUP_CHANNEL_INVITE","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","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_MARK_AS_UNREAD","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","REACTION","MORE_USERS","userCountDifference","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) => {\n const count = newMessages.length;\n const displayCount = count >= 100 ? '99+' : count;\n return count === 1 ? `${displayCount} new message` : `${displayCount} new messages`;\n },\n LIST_FLOATING_UNREAD_MSG: (unreadMessageCount) => {\n const displayCount = unreadMessageCount >= 100 ? '99+' : unreadMessageCount;\n return unreadMessageCount === 1 ? `${displayCount} unread message` : `${displayCount} unread messages`;\n },\n LIST_NEW_LINE: 'New messages',\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) => {\n const count = newMessages.length;\n const displayCount = count >= 100 ? '99+' : count;\n return count === 1 ? `${displayCount} new message` : `${displayCount} 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_MARK_AS_UNREAD: 'Mark as unread',\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 REACTION: {\n MORE_USERS: (userCountDifference) => `And ${userCountDifference} others`,\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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","ignoreList":[]}
|
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.10.1';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,QAAQ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACVH,OAAO","ignoreList":[]}
|
|
@@ -15,8 +15,10 @@ const AUTO_FOCUS = Platform.select({
|
|
|
15
15
|
android: true,
|
|
16
16
|
default: false
|
|
17
17
|
});
|
|
18
|
+
const isAndroidApi35 = Platform.OS === 'android' && Platform.Version >= 35;
|
|
18
19
|
const KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({
|
|
19
20
|
ios: 'padding',
|
|
21
|
+
android: isAndroidApi35 ? 'padding' : undefined,
|
|
20
22
|
default: undefined
|
|
21
23
|
});
|
|
22
24
|
|
|
@@ -36,6 +38,15 @@ const ChannelInput = props => {
|
|
|
36
38
|
setMessageToEdit
|
|
37
39
|
} = props;
|
|
38
40
|
const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);
|
|
41
|
+
|
|
42
|
+
// Android API 35+ keyboard avoidance handling
|
|
43
|
+
/**
|
|
44
|
+
* Android API 35+ introduced edge-to-edge layouts, which changed how keyboard avoidance should be handled.
|
|
45
|
+
* For API 35+, the system manages insets automatically, so we use the provided keyboardAvoidOffset directly.
|
|
46
|
+
* For older Android versions, we manually subtract the safe area bottom padding to avoid overlapping with system UI.
|
|
47
|
+
* See: https://developer.android.com/develop/ui/views/layout/edge-to-edge
|
|
48
|
+
*/
|
|
49
|
+
const keyboardVerticalOffset = isAndroidApi35 ? keyboardAvoidOffset : -safeArea.paddingBottom + keyboardAvoidOffset;
|
|
39
50
|
const {
|
|
40
51
|
colors,
|
|
41
52
|
typography
|
|
@@ -91,7 +102,7 @@ const ChannelInput = props => {
|
|
|
91
102
|
});
|
|
92
103
|
}
|
|
93
104
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
|
|
94
|
-
keyboardVerticalOffset:
|
|
105
|
+
keyboardVerticalOffset: keyboardVerticalOffset,
|
|
95
106
|
behavior: KEYBOARD_AVOID_VIEW_BEHAVIOR
|
|
96
107
|
}, /*#__PURE__*/React.createElement(View, {
|
|
97
108
|
style: {
|
|
@@ -124,7 +135,7 @@ const ChannelInput = props => {
|
|
|
124
135
|
messageToEdit: messageToEdit,
|
|
125
136
|
setMessageToEdit: setMessageToEdit,
|
|
126
137
|
style: textInputStyle
|
|
127
|
-
}))), /*#__PURE__*/React.createElement(SafeAreaBottom, {
|
|
138
|
+
}))), !isAndroidApi35 && /*#__PURE__*/React.createElement(SafeAreaBottom, {
|
|
128
139
|
height: safeArea.paddingBottom
|
|
129
140
|
}))), mentionAvailable && props.SuggestedMentionList && /*#__PURE__*/React.createElement(props.SuggestedMentionList, {
|
|
130
141
|
text: text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","createStyleSheet","useUIKitTheme","Logger","replace","useIIFE","useSafeAreaPadding","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","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","length","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","keyboardVerticalOffset","behavior","paddingStart","paddingEnd","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","triggerTyping","action","endTyping","startTyping","catch","error","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","justifyContent","width","flex","marginEnd","borderRadius","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';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\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 * Whether to show user id information on each item.\n * */\n showUserId?: boolean;\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.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\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 = 'input'; //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={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\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={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [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 marginEnd: 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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","createStyleSheet","useUIKitTheme","Logger","replace","useIIFE","useSafeAreaPadding","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","isAndroidApi35","OS","Version","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","keyboardVerticalOffset","paddingBottom","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","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","length","shouldRenderInput","createElement","SafeAreaBottom","Fragment","behavior","paddingStart","paddingEnd","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","triggerTyping","action","endTyping","startTyping","catch","error","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","justifyContent","width","flex","marginEnd","borderRadius","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';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\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 * Whether to show user id information on each item.\n * */\n showUserId?: boolean;\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 isAndroidApi35 = Platform.OS === 'android' && Platform.Version >= 35;\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({\n ios: 'padding' as const,\n android: isAndroidApi35 ? ('padding' as const) : undefined,\n default: undefined,\n});\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.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n\n // Android API 35+ keyboard avoidance handling\n /**\n * Android API 35+ introduced edge-to-edge layouts, which changed how keyboard avoidance should be handled.\n * For API 35+, the system manages insets automatically, so we use the provided keyboardAvoidOffset directly.\n * For older Android versions, we manually subtract the safe area bottom padding to avoid overlapping with system UI.\n * See: https://developer.android.com/develop/ui/views/layout/edge-to-edge\n */\n const keyboardVerticalOffset = isAndroidApi35 ? keyboardAvoidOffset : -safeArea.paddingBottom + keyboardAvoidOffset;\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 = 'input'; //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={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView keyboardVerticalOffset={keyboardVerticalOffset} behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}>\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\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 {!isAndroidApi35 && <SafeAreaBottom height={safeArea.paddingBottom} />}\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [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 marginEnd: 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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","ignoreList":[]}
|
|
@@ -18,12 +18,15 @@ const ChannelMessageList = ({
|
|
|
18
18
|
onResendFailedMessage,
|
|
19
19
|
onPressMediaMessage,
|
|
20
20
|
onPressParentMessage,
|
|
21
|
+
onPressMarkAsUnreadMessage,
|
|
21
22
|
currentUserId,
|
|
23
|
+
renderUnreadMessagesFloating,
|
|
22
24
|
renderNewMessagesButton,
|
|
23
25
|
renderScrollToBottomButton,
|
|
24
26
|
renderMessage,
|
|
25
27
|
messages,
|
|
26
28
|
newMessages,
|
|
29
|
+
unreadFirstMessage,
|
|
27
30
|
enableMessageGrouping,
|
|
28
31
|
onScrolledAwayFromBottom,
|
|
29
32
|
scrolledAwayFromBottom,
|
|
@@ -31,8 +34,10 @@ const ChannelMessageList = ({
|
|
|
31
34
|
onTopReached,
|
|
32
35
|
flatListComponent,
|
|
33
36
|
flatListProps,
|
|
37
|
+
onViewableItemsChanged,
|
|
34
38
|
onPressNewMessagesButton,
|
|
35
|
-
onPressScrollToBottomButton
|
|
39
|
+
onPressScrollToBottomButton,
|
|
40
|
+
unreadMessagesFloatingProps
|
|
36
41
|
}, ref) => {
|
|
37
42
|
const {
|
|
38
43
|
STRINGS
|
|
@@ -52,7 +57,8 @@ const ChannelMessageList = ({
|
|
|
52
57
|
onReplyInThreadMessage,
|
|
53
58
|
onDeleteMessage,
|
|
54
59
|
onResendFailedMessage,
|
|
55
|
-
onPressMediaMessage
|
|
60
|
+
onPressMediaMessage,
|
|
61
|
+
onPressMarkAsUnreadMessage
|
|
56
62
|
});
|
|
57
63
|
const renderItem = useFreshCallback(({
|
|
58
64
|
item,
|
|
@@ -69,6 +75,7 @@ const ChannelMessageList = ({
|
|
|
69
75
|
message: item,
|
|
70
76
|
prevMessage: messages[index + 1],
|
|
71
77
|
nextMessage: messages[index - 1],
|
|
78
|
+
isFirstUnreadMessage: (unreadFirstMessage === null || unreadFirstMessage === void 0 ? void 0 : unreadFirstMessage.messageId) === item.messageId,
|
|
72
79
|
onPress,
|
|
73
80
|
onLongPress,
|
|
74
81
|
onPressParentMessage,
|
|
@@ -90,9 +97,16 @@ const ChannelMessageList = ({
|
|
|
90
97
|
}, channel.isFrozen && /*#__PURE__*/React.createElement(ChannelFrozenBanner, {
|
|
91
98
|
style: styles.frozenBanner,
|
|
92
99
|
text: STRINGS.LABELS.CHANNEL_MESSAGE_LIST_FROZEN
|
|
93
|
-
}), /*#__PURE__*/React.createElement(
|
|
100
|
+
}), renderUnreadMessagesFloating && /*#__PURE__*/React.createElement(View, {
|
|
101
|
+
style: [channel.isFrozen ? styles.unreadMsgFloatingWhenFrozen : styles.unreadMsgFloating, safeAreaLayout]
|
|
102
|
+
}, renderUnreadMessagesFloating({
|
|
103
|
+
visible: (unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.visible) ?? false,
|
|
104
|
+
onPressClose: () => unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.onPressClose(),
|
|
105
|
+
unreadMessageCount: (unreadMessagesFloatingProps === null || unreadMessagesFloatingProps === void 0 ? void 0 : unreadMessagesFloatingProps.unreadMessageCount) ?? 0
|
|
106
|
+
})), /*#__PURE__*/React.createElement(ChatFlatList, _extends({
|
|
94
107
|
flatListComponent: flatListComponent
|
|
95
108
|
}, flatListProps, {
|
|
109
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
96
110
|
onTopReached: onTopReached,
|
|
97
111
|
onBottomReached: onBottomReached,
|
|
98
112
|
onScrolledAwayFromBottom: onScrolledAwayFromBottom,
|
|
@@ -124,7 +138,8 @@ const useCreateMessagePressActions = ({
|
|
|
124
138
|
onReplyMessage,
|
|
125
139
|
onReplyInThreadMessage,
|
|
126
140
|
onDeleteMessage,
|
|
127
|
-
onPressMediaMessage
|
|
141
|
+
onPressMediaMessage,
|
|
142
|
+
onPressMarkAsUnreadMessage
|
|
128
143
|
}) => {
|
|
129
144
|
const handlers = useSBUHandlers();
|
|
130
145
|
const {
|
|
@@ -192,6 +207,9 @@ const useCreateMessagePressActions = ({
|
|
|
192
207
|
}
|
|
193
208
|
}
|
|
194
209
|
};
|
|
210
|
+
const onMarkAsUnread = message => {
|
|
211
|
+
onPressMarkAsUnreadMessage === null || onPressMarkAsUnreadMessage === void 0 || onPressMarkAsUnreadMessage(message);
|
|
212
|
+
};
|
|
195
213
|
const openSheetForFailedMessage = message => {
|
|
196
214
|
openSheet({
|
|
197
215
|
sheetItems: [{
|
|
@@ -229,6 +247,11 @@ const useCreateMessagePressActions = ({
|
|
|
229
247
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,
|
|
230
248
|
onPress: () => onCopyText(message)
|
|
231
249
|
}),
|
|
250
|
+
markAsUnread: message => ({
|
|
251
|
+
icon: 'mark-as-unread',
|
|
252
|
+
title: STRINGS.LABELS.CHANNEL_MESSAGE_MARK_AS_UNREAD,
|
|
253
|
+
onPress: () => onMarkAsUnread(message)
|
|
254
|
+
}),
|
|
232
255
|
edit: message => ({
|
|
233
256
|
icon: 'edit',
|
|
234
257
|
title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,
|
|
@@ -261,9 +284,17 @@ const useCreateMessagePressActions = ({
|
|
|
261
284
|
if (message.isUserMessage()) {
|
|
262
285
|
sheetItems.push(menu.copy(message));
|
|
263
286
|
if (!channel.isEphemeral) {
|
|
264
|
-
if (
|
|
265
|
-
|
|
266
|
-
|
|
287
|
+
if (message.sendingStatus === 'succeeded') {
|
|
288
|
+
const isMyMsg = isMyMessage(message, currentUserId);
|
|
289
|
+
if (isMyMsg) {
|
|
290
|
+
sheetItems.push(menu.edit(message));
|
|
291
|
+
}
|
|
292
|
+
if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {
|
|
293
|
+
sheetItems.push(menu.markAsUnread(message));
|
|
294
|
+
}
|
|
295
|
+
if (isMyMsg) {
|
|
296
|
+
sheetItems.push(menu.delete(message));
|
|
297
|
+
}
|
|
267
298
|
}
|
|
268
299
|
if (channel.isGroupChannel()) {
|
|
269
300
|
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
@@ -279,8 +310,13 @@ const useCreateMessagePressActions = ({
|
|
|
279
310
|
sheetItems.push(menu.download(message));
|
|
280
311
|
}
|
|
281
312
|
if (!channel.isEphemeral) {
|
|
282
|
-
if (
|
|
283
|
-
|
|
313
|
+
if (message.sendingStatus === 'succeeded') {
|
|
314
|
+
if (channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableMarkAsUnread) {
|
|
315
|
+
sheetItems.push(menu.markAsUnread(message));
|
|
316
|
+
}
|
|
317
|
+
if (isMyMessage(message, currentUserId)) {
|
|
318
|
+
sheetItems.push(menu.delete(message));
|
|
319
|
+
}
|
|
284
320
|
}
|
|
285
321
|
if (channel.isGroupChannel()) {
|
|
286
322
|
if (sbOptions.uikit.groupChannel.channel.replyType === 'thread' && onReplyInThreadMessage !== undefined) {
|
|
@@ -349,6 +385,18 @@ const styles = createStyleSheet({
|
|
|
349
385
|
frozenListPadding: {
|
|
350
386
|
paddingBottom: 32
|
|
351
387
|
},
|
|
388
|
+
unreadMsgFloating: {
|
|
389
|
+
position: 'absolute',
|
|
390
|
+
zIndex: 999,
|
|
391
|
+
top: 12,
|
|
392
|
+
alignSelf: 'center'
|
|
393
|
+
},
|
|
394
|
+
unreadMsgFloatingWhenFrozen: {
|
|
395
|
+
position: 'absolute',
|
|
396
|
+
zIndex: 999,
|
|
397
|
+
top: 40,
|
|
398
|
+
alignSelf: 'center'
|
|
399
|
+
},
|
|
352
400
|
newMsgButton: {
|
|
353
401
|
position: 'absolute',
|
|
354
402
|
zIndex: 999,
|