@sendbird/uikit-react-native 3.0.4 → 3.1.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/SendInput.js +151 -19
- package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/commonjs/components/ChannelInput/index.js +5 -13
- package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ChannelMessageList/index.js +34 -20
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChatFlatList/index.js +1 -1
- package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +4 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +191 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -0
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +12 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/MessageSearchResultItem.js +2 -8
- package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +8 -7
- package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js +3 -9
- package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +43 -9
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SendbirdChatCtx.js +5 -0
- package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +5 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +47 -10
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +38 -3
- 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/openChannel/types.js.map +1 -1
- package/lib/commonjs/fragments/createGroupChannelFragment.js +19 -0
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/commonjs/hooks/useConnection.js +2 -1
- package/lib/commonjs/hooks/useConnection.js.map +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js +1 -1
- package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/commonjs/hooks/useMentionTextInput.js +4 -3
- package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
- package/lib/commonjs/libs/MentionManager.js.map +1 -1
- package/lib/commonjs/localization/StringSet.type.js.map +1 -1
- package/lib/commonjs/localization/createBaseStringSet.js +29 -0
- package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
- package/lib/commonjs/platform/createMediaService.native.js +1 -1
- package/lib/commonjs/platform/createMediaService.native.js.map +1 -1
- package/lib/commonjs/platform/types.js.map +1 -1
- package/lib/commonjs/utils/pubsub.js +3 -1
- package/lib/commonjs/utils/pubsub.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 +153 -21
- package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js +6 -14
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +34 -20
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChatFlatList/index.js +1 -1
- package/lib/module/components/ChatFlatList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +4 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +182 -0
- package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -0
- package/lib/module/components/GroupChannelMessageRenderer/index.js +13 -2
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/MessageSearchResultItem.js +3 -9
- package/lib/module/components/MessageSearchResultItem.js.map +1 -1
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +8 -7
- package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
- package/lib/module/containers/GroupChannelPreviewContainer.js +4 -10
- package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +43 -9
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SendbirdChatCtx.js +6 -1
- package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js +5 -1
- package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +50 -13
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
- package/lib/module/domain/groupChannel/module/moduleContext.js +39 -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/openChannel/types.js.map +1 -1
- package/lib/module/fragments/createGroupChannelFragment.js +19 -0
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
- package/lib/module/hooks/useConnection.js +2 -1
- package/lib/module/hooks/useConnection.js.map +1 -1
- package/lib/module/hooks/useMentionSuggestion.js +1 -1
- package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
- package/lib/module/hooks/useMentionTextInput.js +4 -3
- package/lib/module/hooks/useMentionTextInput.js.map +1 -1
- package/lib/module/libs/MentionManager.js.map +1 -1
- package/lib/module/localization/StringSet.type.js.map +1 -1
- package/lib/module/localization/createBaseStringSet.js +30 -1
- package/lib/module/localization/createBaseStringSet.js.map +1 -1
- package/lib/module/platform/createMediaService.native.js +1 -1
- package/lib/module/platform/createMediaService.native.js.map +1 -1
- package/lib/module/platform/types.js.map +1 -1
- package/lib/module/utils/pubsub.js +3 -1
- package/lib/module/utils/pubsub.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 +2 -0
- package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -1
- package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +9 -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/containers/SendbirdUIKitContainer.d.ts +4 -2
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +4 -0
- package/lib/typescript/src/domain/groupChannel/types.d.ts +6 -2
- package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
- package/lib/typescript/src/domain/openChannel/types.d.ts +1 -2
- package/lib/typescript/src/libs/MentionManager.d.ts +1 -4
- package/lib/typescript/src/localization/StringSet.type.d.ts +7 -1
- package/lib/typescript/src/platform/types.d.ts +10 -11
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/components/ChannelInput/SendInput.tsx +184 -51
- package/src/components/ChannelInput/index.tsx +11 -15
- package/src/components/ChannelMessageList/index.tsx +45 -27
- package/src/components/ChatFlatList/index.tsx +1 -1
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.tsx +5 -1
- package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +177 -0
- package/src/components/GroupChannelMessageRenderer/index.tsx +16 -1
- package/src/components/MessageSearchResultItem.tsx +3 -5
- package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +6 -7
- package/src/containers/GroupChannelPreviewContainer.tsx +6 -7
- package/src/containers/SendbirdUIKitContainer.tsx +40 -10
- package/src/contexts/SendbirdChatCtx.tsx +7 -1
- package/src/domain/groupChannel/component/GroupChannelInput.tsx +5 -1
- package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +46 -13
- package/src/domain/groupChannel/module/moduleContext.tsx +38 -3
- package/src/domain/groupChannel/types.ts +8 -2
- package/src/domain/openChannel/types.ts +1 -2
- package/src/fragments/createGroupChannelFragment.tsx +15 -0
- package/src/hooks/useConnection.ts +1 -1
- package/src/hooks/useMentionSuggestion.ts +2 -1
- package/src/hooks/useMentionTextInput.ts +2 -2
- package/src/libs/MentionManager.tsx +1 -8
- package/src/localization/StringSet.type.ts +11 -0
- package/src/localization/createBaseStringSet.ts +30 -0
- package/src/platform/createMediaService.native.tsx +1 -1
- package/src/platform/types.ts +9 -9
- package/src/utils/pubsub.ts +3 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_uikitChatHooks","_uikitUtils","_useContext","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","useState","useAsyncEffect","refresh","url","id","useUniqHandlerId","useChannelHandler","sdk","onUserJoined","eventChannel","isDifferentChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","useSendbirdChat","members","setMembers","searchStringRangeRef","useRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","
|
|
1
|
+
{"version":3,"names":["_react","require","_uikitChatHooks","_uikitUtils","_useContext","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","useState","useAsyncEffect","refresh","url","id","useUniqHandlerId","useChannelHandler","sdk","onUserJoined","eventChannel","isDifferentChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","useSendbirdChat","members","setMembers","searchStringRangeRef","useRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","slice","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","useDebounceEffect","catch","debounceMills","reset","useCallback","searchStringRange","searchLimited","_default","exports","default"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const id = useUniqHandlerId('useMentionSuggestion');\n\n useChannelHandler(params.sdk, id, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId))\n .then((members) => members.slice(0, mentionManager.config.suggestionLimit));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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"}
|
|
@@ -24,13 +24,14 @@ const useMentionTextInput = params => {
|
|
|
24
24
|
// TODO: Refactor text edit logic more clearly
|
|
25
25
|
(0, _react.useEffect)(() => {
|
|
26
26
|
if (mentionManager.shouldUseMentionedMessageTemplate(params.messageToEdit, sbOptions.uikit.groupChannel.channel.enableMention)) {
|
|
27
|
-
|
|
27
|
+
var _params$messageToEdit, _params$messageToEdit2;
|
|
28
|
+
const result = mentionManager.templateToTextAndMentionedUsers(((_params$messageToEdit = params.messageToEdit) === null || _params$messageToEdit === void 0 ? void 0 : _params$messageToEdit.mentionedMessageTemplate) ?? '', ((_params$messageToEdit2 = params.messageToEdit) === null || _params$messageToEdit2 === void 0 ? void 0 : _params$messageToEdit2.mentionedUsers) ?? []);
|
|
28
29
|
mentionedUsersRef.current = result.mentionedUsers;
|
|
29
30
|
setText(result.mentionedText);
|
|
30
31
|
} else {
|
|
31
|
-
var _params$
|
|
32
|
+
var _params$messageToEdit3;
|
|
32
33
|
mentionedUsersRef.current = [];
|
|
33
|
-
if ((_params$
|
|
34
|
+
if ((_params$messageToEdit3 = params.messageToEdit) !== null && _params$messageToEdit3 !== void 0 && _params$messageToEdit3.isUserMessage()) {
|
|
34
35
|
setText(params.messageToEdit.message);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_uikitUtils","_useContext","useMentionTextInput","params","mentionManager","sbOptions","useSendbirdChat","mentionedUsersRef","useRef","textInputRef","text","setText","useState","selection","setSelection","start","end","useEffect","shouldUseMentionedMessageTemplate","messageToEdit","uikit","groupChannel","channel","enableMention","result","templateToTextAndMentionedUsers","mentionedMessageTemplate","mentionedUsers","current","mentionedText","_params$messageToEdit","isUserMessage","message","onChangeText","useFreshCallback","_nextText","addedMentionedUser","prevText","nextText","offset","length","push","reconcileRangeOfMentionedUsers","filtered","lastSelection","removeMentionedUsersInSelection","Math","max","foundIndex","findIndex","it","rangeHelpers","overlaps","range","remainderLength","replace","splice","onSelectionChange","e","nativeSelection","nativeEvent","setTimeout","mentionedUser","find","_textInputRef$current","selectionBlock","setNativeProps","Platform","OS","_textInputRef$current2","_default","exports","default"],"sources":["useMentionTextInput.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';\nimport { Platform } from 'react-native';\n\nimport { SendbirdFileMessage, SendbirdUserMessage, replace, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser } from '../types';\nimport { useSendbirdChat } from './useContext';\n\nconst useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {\n const { mentionManager, sbOptions } = useSendbirdChat();\n\n const mentionedUsersRef = useRef<MentionedUser[]>([]);\n const textInputRef = useRef<TextInput>();\n\n const [text, setText] = useState('');\n const [selection, setSelection] = useState({ start: 0, end: 0 });\n\n // TODO: Refactor text edit logic more clearly\n useEffect(() => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(\n params.messageToEdit,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )\n ) {\n const result = mentionManager.templateToTextAndMentionedUsers(\n params.messageToEdit.mentionedMessageTemplate,\n params.messageToEdit.mentionedUsers,\n );\n\n mentionedUsersRef.current = result.mentionedUsers;\n setText(result.mentionedText);\n } else {\n mentionedUsersRef.current = [];\n if (params.messageToEdit?.isUserMessage()) {\n setText(params.messageToEdit.message);\n }\n }\n }, [params.messageToEdit]);\n\n const onChangeText = useFreshCallback((_nextText: string, addedMentionedUser?: MentionedUser) => {\n const prevText = text;\n let nextText = _nextText;\n let offset = nextText.length - prevText.length;\n\n // Text clear\n if (nextText === '') {\n mentionedUsersRef.current = [];\n }\n // Text add\n else if (offset > 0) {\n /** Add mentioned user **/\n if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n // Text remove\n else if (offset < 0) {\n // Ranged remove\n if (selection.start !== selection.end) {\n /** Filter mentioned users in selection range **/\n const { filtered, lastSelection } = mentionManager.removeMentionedUsersInSelection(\n selection,\n mentionedUsersRef.current,\n );\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n Math.max(selection.end, lastSelection),\n filtered,\n );\n }\n // Single remove\n else {\n /** Find mentioned user who ranges in removed selection **/\n const foundIndex = mentionedUsersRef.current.findIndex((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n /** If found, remove from the mentioned user list and remove remainder text **/\n if (foundIndex > -1) {\n const it = mentionedUsersRef.current[foundIndex];\n const remainderLength = it.range.end - it.range.start + offset;\n\n offset = -remainderLength + offset;\n nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');\n\n mentionedUsersRef.current.splice(foundIndex, 1);\n }\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n }\n\n setText(nextText);\n });\n\n return {\n textInputRef,\n selection,\n onSelectionChange: useFreshCallback((e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => {\n const nativeSelection = { ...e.nativeEvent.selection };\n\n // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.\n setTimeout(() => {\n const mentionedUser = mentionedUsersRef.current.find((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, nativeSelection),\n );\n\n // Selection should be blocked if changed into mentioned area\n if (mentionedUser) {\n const selectionBlock = { start: mentionedUser.range.start, end: mentionedUser.range.end };\n textInputRef.current?.setNativeProps({ selection: selectionBlock });\n // BUG: setNativeProps called again when invoked onChangeText\n // https://github.com/facebook/react-native/issues/33520\n if (Platform.OS === 'android') {\n setTimeout(() => {\n textInputRef.current?.setNativeProps({ selection: { start: 0 } });\n }, 250);\n }\n setSelection(selectionBlock);\n } else {\n setSelection(nativeSelection);\n }\n }, 10);\n }),\n text,\n onChangeText,\n mentionedUsers: mentionedUsersRef.current,\n };\n};\n\nexport default useMentionTextInput;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAH,OAAA;AAEA,MAAMI,mBAAmB,GAAIC,MAAqE,IAAK;EACrG,MAAM;IAAEC,cAAc;IAAEC;EAAU,CAAC,GAAG,IAAAC,2BAAe,GAAE;EAEvD,MAAMC,iBAAiB,GAAG,IAAAC,aAAM,EAAkB,EAAE,CAAC;EACrD,MAAMC,YAAY,GAAG,IAAAD,aAAM,GAAa;EAExC,MAAM,CAACE,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC;IAAEG,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE;EAAE,CAAC,CAAC;;EAEhE;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IACEb,cAAc,CAACc,iCAAiC,CAC9Cf,MAAM,CAACgB,aAAa,EACpBd,SAAS,CAACe,KAAK,CAACC,YAAY,CAACC,OAAO,CAACC,aAAa,CACnD,EACD;MACA,MAAMC,MAAM,GAAGpB,cAAc,CAACqB,+BAA+B,CAC3DtB,MAAM,CAACgB,aAAa,CAACO,wBAAwB,EAC7CvB,MAAM,CAACgB,aAAa,CAACQ,cAAc,CACpC;MAEDpB,iBAAiB,CAACqB,OAAO,GAAGJ,MAAM,CAACG,cAAc;MACjDhB,OAAO,CAACa,MAAM,CAACK,aAAa,CAAC;IAC/B,CAAC,MAAM;MAAA,IAAAC,qBAAA;MACLvB,iBAAiB,CAACqB,OAAO,GAAG,EAAE;MAC9B,KAAAE,qBAAA,GAAI3B,MAAM,CAACgB,aAAa,cAAAW,qBAAA,eAApBA,qBAAA,CAAsBC,aAAa,EAAE,EAAE;QACzCpB,OAAO,CAACR,MAAM,CAACgB,aAAa,CAACa,OAAO,CAAC;MACvC;IACF;EACF,CAAC,EAAE,CAAC7B,MAAM,CAACgB,aAAa,CAAC,CAAC;EAE1B,MAAMc,YAAY,GAAG,IAAAC,4BAAgB,EAAC,CAACC,SAAiB,EAAEC,kBAAkC,KAAK;IAC/F,MAAMC,QAAQ,GAAG3B,IAAI;IACrB,IAAI4B,QAAQ,GAAGH,SAAS;IACxB,IAAII,MAAM,GAAGD,QAAQ,CAACE,MAAM,GAAGH,QAAQ,CAACG,MAAM;;IAE9C;IACA,IAAIF,QAAQ,KAAK,EAAE,EAAE;MACnB/B,iBAAiB,CAACqB,OAAO,GAAG,EAAE;IAChC;IACA;IAAA,KACK,IAAIW,MAAM,GAAG,CAAC,EAAE;MACnB;MACA,IAAIH,kBAAkB,EAAE7B,iBAAiB,CAACqB,OAAO,CAACa,IAAI,CAACL,kBAAkB,CAAC;;MAE1E;MACA7B,iBAAiB,CAACqB,OAAO,GAAGxB,cAAc,CAACsC,8BAA8B,CACvEH,MAAM,EACN1B,SAAS,CAACG,GAAG,EACbT,iBAAiB,CAACqB,OAAO,CAC1B;IACH;IACA;IAAA,KACK,IAAIW,MAAM,GAAG,CAAC,EAAE;MACnB;MACA,IAAI1B,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;QACrC;QACA,MAAM;UAAE2B,QAAQ;UAAEC;QAAc,CAAC,GAAGxC,cAAc,CAACyC,+BAA+B,CAChFhC,SAAS,EACTN,iBAAiB,CAACqB,OAAO,CAC1B;;QAED;QACArB,iBAAiB,CAACqB,OAAO,GAAGxB,cAAc,CAACsC,8BAA8B,CACvEH,MAAM,EACNO,IAAI,CAACC,GAAG,CAAClC,SAAS,CAACG,GAAG,EAAE4B,aAAa,CAAC,EACtCD,QAAQ,CACT;MACH;MACA;MAAA,KACK;QACH;QACA,MAAMK,UAAU,GAAGzC,iBAAiB,CAACqB,OAAO,CAACqB,SAAS,CAAEC,EAAE,IACxD9C,cAAc,CAAC+C,YAAY,CAACC,QAAQ,CAACF,EAAE,CAACG,KAAK,EAAExC,SAAS,EAAE,WAAW,CAAC,CACvE;QACD;QACA,IAAImC,UAAU,GAAG,CAAC,CAAC,EAAE;UACnB,MAAME,EAAE,GAAG3C,iBAAiB,CAACqB,OAAO,CAACoB,UAAU,CAAC;UAChD,MAAMM,eAAe,GAAGJ,EAAE,CAACG,KAAK,CAACrC,GAAG,GAAGkC,EAAE,CAACG,KAAK,CAACtC,KAAK,GAAGwB,MAAM;UAE9DA,MAAM,GAAG,CAACe,eAAe,GAAGf,MAAM;UAClCD,QAAQ,GAAG,IAAAiB,mBAAO,EAACjB,QAAQ,EAAEY,EAAE,CAACG,KAAK,CAACtC,KAAK,EAAEmC,EAAE,CAACG,KAAK,CAACtC,KAAK,GAAGuC,eAAe,EAAE,EAAE,CAAC;UAElF/C,iBAAiB,CAACqB,OAAO,CAAC4B,MAAM,CAACR,UAAU,EAAE,CAAC,CAAC;QACjD;;QAEA;QACAzC,iBAAiB,CAACqB,OAAO,GAAGxB,cAAc,CAACsC,8BAA8B,CACvEH,MAAM,EACN1B,SAAS,CAACG,GAAG,EACbT,iBAAiB,CAACqB,OAAO,CAC1B;MACH;IACF;IAEAjB,OAAO,CAAC2B,QAAQ,CAAC;EACnB,CAAC,CAAC;EAEF,OAAO;IACL7B,YAAY;IACZI,SAAS;IACT4C,iBAAiB,EAAE,IAAAvB,4BAAgB,EAAEwB,CAA0D,IAAK;MAClG,MAAMC,eAAe,GAAG;QAAE,GAAGD,CAAC,CAACE,WAAW,CAAC/C;MAAU,CAAC;;MAEtD;MACAgD,UAAU,CAAC,MAAM;QACf,MAAMC,aAAa,GAAGvD,iBAAiB,CAACqB,OAAO,CAACmC,IAAI,CAAEb,EAAE,IACtD9C,cAAc,CAAC+C,YAAY,CAACC,QAAQ,CAACF,EAAE,CAACG,KAAK,EAAEM,eAAe,CAAC,CAChE;;QAED;QACA,IAAIG,aAAa,EAAE;UAAA,IAAAE,qBAAA;UACjB,MAAMC,cAAc,GAAG;YAAElD,KAAK,EAAE+C,aAAa,CAACT,KAAK,CAACtC,KAAK;YAAEC,GAAG,EAAE8C,aAAa,CAACT,KAAK,CAACrC;UAAI,CAAC;UACzF,CAAAgD,qBAAA,GAAAvD,YAAY,CAACmB,OAAO,cAAAoC,qBAAA,uBAApBA,qBAAA,CAAsBE,cAAc,CAAC;YAAErD,SAAS,EAAEoD;UAAe,CAAC,CAAC;UACnE;UACA;UACA,IAAIE,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;YAC7BP,UAAU,CAAC,MAAM;cAAA,IAAAQ,sBAAA;cACf,CAAAA,sBAAA,GAAA5D,YAAY,CAACmB,OAAO,cAAAyC,sBAAA,uBAApBA,sBAAA,CAAsBH,cAAc,CAAC;gBAAErD,SAAS,EAAE;kBAAEE,KAAK,EAAE;gBAAE;cAAE,CAAC,CAAC;YACnE,CAAC,EAAE,GAAG,CAAC;UACT;UACAD,YAAY,CAACmD,cAAc,CAAC;QAC9B,CAAC,MAAM;UACLnD,YAAY,CAAC6C,eAAe,CAAC;QAC/B;MACF,CAAC,EAAE,EAAE,CAAC;IACR,CAAC,CAAC;IACFjD,IAAI;IACJuB,YAAY;IACZN,cAAc,EAAEpB,iBAAiB,CAACqB;EACpC,CAAC;AACH,CAAC;AAAC,IAAA0C,QAAA,GAEapE,mBAAmB;AAAAqE,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_uikitUtils","_useContext","useMentionTextInput","params","mentionManager","sbOptions","useSendbirdChat","mentionedUsersRef","useRef","textInputRef","text","setText","useState","selection","setSelection","start","end","useEffect","shouldUseMentionedMessageTemplate","messageToEdit","uikit","groupChannel","channel","enableMention","_params$messageToEdit","_params$messageToEdit2","result","templateToTextAndMentionedUsers","mentionedMessageTemplate","mentionedUsers","current","mentionedText","_params$messageToEdit3","isUserMessage","message","onChangeText","useFreshCallback","_nextText","addedMentionedUser","prevText","nextText","offset","length","push","reconcileRangeOfMentionedUsers","filtered","lastSelection","removeMentionedUsersInSelection","Math","max","foundIndex","findIndex","it","rangeHelpers","overlaps","range","remainderLength","replace","splice","onSelectionChange","e","nativeSelection","nativeEvent","setTimeout","mentionedUser","find","_textInputRef$current","selectionBlock","setNativeProps","Platform","OS","_textInputRef$current2","_default","exports","default"],"sources":["useMentionTextInput.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { NativeSyntheticEvent, TextInput, TextInputSelectionChangeEventData } from 'react-native';\nimport { Platform } from 'react-native';\n\nimport { SendbirdFileMessage, SendbirdUserMessage, replace, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser } from '../types';\nimport { useSendbirdChat } from './useContext';\n\nconst useMentionTextInput = (params: { messageToEdit?: SendbirdUserMessage | SendbirdFileMessage }) => {\n const { mentionManager, sbOptions } = useSendbirdChat();\n\n const mentionedUsersRef = useRef<MentionedUser[]>([]);\n const textInputRef = useRef<TextInput>();\n\n const [text, setText] = useState('');\n const [selection, setSelection] = useState({ start: 0, end: 0 });\n\n // TODO: Refactor text edit logic more clearly\n useEffect(() => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(\n params.messageToEdit,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )\n ) {\n const result = mentionManager.templateToTextAndMentionedUsers(\n params.messageToEdit?.mentionedMessageTemplate ?? '',\n params.messageToEdit?.mentionedUsers ?? [],\n );\n\n mentionedUsersRef.current = result.mentionedUsers;\n setText(result.mentionedText);\n } else {\n mentionedUsersRef.current = [];\n if (params.messageToEdit?.isUserMessage()) {\n setText(params.messageToEdit.message);\n }\n }\n }, [params.messageToEdit]);\n\n const onChangeText = useFreshCallback((_nextText: string, addedMentionedUser?: MentionedUser) => {\n const prevText = text;\n let nextText = _nextText;\n let offset = nextText.length - prevText.length;\n\n // Text clear\n if (nextText === '') {\n mentionedUsersRef.current = [];\n }\n // Text add\n else if (offset > 0) {\n /** Add mentioned user **/\n if (addedMentionedUser) mentionedUsersRef.current.push(addedMentionedUser);\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n // Text remove\n else if (offset < 0) {\n // Ranged remove\n if (selection.start !== selection.end) {\n /** Filter mentioned users in selection range **/\n const { filtered, lastSelection } = mentionManager.removeMentionedUsersInSelection(\n selection,\n mentionedUsersRef.current,\n );\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n Math.max(selection.end, lastSelection),\n filtered,\n );\n }\n // Single remove\n else {\n /** Find mentioned user who ranges in removed selection **/\n const foundIndex = mentionedUsersRef.current.findIndex((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n /** If found, remove from the mentioned user list and remove remainder text **/\n if (foundIndex > -1) {\n const it = mentionedUsersRef.current[foundIndex];\n const remainderLength = it.range.end - it.range.start + offset;\n\n offset = -remainderLength + offset;\n nextText = replace(nextText, it.range.start, it.range.start + remainderLength, '');\n\n mentionedUsersRef.current.splice(foundIndex, 1);\n }\n\n /** Reconcile mentioned users range on the right side of the selection **/\n mentionedUsersRef.current = mentionManager.reconcileRangeOfMentionedUsers(\n offset,\n selection.end,\n mentionedUsersRef.current,\n );\n }\n }\n\n setText(nextText);\n });\n\n return {\n textInputRef,\n selection,\n onSelectionChange: useFreshCallback((e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => {\n const nativeSelection = { ...e.nativeEvent.selection };\n\n // NOTE: To synchronize call onSelectionChange after onChangeText called on each platform.\n setTimeout(() => {\n const mentionedUser = mentionedUsersRef.current.find((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, nativeSelection),\n );\n\n // Selection should be blocked if changed into mentioned area\n if (mentionedUser) {\n const selectionBlock = { start: mentionedUser.range.start, end: mentionedUser.range.end };\n textInputRef.current?.setNativeProps({ selection: selectionBlock });\n // BUG: setNativeProps called again when invoked onChangeText\n // https://github.com/facebook/react-native/issues/33520\n if (Platform.OS === 'android') {\n setTimeout(() => {\n textInputRef.current?.setNativeProps({ selection: { start: 0 } });\n }, 250);\n }\n setSelection(selectionBlock);\n } else {\n setSelection(nativeSelection);\n }\n }, 10);\n }),\n text,\n onChangeText,\n mentionedUsers: mentionedUsersRef.current,\n };\n};\n\nexport default useMentionTextInput;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","MentionManager","constructor","config","_this","inRangeUnderOver","start","num","end","inRangeUnderMore","inRangeLessOver","inRangeLessMore","overlaps","a","b","compare","arguments","length","inRange","underOver","underMore","lessOver","lessMore","text","selectionIndex","lastSpan","slice","split","delimiter","pop","triggerIdx","indexOf","trigger","mentionSpan","searchString","isTriggered","startsWith","isValidSearchString","_invalidStartsKeywords","every","it","offset","mentionedUsers","map","range","selection","lastSelection","removedOffset","filtered","filter","shouldRemove","rangeHelpers","Math","max","user","userId","nickname","mentionEnabled","leftText","components","sort","reduce","_ref","curr","currentIndex","leftSpan","rightSpan","createElement","Text","style","styles","mentionedText","strings","_ref2","templateSpan","asMentionedMessageTemplate","join","template","actualMentionedUsers","offsetToMove","replaceWithRegex","templateRegex","_ref3","match","matchIndex","groups","find","userIdSpan","userNicknameSpan","asMentionedMessageText","offsetAfterConverted","originalRange","convertedRange","push","message","Boolean","mentionedMessageTemplate","_templateRegex","createMentionTemplateRegex","createStyleSheet","fontWeight","_default","exports"],"sources":["MentionManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { createMentionTemplateRegex, replaceWithRegex } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser, Range } from '../types';\nimport type { MentionConfigInterface } from './MentionConfig';\n\nclass MentionManager {\n private _invalidStartsKeywords: string[];\n private _templateRegex: RegExp;\n\n constructor(public config: MentionConfigInterface) {\n this._invalidStartsKeywords = [this.config.trigger, this.config.delimiter];\n this._templateRegex = createMentionTemplateRegex(this.config.trigger);\n }\n\n public rangeHelpers = {\n inRangeUnderOver(start: number, num: number, end: number) {\n return start < num && num < end;\n },\n inRangeUnderMore(start: number, num: number, end: number) {\n return start < num && num <= end;\n },\n inRangeLessOver(start: number, num: number, end: number) {\n return start <= num && num < end;\n },\n inRangeLessMore(start: number, num: number, end: number) {\n return start <= num && num <= end;\n },\n overlaps(a: Range, b: Range, compare: 'underOver' | 'underMore' | 'lessOver' | 'lessMore' = 'underOver') {\n const inRange = {\n underOver: this.inRangeUnderOver,\n underMore: this.inRangeUnderMore,\n lessOver: this.inRangeLessOver,\n lessMore: this.inRangeLessMore,\n }[compare];\n\n return inRange(a.start, b.start, a.end) || inRange(a.start, b.end, a.end);\n },\n };\n\n public get templateRegex() {\n return this._templateRegex;\n }\n\n public getSearchString = (text: string, selectionIndex: number) => {\n const lastSpan = text.slice(0, selectionIndex).split(this.config.delimiter).pop() ?? '';\n const triggerIdx = lastSpan.indexOf(this.config.trigger);\n const mentionSpan = triggerIdx === -1 ? lastSpan : lastSpan.slice(triggerIdx);\n const searchString = mentionSpan.slice(this.config.trigger.length);\n\n return {\n searchString,\n isTriggered: () => mentionSpan.startsWith(this.config.trigger),\n isValidSearchString: () => this._invalidStartsKeywords.every((it) => !searchString.startsWith(it)),\n };\n };\n\n /**\n * @description Reconcile the range by offset in the mentioned users\n * */\n public reconcileRangeOfMentionedUsers = (offset: number, selectionIndex: number, mentionedUsers: MentionedUser[]) => {\n return mentionedUsers.map((it) => {\n // Changes only on the right text of selection.\n if (selectionIndex <= it.range.start) {\n return {\n ...it,\n range: {\n start: it.range.start + offset,\n end: it.range.end + offset,\n },\n };\n }\n\n return it;\n });\n };\n\n /**\n * @description Remove users who in a range\n * */\n public removeMentionedUsersInSelection = (selection: Range, mentionedUsers: MentionedUser[]) => {\n let lastSelection = 0;\n let removedOffset = 0;\n const filtered = mentionedUsers.filter((it) => {\n const shouldRemove = this.rangeHelpers.overlaps(selection, it.range, 'lessMore');\n if (shouldRemove) {\n lastSelection = Math.max(lastSelection, it.range.end);\n removedOffset -= it.range.end - it.range.start;\n }\n return !shouldRemove;\n });\n\n return { filtered, lastSelection, removedOffset };\n };\n\n public getSearchStringRangeInText = (selectionIndex: number, searchString: string): Range => {\n return {\n start: selectionIndex - searchString.length - this.config.trigger.length,\n end: selectionIndex,\n };\n };\n\n /**\n * @description User to @{user.id} template format\n * */\n public asMentionedMessageTemplate = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}{${user.userId}}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description User to @user.nickname text format\n * */\n public asMentionedMessageText = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}${user.nickname}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description Bold @user.nickname\n * */\n public textToMentionedComponents = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled || mentionedUsers.length === 0) return text;\n\n const { leftText, components } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, components }, curr, currentIndex) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const mentionSpan = leftText.slice(curr.range.start, curr.range.end);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n components: [\n <Text key={mentionSpan + currentIndex} style={styles.mentionedText}>\n {mentionSpan}\n </Text>,\n rightSpan,\n ...components,\n ],\n };\n },\n { leftText: text, components: [] as (string | JSX.Element)[] },\n );\n\n return [leftText, ...components];\n };\n\n public textToMentionedMessageTemplate = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled) return text;\n\n const { leftText, strings } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, strings }, curr) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const templateSpan = this.asMentionedMessageTemplate(curr.user);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n strings: [templateSpan, rightSpan, ...strings],\n };\n },\n { leftText: text, strings: [] as string[] },\n );\n\n return [leftText, ...strings].join('');\n };\n\n /**\n * @description Convert @{user.id} template to @user.nickname text and MentionedUser[] array.\n * */\n public templateToTextAndMentionedUsers = (template: string, mentionedUsers: SendbirdUser[]) => {\n const actualMentionedUsers: MentionedUser[] = [];\n\n let offsetToMove = 0;\n const mentionedText = replaceWithRegex(\n template,\n this.templateRegex,\n ({ match, matchIndex, groups }) => {\n const user = mentionedUsers.find((it) => it.userId === groups[2]);\n if (user && typeof matchIndex === 'number') {\n const userIdSpan = match;\n const userNicknameSpan = this.asMentionedMessageText(user);\n\n const offsetAfterConverted = userNicknameSpan.length - userIdSpan.length;\n\n const originalRange: Range = {\n start: matchIndex,\n end: matchIndex + userIdSpan.length,\n };\n\n const convertedRange: Range = {\n start: Math.max(0, originalRange.start + offsetToMove),\n end: originalRange.end + offsetToMove + offsetAfterConverted,\n };\n\n offsetToMove += offsetAfterConverted;\n\n actualMentionedUsers.push({ range: convertedRange, user });\n return userNicknameSpan;\n }\n return match;\n },\n '',\n ).join('');\n\n return {\n mentionedText,\n mentionedUsers: actualMentionedUsers,\n };\n };\n\n public shouldUseMentionedMessageTemplate = (\n message?: SendbirdUserMessage | SendbirdFileMessage,\n mentionEnabled?: boolean,\n ): message is RequiredSpecific<\n SendbirdUserMessage | SendbirdFileMessage,\n 'mentionedMessageTemplate' | 'mentionedUsers' | 'mentionedUserIds' | 'mentionType'\n > => {\n return Boolean(\n mentionEnabled &&\n message?.mentionedMessageTemplate &&\n message?.mentionedUsers &&\n message?.mentionedUsers.length > 0,\n );\n };\n}\n\ntype RequiredSpecific<T, K extends keyof T> = T & {\n [P in K]-?: T[P];\n};\n\nconst styles = createStyleSheet({\n mentionedText: { fontWeight: '700' },\n});\n\nexport default MentionManager;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","MentionManager","constructor","config","_this","inRangeUnderOver","start","num","end","inRangeUnderMore","inRangeLessOver","inRangeLessMore","overlaps","a","b","compare","arguments","length","inRange","underOver","underMore","lessOver","lessMore","text","selectionIndex","lastSpan","slice","split","delimiter","pop","triggerIdx","indexOf","trigger","mentionSpan","searchString","isTriggered","startsWith","isValidSearchString","_invalidStartsKeywords","every","it","offset","mentionedUsers","map","range","selection","lastSelection","removedOffset","filtered","filter","shouldRemove","rangeHelpers","Math","max","user","userId","nickname","mentionEnabled","leftText","components","sort","reduce","_ref","curr","currentIndex","leftSpan","rightSpan","createElement","Text","style","styles","mentionedText","strings","_ref2","templateSpan","asMentionedMessageTemplate","join","template","actualMentionedUsers","offsetToMove","replaceWithRegex","templateRegex","_ref3","match","matchIndex","groups","find","userIdSpan","userNicknameSpan","asMentionedMessageText","offsetAfterConverted","originalRange","convertedRange","push","message","Boolean","mentionedMessageTemplate","_templateRegex","createMentionTemplateRegex","createStyleSheet","fontWeight","_default","exports"],"sources":["MentionManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Text, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUser, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { createMentionTemplateRegex, replaceWithRegex } from '@sendbird/uikit-utils';\n\nimport type { MentionedUser, Range } from '../types';\nimport type { MentionConfigInterface } from './MentionConfig';\n\nclass MentionManager {\n private _invalidStartsKeywords: string[];\n private _templateRegex: RegExp;\n\n constructor(public config: MentionConfigInterface) {\n this._invalidStartsKeywords = [this.config.trigger, this.config.delimiter];\n this._templateRegex = createMentionTemplateRegex(this.config.trigger);\n }\n\n public rangeHelpers = {\n inRangeUnderOver(start: number, num: number, end: number) {\n return start < num && num < end;\n },\n inRangeUnderMore(start: number, num: number, end: number) {\n return start < num && num <= end;\n },\n inRangeLessOver(start: number, num: number, end: number) {\n return start <= num && num < end;\n },\n inRangeLessMore(start: number, num: number, end: number) {\n return start <= num && num <= end;\n },\n overlaps(a: Range, b: Range, compare: 'underOver' | 'underMore' | 'lessOver' | 'lessMore' = 'underOver') {\n const inRange = {\n underOver: this.inRangeUnderOver,\n underMore: this.inRangeUnderMore,\n lessOver: this.inRangeLessOver,\n lessMore: this.inRangeLessMore,\n }[compare];\n\n return inRange(a.start, b.start, a.end) || inRange(a.start, b.end, a.end);\n },\n };\n\n public get templateRegex() {\n return this._templateRegex;\n }\n\n public getSearchString = (text: string, selectionIndex: number) => {\n const lastSpan = text.slice(0, selectionIndex).split(this.config.delimiter).pop() ?? '';\n const triggerIdx = lastSpan.indexOf(this.config.trigger);\n const mentionSpan = triggerIdx === -1 ? lastSpan : lastSpan.slice(triggerIdx);\n const searchString = mentionSpan.slice(this.config.trigger.length);\n\n return {\n searchString,\n isTriggered: () => mentionSpan.startsWith(this.config.trigger),\n isValidSearchString: () => this._invalidStartsKeywords.every((it) => !searchString.startsWith(it)),\n };\n };\n\n /**\n * @description Reconcile the range by offset in the mentioned users\n * */\n public reconcileRangeOfMentionedUsers = (offset: number, selectionIndex: number, mentionedUsers: MentionedUser[]) => {\n return mentionedUsers.map((it) => {\n // Changes only on the right text of selection.\n if (selectionIndex <= it.range.start) {\n return {\n ...it,\n range: {\n start: it.range.start + offset,\n end: it.range.end + offset,\n },\n };\n }\n\n return it;\n });\n };\n\n /**\n * @description Remove users who in a range\n * */\n public removeMentionedUsersInSelection = (selection: Range, mentionedUsers: MentionedUser[]) => {\n let lastSelection = 0;\n let removedOffset = 0;\n const filtered = mentionedUsers.filter((it) => {\n const shouldRemove = this.rangeHelpers.overlaps(selection, it.range, 'lessMore');\n if (shouldRemove) {\n lastSelection = Math.max(lastSelection, it.range.end);\n removedOffset -= it.range.end - it.range.start;\n }\n return !shouldRemove;\n });\n\n return { filtered, lastSelection, removedOffset };\n };\n\n public getSearchStringRangeInText = (selectionIndex: number, searchString: string): Range => {\n return {\n start: selectionIndex - searchString.length - this.config.trigger.length,\n end: selectionIndex,\n };\n };\n\n /**\n * @description User to @{user.id} template format\n * */\n public asMentionedMessageTemplate = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}{${user.userId}}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description User to @user.nickname text format\n * */\n public asMentionedMessageText = (user: SendbirdUser, delimiter = false) => {\n return `${this.config.trigger}${user.nickname}` + (delimiter ? this.config.delimiter : '');\n };\n\n /**\n * @description Bold @user.nickname\n * */\n public textToMentionedComponents = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled || mentionedUsers.length === 0) return text;\n\n const { leftText, components } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, components }, curr, currentIndex) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const mentionSpan = leftText.slice(curr.range.start, curr.range.end);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n components: [\n <Text key={mentionSpan + currentIndex} style={styles.mentionedText}>\n {mentionSpan}\n </Text>,\n rightSpan,\n ...components,\n ],\n };\n },\n { leftText: text, components: [] as (string | JSX.Element)[] },\n );\n\n return [leftText, ...components];\n };\n\n public textToMentionedMessageTemplate = (text: string, mentionedUsers: MentionedUser[], mentionEnabled: boolean) => {\n if (!mentionEnabled) return text;\n\n const { leftText, strings } = mentionedUsers\n .sort((a, b) => b.range.start - a.range.start)\n .reduce(\n ({ leftText, strings }, curr) => {\n const leftSpan = leftText.slice(0, curr.range.start);\n const templateSpan = this.asMentionedMessageTemplate(curr.user);\n const rightSpan = leftText.slice(curr.range.end);\n\n return {\n leftText: leftSpan,\n strings: [templateSpan, rightSpan, ...strings],\n };\n },\n { leftText: text, strings: [] as string[] },\n );\n\n return [leftText, ...strings].join('');\n };\n\n /**\n * @description Convert @{user.id} template to @user.nickname text and MentionedUser[] array.\n * */\n public templateToTextAndMentionedUsers = (template: string, mentionedUsers: SendbirdUser[]) => {\n const actualMentionedUsers: MentionedUser[] = [];\n\n let offsetToMove = 0;\n const mentionedText = replaceWithRegex(\n template,\n this.templateRegex,\n ({ match, matchIndex, groups }) => {\n const user = mentionedUsers.find((it) => it.userId === groups[2]);\n if (user && typeof matchIndex === 'number') {\n const userIdSpan = match;\n const userNicknameSpan = this.asMentionedMessageText(user);\n\n const offsetAfterConverted = userNicknameSpan.length - userIdSpan.length;\n\n const originalRange: Range = {\n start: matchIndex,\n end: matchIndex + userIdSpan.length,\n };\n\n const convertedRange: Range = {\n start: Math.max(0, originalRange.start + offsetToMove),\n end: originalRange.end + offsetToMove + offsetAfterConverted,\n };\n\n offsetToMove += offsetAfterConverted;\n\n actualMentionedUsers.push({ range: convertedRange, user });\n return userNicknameSpan;\n }\n return match;\n },\n '',\n ).join('');\n\n return {\n mentionedText,\n mentionedUsers: actualMentionedUsers,\n };\n };\n\n public shouldUseMentionedMessageTemplate = (\n message?: SendbirdUserMessage | SendbirdFileMessage,\n mentionEnabled?: boolean,\n ): boolean => {\n return Boolean(\n mentionEnabled &&\n message?.mentionedMessageTemplate &&\n message?.mentionedUsers &&\n message?.mentionedUsers.length > 0,\n );\n };\n}\n\nconst styles = createStyleSheet({\n mentionedText: { fontWeight: '700' },\n});\n\nexport default MentionManager;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdParticipant,\n SendbirdUser,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n OPEN_CHANNEL: {\n /** OpenChannel > Header */\n HEADER_TITLE: (channel: SendbirdOpenChannel) => string;\n HEADER_SUBTITLE: (channel: SendbirdOpenChannel) => string;\n\n /** OpenChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n\n /** OpenChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n };\n OPEN_CHANNEL_PARTICIPANTS: {\n /** OpenChannelParticipants > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_SETTINGS: {\n /** OpenChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelSettings > Info */\n INFO_URL: string;\n\n /** OpenChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_PARTICIPANTS: string;\n MENU_DELETE_CHANNEL: string;\n\n /** OpenChannelSettings > Dialog */\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: string;\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_LIST: {\n /** OpenChannelList > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (channel: SendbirdOpenChannel) => string;\n };\n OPEN_CHANNEL_CREATE: {\n /** OpenChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelCreate > ProfileInput */\n PLACEHOLDER: string;\n\n /** OpenChannelCreate > Dialog */\n DIALOG_IMAGE_MENU_REMOVE: string;\n DIALOG_IMAGE_MENU_CAMERA: string;\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_MODERATION: {\n /** OpenChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_PARTICIPANTS: string;\n MENU_BANNED_USERS: string;\n };\n OPEN_CHANNEL_BANNED_USERS: {\n /** OpenChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n /** OpenChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_OPERATORS: {\n /** OpenChannelOperators > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n /** OpenChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdParticipant> }) => string;\n };\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_SEARCH: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n MESSAGE_SEARCH: {\n /** MessageSearch > Header */\n HEADER_INPUT_PLACEHOLDER: string;\n HEADER_RIGHT: string;\n\n /** MessageSearch > Search result item */\n SEARCH_RESULT_ITEM_TITLE: (message: SendbirdBaseMessage) => string;\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message: SendbirdBaseMessage, locale?: Locale) => string;\n SEARCH_RESULT_ITEM_BODY: (message: SendbirdBaseMessage) => string;\n };\n // UI\n LABELS: {\n PERMISSION_APP_NAME: string;\n PERMISSION_CAMERA: string;\n PERMISSION_DEVICE_STORAGE: string;\n\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n\n /** ChannelMessageList **/\n CHANNEL_MESSAGE_LIST_FROZEN: string;\n\n /** ChannelInput **/\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: string;\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;\n CHANNEL_INPUT_PLACEHOLDER_MUTED: string;\n CHANNEL_INPUT_EDIT_OK: string;\n CHANNEL_INPUT_EDIT_CANCEL: string;\n /** ChannelInput > Attachments **/\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: string;\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: string;\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: string;\n CHANNEL_INPUT_ATTACHMENT_FILES: string;\n\n /** Channel > Message **/\n CHANNEL_MESSAGE_COPY: string;\n CHANNEL_MESSAGE_EDIT: string;\n CHANNEL_MESSAGE_SAVE: string;\n CHANNEL_MESSAGE_DELETE: string;\n /** Channel > Message > Delete confirm **/\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** Channel > Message > Failed **/\n CHANNEL_MESSAGE_FAILED_RETRY: string;\n CHANNEL_MESSAGE_FAILED_REMOVE: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_MUTED_PARTICIPANTS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n UNKNOWN_ERROR: string;\n GET_CHANNEL_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["StringSet.type.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMember,\n SendbirdMessage,\n SendbirdOpenChannel,\n SendbirdParticipant,\n SendbirdUser,\n SendbirdUserMessage,\n} from '@sendbird/uikit-utils';\n\n/**\n * StringSet interface\n * Do not configure over 3 depths (for overrides easy)\n * */\nexport interface StringSet {\n OPEN_CHANNEL: {\n /** OpenChannel > Header */\n HEADER_TITLE: (channel: SendbirdOpenChannel) => string;\n HEADER_SUBTITLE: (channel: SendbirdOpenChannel) => string;\n\n /** OpenChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n\n /** OpenChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n };\n OPEN_CHANNEL_PARTICIPANTS: {\n /** OpenChannelParticipants > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_SETTINGS: {\n /** OpenChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelSettings > Info */\n INFO_URL: string;\n\n /** OpenChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_PARTICIPANTS: string;\n MENU_DELETE_CHANNEL: string;\n\n /** OpenChannelSettings > Dialog */\n DIALOG_CHANNEL_DELETE_CONFIRM_TITLE: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_OK: string;\n DIALOG_CHANNEL_DELETE_CONFIRM_CANCEL: string;\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_LIST: {\n /** OpenChannelList > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (channel: SendbirdOpenChannel) => string;\n };\n OPEN_CHANNEL_CREATE: {\n /** OpenChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** OpenChannelCreate > ProfileInput */\n PLACEHOLDER: string;\n\n /** OpenChannelCreate > Dialog */\n DIALOG_IMAGE_MENU_REMOVE: string;\n DIALOG_IMAGE_MENU_CAMERA: string;\n DIALOG_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n OPEN_CHANNEL_MODERATION: {\n /** OpenChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** OpenChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_PARTICIPANTS: string;\n MENU_BANNED_USERS: string;\n };\n OPEN_CHANNEL_BANNED_USERS: {\n /** OpenChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_MUTED_PARTICIPANTS: {\n /** OpenChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_OPERATORS: {\n /** OpenChannelOperators > Header */\n HEADER_TITLE: string;\n };\n OPEN_CHANNEL_REGISTER_OPERATOR: {\n /** OpenChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdParticipant> }) => string;\n };\n GROUP_CHANNEL: {\n /** GroupChannel > Header */\n HEADER_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n\n /** GroupChannel > List */\n LIST_DATE_SEPARATOR: (date: Date, locale?: Locale) => string;\n LIST_BUTTON_NEW_MSG: (newMessages: SendbirdMessage[]) => string;\n\n /** GroupChannel > Message bubble */\n MESSAGE_BUBBLE_TIME: (message: SendbirdMessage, locale?: Locale) => string;\n MESSAGE_BUBBLE_FILE_TITLE: (message: SendbirdFileMessage) => string;\n MESSAGE_BUBBLE_EDITED_POSTFIX: string;\n MESSAGE_BUBBLE_UNKNOWN_TITLE: (message: SendbirdMessage) => string;\n MESSAGE_BUBBLE_UNKNOWN_DESC: (message: SendbirdMessage) => string;\n\n /** GroupChannel > Suggested mention list */\n MENTION_LIMITED: (mentionLimit: number) => string;\n };\n GROUP_CHANNEL_SETTINGS: {\n /** GroupChannelSettings > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: string;\n\n /** GroupChannelSettings > Menu */\n MENU_MODERATION: string;\n MENU_MEMBERS: string;\n MENU_SEARCH: string;\n MENU_LEAVE_CHANNEL: string;\n MENU_NOTIFICATION: string;\n MENU_NOTIFICATION_LABEL_ON: string;\n MENU_NOTIFICATION_LABEL_OFF: string;\n MENU_NOTIFICATION_LABEL_MENTION_ONLY: string;\n\n /** GroupChannelSettings > Dialog */\n DIALOG_CHANGE_NAME: string;\n DIALOG_CHANGE_IMAGE: string;\n DIALOG_CHANGE_NAME_PROMPT_TITLE: string;\n DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER: string;\n DIALOG_CHANGE_NAME_PROMPT_CANCEL: string;\n DIALOG_CHANGE_NAME_PROMPT_OK: string;\n DIALOG_CHANGE_IMAGE_MENU_TITLE: string;\n DIALOG_CHANGE_IMAGE_MENU_CAMERA: string;\n DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY: string;\n };\n GROUP_CHANNEL_NOTIFICATIONS: {\n /** GroupChannelNotifications > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelNotifications > Menu */\n MENU_NOTIFICATIONS: string;\n MENU_NOTIFICATIONS_DESC: string;\n MENU_NOTIFICATIONS_OPTION_ALL: string;\n MENU_NOTIFICATIONS_OPTION_MENTION_ONLY: string;\n };\n GROUP_CHANNEL_MODERATION: {\n /** GroupChannelModeration > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelModeration > Menu */\n MENU_OPERATORS: string;\n MENU_MUTED_MEMBERS: string;\n MENU_BANNED_USERS: string;\n MENU_FREEZE_CHANNEL: string;\n };\n GROUP_CHANNEL_OPERATORS: {\n /** GroupChannelOperators > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_REGISTER_OPERATOR: {\n /** GroupChannelRegisterOperator > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: (params: { selectedUsers: Array<SendbirdMember> }) => string;\n };\n GROUP_CHANNEL_MUTED_MEMBERS: {\n /** GroupChannelMutedMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_BANNED_USERS: {\n /** GroupChannelBannedUsers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_LIST: {\n /** GroupChannelList > Header */\n HEADER_TITLE: string;\n\n /** GroupChannelList > Channel preview */\n CHANNEL_PREVIEW_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n CHANNEL_PREVIEW_TITLE_CAPTION: (channel: SendbirdGroupChannel, locale?: Locale) => string;\n CHANNEL_PREVIEW_BODY: (channel: SendbirdGroupChannel) => string;\n\n /** GroupChannelList > TypeSelector > Header */\n TYPE_SELECTOR_HEADER_TITLE: string;\n /** GroupChannelList > TypeSelector > Type string */\n TYPE_SELECTOR_GROUP: string;\n TYPE_SELECTOR_SUPER_GROUP: string;\n TYPE_SELECTOR_BROADCAST: string;\n\n /** GroupChannelList > Dialog > Channel */\n DIALOG_CHANNEL_TITLE: (currentUserId: string, channel: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_NOTIFICATION: (channel?: SendbirdGroupChannel) => string;\n DIALOG_CHANNEL_LEAVE: string;\n };\n GROUP_CHANNEL_MEMBERS: {\n /** GroupChannelMembers > Header */\n HEADER_TITLE: string;\n };\n GROUP_CHANNEL_INVITE: {\n /** GroupChannelInvite > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n GROUP_CHANNEL_CREATE: {\n /** GroupChannelCreate > Header */\n HEADER_TITLE: string;\n HEADER_RIGHT: <T>(params: { selectedUsers: Array<T> }) => string;\n };\n MESSAGE_SEARCH: {\n /** MessageSearch > Header */\n HEADER_INPUT_PLACEHOLDER: string;\n HEADER_RIGHT: string;\n\n /** MessageSearch > Search result item */\n SEARCH_RESULT_ITEM_TITLE: (message: SendbirdBaseMessage) => string;\n SEARCH_RESULT_ITEM_TITLE_CAPTION: (message: SendbirdBaseMessage, locale?: Locale) => string;\n SEARCH_RESULT_ITEM_BODY: (message: SendbirdBaseMessage) => string;\n };\n // UI\n LABELS: {\n PERMISSION_APP_NAME: string;\n PERMISSION_CAMERA: string;\n PERMISSION_DEVICE_STORAGE: string;\n\n USER_NO_NAME: string;\n CHANNEL_NO_MEMBERS: string;\n TYPING_INDICATOR_TYPINGS: (users: SendbirdUser[]) => string | undefined;\n REPLY_FROM_SENDER_TO_RECEIVER: (\n replyMessage: SendbirdUserMessage | SendbirdFileMessage,\n parentMessage: SendbirdUserMessage | SendbirdFileMessage,\n currentUserId?: string,\n ) => string;\n\n USER_BAR_ME_POSTFIX: string;\n USER_BAR_OPERATOR: string;\n\n REGISTER_AS_OPERATOR: string;\n UNREGISTER_OPERATOR: string;\n MUTE: string;\n UNMUTE: string;\n BAN: string;\n UNBAN: string;\n\n /** ChannelMessageList **/\n CHANNEL_MESSAGE_LIST_FROZEN: string;\n\n /** ChannelInput **/\n CHANNEL_INPUT_PLACEHOLDER_ACTIVE: string;\n CHANNEL_INPUT_PLACEHOLDER_DISABLED: string;\n CHANNEL_INPUT_PLACEHOLDER_MUTED: string;\n CHANNEL_INPUT_PLACEHOLDER_REPLY: string;\n CHANNEL_INPUT_EDIT_OK: string;\n CHANNEL_INPUT_EDIT_CANCEL: string;\n /** ChannelInput > Attachments **/\n CHANNEL_INPUT_ATTACHMENT_CAMERA_PHOTO: string;\n CHANNEL_INPUT_ATTACHMENT_CAMERA_VIDEO: string;\n CHANNEL_INPUT_ATTACHMENT_PHOTO_LIBRARY: string;\n CHANNEL_INPUT_ATTACHMENT_FILES: string;\n CHANNEL_INPUT_REPLY_PREVIEW_TITLE: (user: SendbirdUser) => string;\n CHANNEL_INPUT_REPLY_PREVIEW_BODY: (message: SendbirdUserMessage | SendbirdFileMessage) => string;\n\n /** Channel > Message **/\n CHANNEL_MESSAGE_COPY: string;\n CHANNEL_MESSAGE_EDIT: string;\n CHANNEL_MESSAGE_SAVE: string;\n CHANNEL_MESSAGE_DELETE: string;\n CHANNEL_MESSAGE_REPLY: string;\n /** Channel > Message > Delete confirm **/\n CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_OK: string;\n CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: string;\n /** Channel > Message > Failed **/\n CHANNEL_MESSAGE_FAILED_RETRY: string;\n CHANNEL_MESSAGE_FAILED_REMOVE: string;\n };\n FILE_VIEWER: {\n TITLE: (message: SendbirdFileMessage) => string;\n SUBTITLE: (message: SendbirdFileMessage) => string;\n };\n PLACEHOLDER: {\n NO_BANNED_USERS: string;\n NO_USERS: string;\n NO_CHANNELS: string;\n NO_MESSAGES: string;\n NO_MUTED_MEMBERS: string;\n NO_MUTED_PARTICIPANTS: string;\n NO_RESULTS_FOUND: string;\n ERROR: {\n MESSAGE: string;\n RETRY_LABEL: string;\n };\n };\n DIALOG: {\n ALERT_DEFAULT_OK: string;\n\n ALERT_PERMISSIONS_TITLE: string;\n ALERT_PERMISSIONS_MESSAGE: (permission: string, appName: string) => string;\n ALERT_PERMISSIONS_OK: string;\n\n PROMPT_DEFAULT_OK: string;\n PROMPT_DEFAULT_CANCEL: string;\n PROMPT_DEFAULT_PLACEHOLDER: string;\n };\n TOAST: {\n COPY_OK: string;\n DOWNLOAD_START: string;\n DOWNLOAD_OK: string;\n DOWNLOAD_ERROR: string;\n OPEN_CAMERA_ERROR: string;\n OPEN_PHOTO_LIBRARY_ERROR: string;\n OPEN_FILES_ERROR: string;\n RESEND_MSG_ERROR: string;\n DELETE_MSG_ERROR: string;\n SEND_MSG_ERROR: string;\n UPDATE_MSG_ERROR: string;\n TURN_ON_NOTIFICATIONS_ERROR: string;\n TURN_OFF_NOTIFICATIONS_ERROR: string;\n LEAVE_CHANNEL_ERROR: string;\n UNKNOWN_ERROR: string;\n GET_CHANNEL_ERROR: string;\n FIND_PARENT_MSG_ERROR: string;\n };\n PROFILE_CARD: {\n BUTTON_MESSAGE: string;\n BODY_LABEL: string;\n BODY: (user: SendbirdUser | SendbirdMember) => string;\n };\n}\n"],"mappings":""}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createBaseStringSet = void 0;
|
|
7
7
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
8
|
+
var _constants = require("../constants");
|
|
8
9
|
/**
|
|
9
10
|
* Create string set
|
|
10
11
|
* You can create localized String set, you should provide locale for date and string as a parameters
|
|
@@ -245,6 +246,12 @@ const createBaseStringSet = _ref => {
|
|
|
245
246
|
if (users.length === 2) return `${userNames.join(' and ')} are typing...`;
|
|
246
247
|
return 'Several people are typing...';
|
|
247
248
|
},
|
|
249
|
+
REPLY_FROM_SENDER_TO_RECEIVER: function (reply, parent) {
|
|
250
|
+
let currentUserId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.UNKNOWN_USER_ID;
|
|
251
|
+
const senderNickname = reply.sender.nickname || USER_NO_NAME;
|
|
252
|
+
const receiverNickname = parent.sender.nickname || USER_NO_NAME;
|
|
253
|
+
return `${reply.sender.userId !== currentUserId ? senderNickname : 'You'} replied to ${receiverNickname}`;
|
|
254
|
+
},
|
|
248
255
|
USER_BAR_ME_POSTFIX: ' (You)',
|
|
249
256
|
USER_BAR_OPERATOR: 'Operator',
|
|
250
257
|
REGISTER_AS_OPERATOR: 'Register as operator',
|
|
@@ -258,6 +265,7 @@ const createBaseStringSet = _ref => {
|
|
|
258
265
|
CHANNEL_MESSAGE_EDIT: 'Edit',
|
|
259
266
|
CHANNEL_MESSAGE_SAVE: 'Save',
|
|
260
267
|
CHANNEL_MESSAGE_DELETE: 'Delete',
|
|
268
|
+
CHANNEL_MESSAGE_REPLY: 'Reply',
|
|
261
269
|
CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE: 'Delete message?',
|
|
262
270
|
CHANNEL_MESSAGE_DELETE_CONFIRM_OK: 'Delete',
|
|
263
271
|
CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL: 'Cancel',
|
|
@@ -270,8 +278,28 @@ const createBaseStringSet = _ref => {
|
|
|
270
278
|
CHANNEL_INPUT_PLACEHOLDER_ACTIVE: 'Enter message',
|
|
271
279
|
CHANNEL_INPUT_PLACEHOLDER_DISABLED: 'Chat not available in this channel.',
|
|
272
280
|
CHANNEL_INPUT_PLACEHOLDER_MUTED: "You're muted by the operator.",
|
|
281
|
+
CHANNEL_INPUT_PLACEHOLDER_REPLY: 'Reply to message',
|
|
273
282
|
CHANNEL_INPUT_EDIT_OK: 'Save',
|
|
274
283
|
CHANNEL_INPUT_EDIT_CANCEL: 'Cancel',
|
|
284
|
+
CHANNEL_INPUT_REPLY_PREVIEW_TITLE: user => `Reply to ${user.nickname || USER_NO_NAME}`,
|
|
285
|
+
CHANNEL_INPUT_REPLY_PREVIEW_BODY: message => {
|
|
286
|
+
if (message.isFileMessage()) {
|
|
287
|
+
const fileType = (0, _uikitUtils.getFileTypeFromMessage)(message);
|
|
288
|
+
switch (fileType) {
|
|
289
|
+
case 'image':
|
|
290
|
+
return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';
|
|
291
|
+
case 'video':
|
|
292
|
+
return 'Video';
|
|
293
|
+
case 'audio':
|
|
294
|
+
return 'Audio';
|
|
295
|
+
default:
|
|
296
|
+
return message.name;
|
|
297
|
+
}
|
|
298
|
+
} else if (message.isUserMessage()) {
|
|
299
|
+
return message.message;
|
|
300
|
+
}
|
|
301
|
+
return 'Unknown message type.';
|
|
302
|
+
},
|
|
275
303
|
...(overrides === null || overrides === void 0 ? void 0 : overrides.LABELS)
|
|
276
304
|
},
|
|
277
305
|
FILE_VIEWER: {
|
|
@@ -326,6 +354,7 @@ const createBaseStringSet = _ref => {
|
|
|
326
354
|
LEAVE_CHANNEL_ERROR: "Couldn't leave channel.",
|
|
327
355
|
UNKNOWN_ERROR: 'Something went wrong.',
|
|
328
356
|
GET_CHANNEL_ERROR: "Couldn't retrieve channel.",
|
|
357
|
+
FIND_PARENT_MSG_ERROR: "Couldn't find the original message for this reply.",
|
|
329
358
|
...(overrides === null || overrides === void 0 ? void 0 : overrides.TOAST)
|
|
330
359
|
},
|
|
331
360
|
PROFILE_CARD: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uikitUtils","require","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","getGroupChannelLastMessage","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","getMessagePreviewBody","SEARCH_RESULT_ITEM_TITLE_CAPTION","getMessagePreviewTime","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","TYPING_INDICATOR_TYPINGS","users","NO_NAME","arguments","undefined","userNames","map","u","nickname","join","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_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_EDIT_OK","CHANNEL_INPUT_EDIT_CANCEL","FILE_VIEWER","TITLE","_message$sender","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","UPDATE_MSG_ERROR","TURN_ON_NOTIFICATIONS_ERROR","TURN_OFF_NOTIFICATIONS_ERROR","LEAVE_CHANNEL_ERROR","UNKNOWN_ERROR","GET_CHANNEL_ERROR","PROFILE_CARD","BUTTON_MESSAGE","BODY_LABEL","BODY","user","userId","exports"],"sources":["createBaseStringSet.ts"],"sourcesContent":["import type { Locale } from 'date-fns';\n\nimport type { PartialDeep } from '@sendbird/uikit-utils';\nimport {\n getDateSeparatorFormat,\n getGroupChannelLastMessage,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getOpenChannelParticipants,\n getOpenChannelTitle,\n} from '@sendbird/uikit-utils';\n\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 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) => getGroupChannelLastMessage(channel),\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) => getMessagePreviewBody(message),\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 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 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_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_EDIT_OK: 'Save',\n CHANNEL_INPUT_EDIT_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} need 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 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 ...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_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","getGroupChannelLastMessage","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","getMessagePreviewBody","SEARCH_RESULT_ITEM_TITLE_CAPTION","getMessagePreviewTime","PERMISSION_APP_NAME","PERMISSION_CAMERA","PERMISSION_DEVICE_STORAGE","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","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","fileType","getFileTypeFromMessage","type","toLowerCase","includes","isUserMessage","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","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 getFileTypeFromMessage,\n getGroupChannelLastMessage,\n getGroupChannelPreviewTime,\n getGroupChannelTitle,\n getMessagePreviewBody,\n getMessagePreviewTime,\n getMessagePreviewTitle,\n getMessageTimeFormat,\n getOpenChannelParticipants,\n getOpenChannelTitle,\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 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) => getGroupChannelLastMessage(channel),\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) => getMessagePreviewBody(message),\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 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\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 fileType = getFileTypeFromMessage(message);\n switch (fileType) {\n case 'image':\n return message.type.toLowerCase().includes('gif') ? 'GIF' : 'Photo';\n case 'video':\n return 'Video';\n case 'audio':\n return 'Audio';\n default:\n return message.name;\n }\n } else if (message.isUserMessage()) {\n return message.message;\n }\n return 'Unknown message type.';\n },\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} need 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 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 +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","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 {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} controls />;\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),\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":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AASxC,MAAMQ,wBAAwB,GAAGC,IAAA,IAIK;EAAA,IAJJ;IAChCC,cAAc;IACdC,eAAe;IACfC;EACO,CAAC,GAAAH,IAAA;EACR,OAAO;IACLC,cAAcA,CAAAG,KAAA,EAA2C;MAAA,IAA1C;QAAEX,MAAM;QAAEY,UAAU;QAAEC,MAAM;QAAE,GAAGC;MAAM,CAAC,GAAAH,KAAA;MACrD,oBAAO3B,MAAA,CAAAO,OAAA,CAAAwB,aAAA,CAACP,cAAc,EAAAhB,QAAA,KAAKsB,KAAK;QAAEd,MAAM,EAAEA,MAAO;QAACY,UAAU,EAAEA,UAAW;QAACC,MAAM,EAAEA,MAAO;QAACG,QAAQ;MAAA,GAAG;IACvG,CAAC;IACD,MAAMC,iBAAiBA,CAAAC,KAAA,EAAqB;MAAA,IAApB;QAAEC,GAAG;QAAEC;MAAU,CAAC,GAAAF,KAAA;MACxC,IAAI;QACF,MAAM;UAAEG;QAAK,CAAC,GAAG,MAAMZ,eAAe,CAACa,eAAe,CAAC;UACrDH,GAAG;UACHI,MAAM,EAAE,MAAM;UACdC,SAAS,EAAEJ,SAAS;UACpBK,SAAS,EAAE,IAAAC,gBAAI,EAACP,GAAG;
|
|
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 {...props} source={source} resizeMode={resizeMode} onLoad={onLoad} controls />;\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":[],"sources":["types.ts"],"sourcesContent":["import type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n}\n\n// ---------- MediaService ---------- //\
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type SBUError from '../libs/SBUError';\n\nexport type Unsubscribe = () => void | undefined;\nexport type DownloadedPath = string;\nexport type FilePickerResponse = FileType | null;\n\n/**\n * We are following the file format of react-native FormData\n * @see https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Network/FormData.js#L37-L41\n * */\nexport type FileType = { name: string; uri: string; size: number; type: string };\n\n// ---------- NotificationService ---------- //\nexport interface NotificationServiceInterface {\n hasPushPermission(): Promise<boolean>;\n requestPushPermission(): Promise<boolean>;\n\n getAPNSToken(): Promise<string | null>;\n getFCMToken(): Promise<string | null>;\n onTokenRefresh(handler: (token: string) => void): Unsubscribe;\n}\n\n// ---------- ClipboardService ---------- //\nexport interface ClipboardServiceInterface {\n setString(text: string): void;\n getString(): Promise<string>;\n}\n\n// ---------- FileService ---------- //\nexport interface FileServiceInterface extends FilePickerServiceInterface, FileSystemServiceInterface {}\n\nexport interface OpenResultListener {\n onOpenFailure?: (error: SBUError, originError?: unknown) => void;\n}\nexport interface OpenMediaLibraryOptions extends OpenResultListener {\n selectionLimit?: number;\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport interface OpenCameraOptions extends OpenResultListener {\n cameraType?: 'front' | 'back';\n mediaType?: 'photo' | 'video' | 'all';\n}\nexport type OpenDocumentOptions = OpenResultListener;\nexport interface SaveOptions {\n fileUrl: string;\n fileName: string;\n fileType?: string | null;\n}\n\nexport interface FilePickerServiceInterface {\n openMediaLibrary(options?: OpenMediaLibraryOptions): Promise<null | FilePickerResponse[]>;\n openCamera(options?: OpenCameraOptions): Promise<FilePickerResponse>;\n openDocument(options?: OpenDocumentOptions): Promise<FilePickerResponse>;\n}\n\nexport interface FileSystemServiceInterface {\n // NOTE: On iOS, You can access the downloaded files by providing options below to info.plist\n // - Supports opening documents in place\n // - Application supports iTunes file sharing\n save(options?: SaveOptions): Promise<DownloadedPath | null>;\n}\n\n// ---------- MediaService ---------- //\nexport type VideoProps = {\n source: { uri: string } | number;\n resizeMode?: 'cover' | 'contain' | 'stretch';\n onLoad?: () => void;\n};\n\nexport type GetVideoThumbnailOptions = {\n url: string;\n timeMills?: number;\n quality?: number;\n};\nexport type GetVideoThumbnailResult = Promise<{ path: string } | null>;\n\nexport type CompressImageOptions = {\n /**\n * A uri of image file to compress\n * */\n uri: string;\n\n /**\n * A resize width, apply only to downscale\n * */\n maxWidth?: number;\n\n /**\n * A resize height, apply only to downscale\n * */\n maxHeight?: number;\n\n /**\n * A value in range 0.0 - 1.0 specifying compression level of the result image.\n * 1 means highest quality and 0 the lowest quality.\n * */\n compressionRate?: number;\n};\nexport type CompressImageResult = Promise<{ uri: string; size: number } | null>;\n\nexport interface MediaServiceInterface {\n VideoComponent<Props = {}>(props: VideoProps & Props): JSX.Element;\n getVideoThumbnail(options: GetVideoThumbnailOptions): GetVideoThumbnailResult;\n compressImage(options: CompressImageOptions): CompressImageResult;\n}\n"],"mappings":""}
|
|
@@ -8,7 +8,9 @@ const pubsub = () => {
|
|
|
8
8
|
const subscribers = new Set();
|
|
9
9
|
return {
|
|
10
10
|
publish: data => {
|
|
11
|
-
subscribers.forEach(subscriber =>
|
|
11
|
+
subscribers.forEach(subscriber => {
|
|
12
|
+
setTimeout(() => subscriber(data), 0);
|
|
13
|
+
});
|
|
12
14
|
},
|
|
13
15
|
subscribe: subscriber => {
|
|
14
16
|
subscribers.add(subscriber);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","subscribe","add","delete","_default","exports","default"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => subscriber(data));\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":";;;;;;AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,EAAY;EAEvC,OAAO;IACLC,OAAO,EAAGC,IAAa,IAAK;MAC1BH,WAAW,CAACI,OAAO,CAAEC,UAAU,
|
|
1
|
+
{"version":3,"names":["pubsub","subscribers","Set","publish","data","forEach","subscriber","setTimeout","subscribe","add","delete","_default","exports","default"],"sources":["pubsub.ts"],"sourcesContent":["export type PubSub<T> = {\n publish: (data: T) => void;\n subscribe: (subscriber: (data: T) => void) => () => void;\n};\n\nconst pubsub = <T>(): PubSub<T> => {\n const subscribers = new Set<Function>();\n\n return {\n publish: (data: unknown) => {\n subscribers.forEach((subscriber) => {\n setTimeout(() => subscriber(data), 0);\n });\n },\n subscribe: (subscriber: Function) => {\n subscribers.add(subscriber);\n return () => subscribers.delete(subscriber);\n },\n };\n};\n\nexport default pubsub;\n"],"mappings":";;;;;;AAKA,MAAMA,MAAM,GAAGA,CAAA,KAAoB;EACjC,MAAMC,WAAW,GAAG,IAAIC,GAAG,EAAY;EAEvC,OAAO;IACLC,OAAO,EAAGC,IAAa,IAAK;MAC1BH,WAAW,CAACI,OAAO,CAAEC,UAAU,IAAK;QAClCC,UAAU,CAAC,MAAMD,UAAU,CAACF,IAAI,CAAC,EAAE,CAAC,CAAC;MACvC,CAAC,CAAC;IACJ,CAAC;IACDI,SAAS,EAAGF,UAAoB,IAAK;MACnCL,WAAW,CAACQ,GAAG,CAACH,UAAU,CAAC;MAC3B,OAAO,MAAML,WAAW,CAACS,MAAM,CAACJ,UAAU,CAAC;IAC7C;EACF,CAAC;AACH,CAAC;AAAC,IAAAK,QAAA,GAEaX,MAAM;AAAAY,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|