stream-chat-react-native-core 5.25.0-beta.1 → 5.25.0-beta.2
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/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +16 -13
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +4 -2
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -0
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/emoji-data/compile.js +63 -11
- package/lib/commonjs/emoji-data/compile.js.map +1 -1
- package/lib/commonjs/emoji-data/index.js +9843 -37
- package/lib/commonjs/emoji-data/index.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/es.json +46 -46
- package/lib/commonjs/i18n/fr.json +46 -46
- package/lib/commonjs/i18n/he.json +46 -46
- package/lib/commonjs/i18n/hi.json +46 -46
- package/lib/commonjs/i18n/it.json +46 -46
- package/lib/commonjs/i18n/ja.json +46 -46
- package/lib/commonjs/i18n/ko.json +46 -46
- package/lib/commonjs/i18n/nl.json +46 -46
- package/lib/commonjs/i18n/ru.json +47 -47
- package/lib/commonjs/i18n/tr.json +46 -46
- package/lib/commonjs/index.js +4 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/utils.js +84 -31
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +16 -13
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +4 -2
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -0
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/emoji-data/compile.js +63 -11
- package/lib/module/emoji-data/compile.js.map +1 -1
- package/lib/module/emoji-data/index.js +9843 -37
- package/lib/module/emoji-data/index.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/es.json +46 -46
- package/lib/module/i18n/fr.json +46 -46
- package/lib/module/i18n/he.json +46 -46
- package/lib/module/i18n/hi.json +46 -46
- package/lib/module/i18n/it.json +46 -46
- package/lib/module/i18n/ja.json +46 -46
- package/lib/module/i18n/ko.json +46 -46
- package/lib/module/i18n/nl.json +46 -46
- package/lib/module/i18n/ru.json +47 -47
- package/lib/module/i18n/tr.json +46 -46
- package/lib/module/index.js +4 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/utils.js +84 -31
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +9 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +1 -1
- package/lib/typescript/emoji-data/index.d.ts +9 -0
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/es.json +46 -46
- package/lib/typescript/i18n/fr.json +46 -46
- package/lib/typescript/i18n/he.json +46 -46
- package/lib/typescript/i18n/hi.json +46 -46
- package/lib/typescript/i18n/it.json +46 -46
- package/lib/typescript/i18n/ja.json +46 -46
- package/lib/typescript/i18n/ko.json +46 -46
- package/lib/typescript/i18n/nl.json +46 -46
- package/lib/typescript/i18n/ru.json +47 -47
- package/lib/typescript/i18n/tr.json +46 -46
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/utils/utils.d.ts +9 -4
- package/package.json +3 -2
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -1
- package/src/components/Channel/Channel.tsx +3 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +12 -0
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -0
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +1 -1
- package/src/emoji-data/compile.js +56 -36
- package/src/emoji-data/index.ts +5178 -0
- package/src/i18n/en.json +1 -1
- package/src/i18n/es.json +46 -46
- package/src/i18n/fr.json +46 -46
- package/src/i18n/he.json +46 -46
- package/src/i18n/hi.json +46 -46
- package/src/i18n/it.json +46 -46
- package/src/i18n/ja.json +46 -46
- package/src/i18n/ko.json +46 -46
- package/src/i18n/nl.json +46 -46
- package/src/i18n/ru.json +47 -47
- package/src/i18n/tr.json +46 -46
- package/src/index.ts +1 -1
- package/src/utils/utils.ts +47 -33
- package/src/version.json +1 -1
- package/lib/commonjs/emoji-data/compiled.js +0 -15587
- package/lib/commonjs/emoji-data/compiled.js.map +0 -1
- package/lib/commonjs/emoji-data/emojiNames.js +0 -4913
- package/lib/commonjs/emoji-data/emojiNames.js.map +0 -1
- package/lib/commonjs/emoji-data/emojis.js +0 -13155
- package/lib/commonjs/emoji-data/emojis.js.map +0 -1
- package/lib/module/emoji-data/compiled.js +0 -15587
- package/lib/module/emoji-data/compiled.js.map +0 -1
- package/lib/module/emoji-data/emojiNames.js +0 -4913
- package/lib/module/emoji-data/emojiNames.js.map +0 -1
- package/lib/module/emoji-data/emojis.js +0 -13155
- package/lib/module/emoji-data/emojis.js.map +0 -1
- package/lib/typescript/emoji-data/compiled.d.ts +0 -20
- package/lib/typescript/emoji-data/emojiNames.d.ts +0 -0
- package/lib/typescript/emoji-data/emojis.d.ts +0 -0
- package/src/emoji-data/compiled.ts +0 -8930
- package/src/emoji-data/emojiNames.ts +0 -6960
- package/src/emoji-data/emojis.ts +0 -14893
- package/src/emoji-data/index.js +0 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_emojiRegex","_interopRequireDefault","require","_debounce","_compiled","FileState","Object","freeze","FINISHED","NOT_SUPPORTED","UPLOAD_FAILED","UPLOADED","UPLOADING","exports","ProgressIndicatorTypes","IN_PROGRESS","INACTIVE","RETRY","MessageStatusTypes","FAILED","RECEIVED","SENDING","getIndicatorTypeForFileState","fileState","enableOfflineSupport","_indicatorMap","indicatorMap","_defineProperty2","isBlockedMessage","message","pattern","type","text","test","isBouncedMessage","moderation_details","undefined","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","getCommands","channel","_channel$getConfig","getConfig","commands","getMembers","members","state","values","length","filter","member","map","getWatchers","watchers","_toConsumableArray2","getMembersAndWatchers","users","concat","reduce","acc","cur","id","queryMembers","_ref","_asyncToGenerator2","_regenerator","mark","_callee","query","onReady","_options$limit","limit","response","_users","_args","arguments","wrap","_callee$","_context","prev","next","name","$autocomplete","sent","forEach","push","stop","_x","_x2","_x3","apply","queryMembersDebounced","debounce","leading","trailing","queryUsers","_ref2","_callee2","client","_options$limit2","_options$mentionAllAp","mentionAllAppUsersQuery","_users2","_args2","_callee2$","_context2","_extends2","$ne","userID","$or","_x4","_x5","_x6","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","ACITriggerSettings","_ref3","onMentionSelectItem","dataProvider","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","slice","output","entity","caretPosition","key","_","compiledEmojis","emojiArray","names","some","includes","emoji","emojiLib","skin_variations","tone","index","unicode","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","_user$name","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","isLocalUrl","generateRandomId","Number","Math","random","toString","replace","hasOnlyEmojis","emojiOnlyString","matchAll","EmojiRegex","join","originalTextWithNoSpaces","replaceAll","e","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\nimport EmojiRegex from 'emoji-regex';\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash/debounce';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n CommandResponse,\n FormatMessageResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { MessageType } from '../components/MessageList/hooks/useMessageList';\nimport type { MentionAllAppUsersQuery } from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionComponentType,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport { compiledEmojis, Emoji } from '../emoji-data/compiled';\nimport type { IconProps } from '../icons/utils/base';\nimport type { TableRowJoinedUser } from '../store/types';\nimport type { DefaultStreamChatGenerics, ValueOf } from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NOT_SUPPORTED: 'not_supported',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n INACTIVE: 'inactive';\n NOT_SUPPORTED: 'not_supported';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n INACTIVE: 'inactive',\n NOT_SUPPORTED: 'not_supported',\n RETRY: 'retry',\n});\n\nexport const MessageStatusTypes = {\n FAILED: 'failed',\n RECEIVED: 'received',\n SENDING: 'sending',\n};\n\nexport type FileStateValue = typeof FileState[keyof typeof FileState];\n\ntype Progress = ValueOf<typeof ProgressIndicatorTypes>;\ntype IndicatorStatesMap = Record<ValueOf<typeof FileState>, Progress | null>;\n\nexport const getIndicatorTypeForFileState = (\n fileState: FileStateValue,\n enableOfflineSupport: boolean,\n): Progress | null => {\n const indicatorMap: IndicatorStatesMap = {\n [FileState.UPLOADING]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.IN_PROGRESS,\n // If offline support is disabled, then there is no need\n [FileState.UPLOAD_FAILED]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.RETRY,\n [FileState.NOT_SUPPORTED]: ProgressIndicatorTypes.NOT_SUPPORTED,\n [FileState.UPLOADED]: ProgressIndicatorTypes.INACTIVE,\n [FileState.FINISHED]: ProgressIndicatorTypes.INACTIVE,\n };\n\n return indicatorMap[fileState];\n};\n\n/**\n * Utility to check if the message is a Blocked message.\n * @param message\n * @returns boolean\n */\nexport const isBlockedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics> | TableRowJoinedUser<'messages'>,\n) => {\n // The only indicator for the blocked message is its message type is error and that the message text contains \"Message was blocked by moderation policies\".\n const pattern = /\\bMessage was blocked by moderation policies\\b/;\n return message.type === 'error' && message.text && pattern.test(message.text);\n};\n\n/**\n * Utility to check if the message is a Bounced message.\n * @param message\n * @returns boolean\n */\nexport const isBouncedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => message.type === 'error' && message.moderation_details !== undefined;\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n user: SuggestionUser<StreamChatGenerics> | undefined,\n): user is SuggestionUser<StreamChatGenerics> =>\n (user as SuggestionUser<StreamChatGenerics>) !== undefined;\n\nconst getCommands = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<StreamChatGenerics> & { user: UserResponse<StreamChatGenerics> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<StreamChatGenerics> }),\n );\n};\n\nconst queryMembers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<StreamChatGenerics>;\n\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n '/'?: {\n dataProvider: (\n query: CommandResponse<StreamChatGenerics>['name'],\n text: string,\n onReady?: (\n data: CommandResponse<StreamChatGenerics>[],\n q: CommandResponse<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<StreamChatGenerics>[];\n output: (entity: CommandResponse<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n ':'?: {\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[];\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n '@'?: {\n callback: (item: SuggestionUser<StreamChatGenerics>) => void;\n dataProvider: (\n query: SuggestionUser<StreamChatGenerics>['name'],\n _: string,\n onReady?: (\n data: SuggestionUser<StreamChatGenerics>[],\n q: SuggestionUser<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n ) => SuggestionUser<StreamChatGenerics>[] | Promise<void> | void;\n output: (entity: SuggestionUser<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n};\n\nexport type ACITriggerSettingsParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n channel: Channel<StreamChatGenerics>;\n client: StreamChat<StreamChatGenerics>;\n onMentionSelectItem: (item: SuggestionUser<StreamChatGenerics>) => void;\n};\n\nexport type QueryUsersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<StreamChatGenerics>): TriggerSettings<StreamChatGenerics> => ({\n '/': {\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n type: 'command',\n },\n ':': {\n dataProvider: (query, _, onReady) => {\n if (!query) return [];\n\n const result = compiledEmojis.emojiArray.reduce((acc, cur) => {\n if (acc.length >= 10) return acc;\n\n if (cur.names.some((name) => name.includes(query))) {\n const emoji = compiledEmojis.emojiLib[cur.name];\n // Since there can be no emojiLib for the current name we need to check for it being undefined\n if (emoji?.skin_variations) {\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skin_variations: undefined,\n });\n emoji.skin_variations.forEach((tone, index) =>\n acc.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skin_variations: undefined,\n unicode: tone,\n }),\n );\n } else if (emoji) {\n acc.push(emoji);\n }\n }\n\n return acc;\n }, [] as Emoji[]);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n type: 'emoji',\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (queryUsersDebounced as DebouncedFunc<QueryUsersFunction<StreamChatGenerics>>)(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (queryMembersDebounced as DebouncedFunc<QueryMembersFunction<StreamChatGenerics>>)(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n type: 'mention',\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const isLocalUrl = (url: string) => url.indexOf('http') !== 0;\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n/*\n * Returns true if the message text only contains emojis\n */\nexport const hasOnlyEmojis = (text: string) => {\n try {\n // get all emojis in the string\n const emojiOnlyString = [...text.matchAll(EmojiRegex())].join('');\n // remove all spaces from original text\n const originalTextWithNoSpaces = text.replaceAll(/\\s/g, '');\n // check if both are the same\n return (\n emojiOnlyString.length !== 0 && emojiOnlyString.length === originalTextWithNoSpaces.length\n );\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Stringifies a message object\n * @param {FormatMessageResponse<StreamChatGenerics>} message - the message object to be stringified\n * @returns {string} The stringified message\n */\nconst stringifyMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n deleted_at,\n latest_reactions,\n reply_count,\n status,\n type,\n updated_at,\n}: FormatMessageResponse<StreamChatGenerics>): string =>\n `${type}${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${reply_count}${status}${updated_at?.toISOString?.() || updated_at}`;\n\n/**\n * Reduces a list of messages to strings that are used in useEffect & useMemo\n * @param {messages} messages - the array of messages to be compared\n * @returns {string} The mapped message string\n */\nexport const reduceMessagesToString = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n messages: FormatMessageResponse<StreamChatGenerics>[],\n): string => messages.map(stringifyMessage).join();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_emojiRegex","_interopRequireDefault","require","_debounce","_emojiData","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","FileState","freeze","FINISHED","NOT_SUPPORTED","UPLOAD_FAILED","UPLOADED","UPLOADING","exports","ProgressIndicatorTypes","IN_PROGRESS","INACTIVE","RETRY","MessageStatusTypes","FAILED","RECEIVED","SENDING","getIndicatorTypeForFileState","fileState","enableOfflineSupport","_indicatorMap","indicatorMap","_defineProperty2","isBlockedMessage","message","pattern","type","text","isBouncedMessage","moderation_details","undefined","defaultAutoCompleteSuggestionsLimit","defaultMentionAllAppUsersQuery","filters","options","sort","isUserResponse","user","getCommands","channel","_channel$getConfig","getConfig","commands","getMembers","members","state","values","filter","member","map","getWatchers","watchers","_toConsumableArray2","getMembersAndWatchers","users","concat","reduce","acc","cur","id","queryMembers","_ref","_asyncToGenerator2","_regenerator","mark","_callee","query","onReady","_options$limit","limit","response","_users","_args","arguments","wrap","_callee$","_context","prev","$autocomplete","sent","forEach","push","stop","_x","_x2","_x3","apply","queryMembersDebounced","debounce","leading","trailing","queryUsers","_ref2","_callee2","client","_options$limit2","_options$mentionAllAp","mentionAllAppUsersQuery","_users2","_args2","_callee2$","_context2","_extends2","$ne","userID","$or","_x4","_x5","_x6","queryUsersDebounced","isCommandTrigger","trigger","isEmojiTrigger","isMentionTrigger","defaultEmojiSearchIndex","search","results","_loop","emoji","v","names","some","includes","skins","tone","index","unicode","_iterator","compiledEmojis","_step","_ret","_typeof2","ACITriggerSettings","_ref3","emojiSearchIndex","onMentionSelectItem","dataProvider","indexOf","_options$limit3","selectedCommands","command","_command$name","a","b","_a$name","_b$name","nameA","toLowerCase","nameB","result","output","entity","caretPosition","key","_dataProvider","_callee3","_","_yield$emojiSearchInd","emojis","_callee3$","_context3","abrupt","t0","t1","_x7","_x8","_x9","callback","item","mentionAllAppUsersEnabled","data","matchingUsers","_user$name","makeImageCompatibleUrl","url","trim","getUrlWithoutParams","indexOfQuestion","substring","isLocalUrl","generateRandomId","Number","Math","random","replace","hasOnlyEmojis","emojiOnlyString","matchAll","EmojiRegex","join","originalTextWithNoSpaces","replaceAll","e","stringifyMessage","_ref4","deleted_at","latest_reactions","reply_count","status","updated_at","_ref5","toISOString","reduceMessagesToString","messages"],"sources":["utils.ts"],"sourcesContent":["import type React from 'react';\n\nimport EmojiRegex from 'emoji-regex';\nimport type { DebouncedFunc } from 'lodash';\nimport debounce from 'lodash/debounce';\nimport type {\n Channel,\n ChannelMemberAPIResponse,\n ChannelMemberResponse,\n CommandResponse,\n FormatMessageResponse,\n StreamChat,\n UserResponse,\n} from 'stream-chat';\n\nimport type { MessageType } from '../components/MessageList/hooks/useMessageList';\nimport type {\n EmojiSearchIndex,\n MentionAllAppUsersQuery,\n} from '../contexts/messageInputContext/MessageInputContext';\nimport type {\n SuggestionCommand,\n SuggestionComponentType,\n SuggestionUser,\n} from '../contexts/suggestionsContext/SuggestionsContext';\nimport { compiledEmojis, Emoji } from '../emoji-data';\nimport type { IconProps } from '../icons/utils/base';\nimport type { TableRowJoinedUser } from '../store/types';\nimport type { DefaultStreamChatGenerics, ValueOf } from '../types/types';\n\nexport type ReactionData = {\n Icon: React.FC<IconProps>;\n type: string;\n};\n\nexport const FileState = Object.freeze({\n // finished and uploaded state are the same thing. First is set on frontend,\n // while later is set on backend side\n // TODO: Unify both of them\n FINISHED: 'finished',\n NOT_SUPPORTED: 'not_supported',\n UPLOAD_FAILED: 'upload_failed',\n UPLOADED: 'uploaded',\n UPLOADING: 'uploading',\n});\n\nexport const ProgressIndicatorTypes: {\n IN_PROGRESS: 'in_progress';\n INACTIVE: 'inactive';\n NOT_SUPPORTED: 'not_supported';\n RETRY: 'retry';\n} = Object.freeze({\n IN_PROGRESS: 'in_progress',\n INACTIVE: 'inactive',\n NOT_SUPPORTED: 'not_supported',\n RETRY: 'retry',\n});\n\nexport const MessageStatusTypes = {\n FAILED: 'failed',\n RECEIVED: 'received',\n SENDING: 'sending',\n};\n\nexport type FileStateValue = typeof FileState[keyof typeof FileState];\n\ntype Progress = ValueOf<typeof ProgressIndicatorTypes>;\ntype IndicatorStatesMap = Record<ValueOf<typeof FileState>, Progress | null>;\n\nexport const getIndicatorTypeForFileState = (\n fileState: FileStateValue,\n enableOfflineSupport: boolean,\n): Progress | null => {\n const indicatorMap: IndicatorStatesMap = {\n [FileState.UPLOADING]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.IN_PROGRESS,\n // If offline support is disabled, then there is no need\n [FileState.UPLOAD_FAILED]: enableOfflineSupport\n ? ProgressIndicatorTypes.INACTIVE\n : ProgressIndicatorTypes.RETRY,\n [FileState.NOT_SUPPORTED]: ProgressIndicatorTypes.NOT_SUPPORTED,\n [FileState.UPLOADED]: ProgressIndicatorTypes.INACTIVE,\n [FileState.FINISHED]: ProgressIndicatorTypes.INACTIVE,\n };\n\n return indicatorMap[fileState];\n};\n\n/**\n * Utility to check if the message is a Blocked message.\n * @param message\n * @returns boolean\n */\nexport const isBlockedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics> | TableRowJoinedUser<'messages'>,\n) => {\n // The only indicator for the blocked message is its message type is error and that the message text contains \"Message was blocked by moderation policies\".\n const pattern = /\\bMessage was blocked by moderation policies\\b/;\n return message.type === 'error' && message.text && pattern.test(message.text);\n};\n\n/**\n * Utility to check if the message is a Bounced message.\n * @param message\n * @returns boolean\n */\nexport const isBouncedMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => message.type === 'error' && message.moderation_details !== undefined;\n\nconst defaultAutoCompleteSuggestionsLimit = 10;\nconst defaultMentionAllAppUsersQuery = {\n filters: {},\n options: {},\n sort: {},\n};\n\nconst isUserResponse = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n user: SuggestionUser<StreamChatGenerics> | undefined,\n): user is SuggestionUser<StreamChatGenerics> =>\n (user as SuggestionUser<StreamChatGenerics>) !== undefined;\n\nconst getCommands = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => channel.getConfig()?.commands || [];\n\nconst getMembers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const members = channel.state.members;\n\n return Object.values(members).length\n ? (\n Object.values(members).filter((member) => member.user) as Array<\n ChannelMemberResponse<StreamChatGenerics> & { user: UserResponse<StreamChatGenerics> }\n >\n ).map((member) => member.user)\n : [];\n};\n\nconst getWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const watchers = channel.state.watchers;\n return Object.values(watchers).length ? [...Object.values(watchers)] : [];\n};\n\nconst getMembersAndWatchers = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n) => {\n const users = [...getMembers(channel), ...getWatchers(channel)];\n\n return Object.values(\n users.reduce((acc, cur) => {\n if (!acc[cur.id]) {\n acc[cur.id] = cur;\n }\n\n return acc;\n }, {} as { [key: string]: SuggestionUser<StreamChatGenerics> }),\n );\n};\n\nconst queryMembers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n } = {},\n): Promise<void> => {\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n\n if (typeof query === 'string') {\n const response = (await (channel as unknown as Channel).queryMembers(\n {\n name: { $autocomplete: query },\n },\n {},\n { limit },\n )) as ChannelMemberAPIResponse<StreamChatGenerics>;\n\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.members.forEach((member) => isUserResponse(member.user) && users.push(member.user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryMembersDebounced = debounce(queryMembers, 200, {\n leading: false,\n trailing: true,\n});\n\nconst queryUsers = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n } = {},\n): Promise<void> => {\n if (typeof query === 'string') {\n const {\n limit = defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersQuery = defaultMentionAllAppUsersQuery,\n } = options;\n const filters = {\n id: { $ne: client.userID },\n ...mentionAllAppUsersQuery?.filters,\n };\n\n if (query) {\n // @ts-ignore\n filters.$or = [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }];\n }\n\n const response = await client.queryUsers(\n // @ts-ignore\n filters,\n { id: 1, ...mentionAllAppUsersQuery?.sort },\n { limit, ...mentionAllAppUsersQuery?.options },\n );\n const users: SuggestionUser<StreamChatGenerics>[] = [];\n response.users.forEach((user) => isUserResponse(user) && users.push(user));\n if (onReady && users) {\n onReady(users);\n }\n }\n};\n\nexport const queryUsersDebounced = debounce(queryUsers, 200, {\n leading: false,\n trailing: true,\n});\n\nexport const isCommandTrigger = (trigger: Trigger): trigger is '/' => trigger === '/';\n\nexport const isEmojiTrigger = (trigger: Trigger): trigger is ':' => trigger === ':';\n\nexport const isMentionTrigger = (trigger: Trigger): trigger is '@' => trigger === '@';\n\nexport type Trigger = '/' | '@' | ':';\n\nexport type TriggerSettings<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n '/'?: {\n dataProvider: (\n query: CommandResponse<StreamChatGenerics>['name'],\n text: string,\n onReady?: (\n data: CommandResponse<StreamChatGenerics>[],\n q: CommandResponse<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n },\n ) => SuggestionCommand<StreamChatGenerics>[];\n output: (entity: CommandResponse<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n ':'?: {\n dataProvider: (\n query: Emoji['name'],\n _: string,\n onReady?: (data: Emoji[], q: Emoji['name']) => void,\n ) => Emoji[] | Promise<Emoji[]>;\n output: (entity: Emoji) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n '@'?: {\n callback: (item: SuggestionUser<StreamChatGenerics>) => void;\n dataProvider: (\n query: SuggestionUser<StreamChatGenerics>['name'],\n _: string,\n onReady?: (\n data: SuggestionUser<StreamChatGenerics>[],\n q: SuggestionUser<StreamChatGenerics>['name'],\n ) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersEnabled?: boolean;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n ) => SuggestionUser<StreamChatGenerics>[] | Promise<void> | void;\n output: (entity: SuggestionUser<StreamChatGenerics>) => {\n caretPosition: string;\n key: string;\n text: string;\n };\n type: SuggestionComponentType;\n };\n};\n\nexport type ACITriggerSettingsParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n channel: Channel<StreamChatGenerics>;\n client: StreamChat<StreamChatGenerics>;\n onMentionSelectItem: (item: SuggestionUser<StreamChatGenerics>) => void;\n emojiSearchIndex?: EmojiSearchIndex;\n};\n\nexport type QueryUsersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n client: StreamChat<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n },\n) => Promise<void>;\n\nexport type QueryMembersFunction<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = (\n channel: Channel<StreamChatGenerics>,\n query: SuggestionUser<StreamChatGenerics>['name'],\n onReady?: (users: SuggestionUser<StreamChatGenerics>[]) => void,\n options?: {\n limit?: number;\n },\n) => Promise<void>;\n\n/**\n * Default emoji search index for auto complete text input\n */\nexport const defaultEmojiSearchIndex: EmojiSearchIndex = {\n search: (query) => {\n const results = [];\n\n for (const emoji of compiledEmojis) {\n if (results.length >= 10) return results;\n if (emoji.names.some((name) => name.includes(query))) {\n // Aggregate skins as different toned emojis - if skins are present\n if (emoji.skins) {\n results.push({\n ...emoji,\n name: `${emoji.name}-tone-1`,\n skins: undefined,\n });\n emoji.skins.forEach((tone, index) =>\n results.push({\n ...emoji,\n name: `${emoji.name}-tone-${index + 2}`,\n skins: undefined,\n unicode: tone,\n }),\n );\n } else {\n results.push(emoji);\n }\n }\n }\n\n return results;\n },\n};\n\n/**\n * ACI = AutoCompleteInput\n *\n * DataProvider accepts `onReady` function, which will execute once the data is ready.\n * Another approach would have been to simply return the data from dataProvider and let the\n * component await for it and then execute the required logic. We are going for callback instead\n * of async-await since we have debounce function in dataProvider. Which will delay the execution\n * of api call on trailing end of debounce (lets call it a1) but will return with result of\n * previous call without waiting for a1. So in this case, we want to execute onReady, when trailing\n * end of debounce executes.\n */\nexport const ACITriggerSettings = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n client,\n emojiSearchIndex,\n onMentionSelectItem,\n}: ACITriggerSettingsParams<StreamChatGenerics>): TriggerSettings<StreamChatGenerics> => ({\n '/': {\n dataProvider: (query, text, onReady, options = {}) => {\n if (text.indexOf('/') !== 0) return [];\n\n const { limit = defaultAutoCompleteSuggestionsLimit } = options;\n const selectedCommands = !query\n ? getCommands(channel)\n : getCommands(channel).filter((command) => query && command.name?.indexOf(query) !== -1);\n\n // sort alphabetically unless the you're matching the first char\n selectedCommands.sort((a, b) => {\n let nameA = a.name?.toLowerCase() || '';\n let nameB = b.name?.toLowerCase() || '';\n if (query && nameA.indexOf(query) === 0) {\n nameA = `0${nameA}`;\n }\n if (query && nameB.indexOf(query) === 0) {\n nameB = `0${nameB}`;\n }\n if (nameA < nameB) return -1;\n if (nameA > nameB) return 1;\n\n return 0;\n });\n\n const result = selectedCommands.slice(0, limit);\n\n if (onReady) {\n onReady(result, query);\n }\n\n return result;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: `${entity.name}`,\n text: `/${entity.name}`,\n }),\n type: 'command',\n },\n ':': {\n dataProvider: async (query, _, onReady) => {\n if (!query) return [];\n\n const emojis = (await emojiSearchIndex?.search(query)) ?? [];\n\n if (onReady) {\n onReady(emojis, query);\n }\n\n return emojis;\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.name,\n text: entity.unicode,\n }),\n type: 'emoji',\n },\n '@': {\n callback: (item) => {\n onMentionSelectItem(item);\n },\n dataProvider: (\n query,\n _,\n onReady,\n options = {\n limit: defaultAutoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled: false,\n mentionAllAppUsersQuery: defaultMentionAllAppUsersQuery,\n },\n ) => {\n if (options?.mentionAllAppUsersEnabled) {\n return (queryUsersDebounced as DebouncedFunc<QueryUsersFunction<StreamChatGenerics>>)(\n client,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n mentionAllAppUsersQuery: options.mentionAllAppUsersQuery,\n },\n );\n }\n\n /**\n * By default, we return maximum 100 members via queryChannels api call.\n * Thus it is safe to assume, that if number of members in channel.state is < 100,\n * then all the members are already available on client side and we don't need to\n * make any api call to queryMembers endpoint.\n */\n if (!query || Object.values(channel.state.members).length < 100) {\n const users = getMembersAndWatchers(channel);\n\n const matchingUsers = users.filter((user) => {\n if (!query) return true;\n if (user.name?.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n if (user.id.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n return true;\n }\n return false;\n });\n\n const data = matchingUsers.slice(0, options?.limit);\n\n if (onReady) {\n onReady(data, query);\n }\n\n return data;\n }\n\n return (queryMembersDebounced as DebouncedFunc<QueryMembersFunction<StreamChatGenerics>>)(\n channel,\n query,\n (data) => {\n if (onReady) {\n onReady(data, query);\n }\n },\n {\n limit: options.limit,\n },\n );\n },\n output: (entity) => ({\n caretPosition: 'next',\n key: entity.id,\n text: `@${entity.name || entity.id}`,\n }),\n type: 'mention',\n },\n});\n\nexport const makeImageCompatibleUrl = (url: string) =>\n (url.indexOf('//') === 0 ? `https:${url}` : url).trim();\n\nexport const getUrlWithoutParams = (url?: string) => {\n if (!url) return url;\n\n const indexOfQuestion = url.indexOf('?');\n if (indexOfQuestion === -1) return url;\n\n return url.substring(0, url.indexOf('?'));\n};\n\nexport const isLocalUrl = (url: string) => url.indexOf('http') !== 0;\n\nexport const generateRandomId = (a = ''): string =>\n a\n ? /* eslint-disable no-bitwise */\n ((Number(a) ^ (Math.random() * 16)) >> (Number(a) / 4)).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateRandomId);\n\n/*\n * Returns true if the message text only contains emojis\n */\nexport const hasOnlyEmojis = (text: string) => {\n try {\n // get all emojis in the string\n const emojiOnlyString = [...text.matchAll(EmojiRegex())].join('');\n // remove all spaces from original text\n const originalTextWithNoSpaces = text.replaceAll(/\\s/g, '');\n // check if both are the same\n return (\n emojiOnlyString.length !== 0 && emojiOnlyString.length === originalTextWithNoSpaces.length\n );\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Stringifies a message object\n * @param {FormatMessageResponse<StreamChatGenerics>} message - the message object to be stringified\n * @returns {string} The stringified message\n */\nconst stringifyMessage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n deleted_at,\n latest_reactions,\n reply_count,\n status,\n type,\n updated_at,\n}: FormatMessageResponse<StreamChatGenerics>): string =>\n `${type}${deleted_at}${\n latest_reactions ? latest_reactions.map(({ type }) => type).join() : ''\n }${reply_count}${status}${updated_at?.toISOString?.() || updated_at}`;\n\n/**\n * Reduces a list of messages to strings that are used in useEffect & useMemo\n * @param {messages} messages - the array of messages to be compared\n * @returns {string} The mapped message string\n */\nexport const reduceMessagesToString = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n messages: FormatMessageResponse<StreamChatGenerics>[],\n): string => messages.map(stringifyMessage).join();\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_throttle","_interopRequireDefault","_ChannelContext","_MessageInputContext","_SuggestionsContext","_ThemeContext","_TranslationContext","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","_props$cooldownActive","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","useRef","selectionEnd","_useState","useState","_useState2","_slicedToArray2","textHeight","setTextHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","messageInput","handleChange","newText","fromUpdate","arguments","undefined","handleSuggestionsThrottled","useEffect","startTracking","trigger","triggerSetting","current","type","stopTracking","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","_ref","query","_triggerSetting","_triggerSetting2","wrap","_callee$","_context","prev","next","isMentionTrigger","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","isCommandTrigger","stop","_x","apply","handleSelectionChange","_ref3","end","nativeEvent","selection","_ref4","newTokenString","isSuggestionCommand","output","isEmojiTrigger","isSuggestionEmoji","isSuggestionUser","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","_ref5","_callee2","actualToken","_callee2$","_context2","abrupt","trim","_x2","handleMentions","_ref6","tokenMatch","lastToken","handleMentionsTrigger","keys","find","handleEmojis","_ref7","handleEmojisTrigger","handleSuggestions","_ref8","_callee3","mentionTokenMatch","emojiTokenMatch","_callee3$","_context3","test","sent","match","_x3","placeholderText","throttle","leading","createElement","TextInput","_extends2","autoFocus","maxLength","multiline","onChangeText","onContentSizeChange","_ref9","height","contentSize","onSelectionChange","placeholder","placeholderTextColor","ref","style","color","maxHeight","textAlign","I18nManager","isRTL","testID","value","__self","__source","fileName","lineNumber","columnNumber","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","_useChannelContext","useChannelContext","_useMessageInputConte","useMessageInputContext","_useSuggestionsContex","useSuggestionsContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["AutoCompleteInput.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n autoFocus={giphyActive}\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_throttle","_interopRequireDefault","_ChannelContext","_MessageInputContext","_SuggestionsContext","_ThemeContext","_TranslationContext","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","_props$cooldownActive","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","useRef","selectionEnd","_useState","useState","_useState2","_slicedToArray2","textHeight","setTextHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","grey","messageInput","handleChange","newText","fromUpdate","arguments","undefined","handleSuggestionsThrottled","useEffect","startTracking","trigger","triggerSetting","current","type","stopTracking","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","_ref","query","_triggerSetting","_triggerSetting2","wrap","_callee$","_context","prev","next","isMentionTrigger","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","isCommandTrigger","stop","_x","apply","handleSelectionChange","_ref3","end","nativeEvent","selection","_ref4","newTokenString","isSuggestionCommand","output","isEmojiTrigger","isSuggestionEmoji","isSuggestionUser","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","_ref5","_callee2","actualToken","_callee2$","_context2","abrupt","trim","_x2","handleMentions","_ref6","tokenMatch","lastToken","handleMentionsTrigger","keys","find","handleEmojis","_ref7","handleEmojisTrigger","handleSuggestions","_ref8","_callee3","mentionTokenMatch","emojiTokenMatch","_callee3$","_context3","test","sent","match","_x3","placeholderText","throttle","leading","createElement","TextInput","_extends2","autoFocus","maxLength","multiline","onChangeText","onContentSizeChange","_ref9","height","contentSize","onSelectionChange","placeholder","placeholderTextColor","ref","style","color","maxHeight","textAlign","I18nManager","isRTL","testID","value","__self","__source","fileName","lineNumber","columnNumber","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","_useChannelContext","useChannelContext","_useMessageInputConte","useMessageInputContext","_useSuggestionsContex","useSuggestionsContext","_useTranslationContex","useTranslationContext","exports","displayName"],"sources":["AutoCompleteInput.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n autoFocus={giphyActive}\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AutoCompleteSuggestionCommandIcon","_ThemeContext","_AtMentions","_Avatar","_this","_jsxFileName","styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","AutoCompleteSuggestionItemWithContext","_ref","itemProps","triggerType","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey","_useTheme$theme$messa","messageInput","suggestions","_useTheme$theme$messa2","command","argsStyle","commandContainer","_useTheme$theme$messa3","emoji","emojiContainer","_useTheme$theme$messa4","mention","avatarSize","mentionContainer","nameStyle","_ref2","id","image","online","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Avatar","size","Text","color","testID","AtMentions","pathFill","_ref3","unicode","_ref4","AutoCompleteSuggestionCommandIcon","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","_extends2","exports","displayName"],"sources":["AutoCompleteSuggestionItem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { AutoCompleteSuggestionCommandIcon } from './AutoCompleteSuggestionCommandIcon';\n\nimport type {\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport { AtMentions } from '../../icons/AtMentions';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { Avatar } from '../Avatar/Avatar';\n\nexport type AutoCompleteSuggestionItemPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'triggerType'> & {\n itemProps: Suggestion<StreamChatGenerics>;\n};\n\nconst styles = StyleSheet.create({\n args: {\n fontSize: 14,\n },\n column: {\n flex: 1,\n justifyContent: 'space-evenly',\n paddingLeft: 8,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n name: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingBottom: 2,\n },\n tag: {\n fontSize: 12,\n fontWeight: '600',\n },\n text: {\n fontSize: 14,\n },\n title: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 8,\n },\n});\n\nconst AutoCompleteSuggestionItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n itemProps,\n triggerType,\n}: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { accent_blue, black, grey },\n messageInput: {\n suggestions: {\n command: { args: argsStyle, container: commandContainer, title },\n emoji: { container: emojiContainer, text },\n mention: { avatarSize, column, container: mentionContainer, name: nameStyle },\n },\n },\n },\n } = useTheme();\n\n if (triggerType === 'mention') {\n const { id, image, name, online } = itemProps as SuggestionUser<StreamChatGenerics>;\n return (\n <View style={[styles.container, mentionContainer]}>\n <Avatar image={image} name={name} online={online} size={avatarSize} />\n <View style={[styles.column, column]}>\n <Text style={[styles.name, { color: black }, nameStyle]} testID='mentions-item-name'>\n {name || id}\n </Text>\n </View>\n <AtMentions pathFill={accent_blue} />\n </View>\n );\n } else if (triggerType === 'emoji') {\n const { name, unicode } = itemProps as Emoji;\n return (\n <View style={[styles.container, emojiContainer]}>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-unicode'>\n {unicode}\n </Text>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-name'>\n {` ${name}`}\n </Text>\n </View>\n );\n } else if (triggerType === 'command') {\n const { args, name } = itemProps as SuggestionCommand<StreamChatGenerics>;\n return (\n <View style={[styles.container, commandContainer]}>\n <AutoCompleteSuggestionCommandIcon name={name} />\n <Text style={[styles.title, { color: black }, title]} testID='commands-item-title'>\n {(name || '').replace(/^\\w/, (char) => char.toUpperCase())}\n </Text>\n <Text style={[styles.args, { color: grey }, argsStyle]} testID='commands-item-args'>\n {`/${name} ${args}`}\n </Text>\n </View>\n );\n } else {\n return null;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n) => {\n const { itemProps: prevItemProps, triggerType: prevType } = prevProps;\n const { itemProps: nextItemProps, triggerType: nextType } = nextProps;\n const itemPropsEqual = prevItemProps === nextItemProps;\n if (!itemPropsEqual) return false;\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionItem = React.memo(\n AutoCompleteSuggestionItemWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionItemWithContext;\n\nexport type AutoCompleteSuggestionItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>;\n\nexport const AutoCompleteSuggestionItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionItemProps<StreamChatGenerics>,\n) => <MemoizedAutoCompleteSuggestionItem {...props} />;\n\nAutoCompleteSuggestionItem.displayName =\n 'AutoCompleteSuggestionItem{messageInput{suggestions{Item}}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AutoCompleteSuggestionCommandIcon","_ThemeContext","_AtMentions","_Avatar","_this","_jsxFileName","styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","AutoCompleteSuggestionItemWithContext","_ref","itemProps","triggerType","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey","_useTheme$theme$messa","messageInput","suggestions","_useTheme$theme$messa2","command","argsStyle","commandContainer","_useTheme$theme$messa3","emoji","emojiContainer","_useTheme$theme$messa4","mention","avatarSize","mentionContainer","nameStyle","_ref2","id","image","online","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Avatar","size","Text","color","testID","AtMentions","pathFill","_ref3","unicode","_ref4","AutoCompleteSuggestionCommandIcon","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","_extends2","exports","displayName"],"sources":["AutoCompleteSuggestionItem.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { AutoCompleteSuggestionCommandIcon } from './AutoCompleteSuggestionCommandIcon';\n\nimport type {\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { Emoji } from '../../emoji-data';\nimport { AtMentions } from '../../icons/AtMentions';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { Avatar } from '../Avatar/Avatar';\n\nexport type AutoCompleteSuggestionItemPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'triggerType'> & {\n itemProps: Suggestion<StreamChatGenerics>;\n};\n\nconst styles = StyleSheet.create({\n args: {\n fontSize: 14,\n },\n column: {\n flex: 1,\n justifyContent: 'space-evenly',\n paddingLeft: 8,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n name: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingBottom: 2,\n },\n tag: {\n fontSize: 12,\n fontWeight: '600',\n },\n text: {\n fontSize: 14,\n },\n title: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 8,\n },\n});\n\nconst AutoCompleteSuggestionItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n itemProps,\n triggerType,\n}: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { accent_blue, black, grey },\n messageInput: {\n suggestions: {\n command: { args: argsStyle, container: commandContainer, title },\n emoji: { container: emojiContainer, text },\n mention: { avatarSize, column, container: mentionContainer, name: nameStyle },\n },\n },\n },\n } = useTheme();\n\n if (triggerType === 'mention') {\n const { id, image, name, online } = itemProps as SuggestionUser<StreamChatGenerics>;\n return (\n <View style={[styles.container, mentionContainer]}>\n <Avatar image={image} name={name} online={online} size={avatarSize} />\n <View style={[styles.column, column]}>\n <Text style={[styles.name, { color: black }, nameStyle]} testID='mentions-item-name'>\n {name || id}\n </Text>\n </View>\n <AtMentions pathFill={accent_blue} />\n </View>\n );\n } else if (triggerType === 'emoji') {\n const { name, unicode } = itemProps as Emoji;\n return (\n <View style={[styles.container, emojiContainer]}>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-unicode'>\n {unicode}\n </Text>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-name'>\n {` ${name}`}\n </Text>\n </View>\n );\n } else if (triggerType === 'command') {\n const { args, name } = itemProps as SuggestionCommand<StreamChatGenerics>;\n return (\n <View style={[styles.container, commandContainer]}>\n <AutoCompleteSuggestionCommandIcon name={name} />\n <Text style={[styles.title, { color: black }, title]} testID='commands-item-title'>\n {(name || '').replace(/^\\w/, (char) => char.toUpperCase())}\n </Text>\n <Text style={[styles.args, { color: grey }, argsStyle]} testID='commands-item-args'>\n {`/${name} ${args}`}\n </Text>\n </View>\n );\n } else {\n return null;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n) => {\n const { itemProps: prevItemProps, triggerType: prevType } = prevProps;\n const { itemProps: nextItemProps, triggerType: nextType } = nextProps;\n const itemPropsEqual = prevItemProps === nextItemProps;\n if (!itemPropsEqual) return false;\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionItem = React.memo(\n AutoCompleteSuggestionItemWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionItemWithContext;\n\nexport type AutoCompleteSuggestionItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>;\n\nexport const AutoCompleteSuggestionItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionItemProps<StreamChatGenerics>,\n) => <MemoizedAutoCompleteSuggestionItem {...props} />;\n\nAutoCompleteSuggestionItem.displayName =\n 'AutoCompleteSuggestionItem{messageInput{suggestions{Item}}}';\n"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ var _this = this,
|
|
|
17
17
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx";
|
|
18
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
-
var AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT =
|
|
20
|
+
var AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 50;
|
|
21
21
|
var SuggestionsItem = function SuggestionsItem(props) {
|
|
22
22
|
var children = props.children,
|
|
23
23
|
propsStyle = props.style,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_SuggestionsContext","_ThemeContext","_native","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT","SuggestionsItem","props","children","propsStyle","style","pressableProps","_objectWithoutProperties2","_ref","pressed","opacity","createElement","Pressable","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","_useState","useState","_useState2","_slicedToArray2","itemHeight","setItemHeight","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme","theme","white","colors","_useTheme$theme$messa","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","flatlistHeight","useMemo","totalItemHeight","length","renderItem","_ref2","onLayout","event","nativeEvent","layout","height","onPress","itemProps","View","styles","backgroundColor","FlatList","keyboardShouldPersistTaps","keyExtractor","index","name","isSuggestionUser","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext","StyleSheet","create","borderRadius","elevation","marginHorizontal","marginVertical","shadowOffset","width","shadowOpacity"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n LayoutChangeEvent,\n Pressable,\n PressableProps,\n PressableStateCallbackType,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<PressableProps> = (props) => {\n const { children, style: propsStyle, ...pressableProps } = props;\n\n const style = ({ pressed }: PressableStateCallbackType) => [\n propsStyle as ViewStyle,\n { opacity: pressed ? 0.2 : 1 },\n ];\n\n return (\n <Pressable {...pressableProps} style={style}>\n {children}\n </Pressable>\n );\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const [itemHeight, setItemHeight] = useState<number>(0);\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n colors: { white },\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const flatlistHeight = useMemo(() => {\n let totalItemHeight;\n if (triggerType === 'emoji') {\n totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;\n } else {\n totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;\n }\n\n return triggerType === 'emoji' || triggerType === 'command'\n ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT\n : totalItemHeight;\n }, [itemHeight, data.length]);\n\n const renderItem = ({ item }: { item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'command':\n case 'mention':\n case 'emoji':\n return (\n <SuggestionsItem\n onLayout={(event: LayoutChangeEvent) => setItemHeight(event.nativeEvent.layout.height)}\n onPress={() => {\n onSelect(item);\n }}\n style={itemStyle}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <View style={[styles.container, { backgroundColor: white, height: flatlistHeight }]}>\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 8,\n elevation: 3,\n marginHorizontal: 8,\n marginVertical: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_SuggestionsContext","_ThemeContext","_native","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT","SuggestionsItem","props","children","propsStyle","style","pressableProps","_objectWithoutProperties2","_ref","pressed","opacity","createElement","Pressable","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","_useState","useState","_useState2","_slicedToArray2","itemHeight","setItemHeight","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme","theme","white","colors","_useTheme$theme$messa","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","flatlistHeight","useMemo","totalItemHeight","length","renderItem","_ref2","onLayout","event","nativeEvent","layout","height","onPress","itemProps","View","styles","backgroundColor","FlatList","keyboardShouldPersistTaps","keyExtractor","index","name","isSuggestionUser","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext","StyleSheet","create","borderRadius","elevation","marginHorizontal","marginVertical","shadowOffset","width","shadowOpacity"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n LayoutChangeEvent,\n Pressable,\n PressableProps,\n PressableStateCallbackType,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 50;\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<PressableProps> = (props) => {\n const { children, style: propsStyle, ...pressableProps } = props;\n\n const style = ({ pressed }: PressableStateCallbackType) => [\n propsStyle as ViewStyle,\n { opacity: pressed ? 0.2 : 1 },\n ];\n\n return (\n <Pressable {...pressableProps} style={style}>\n {children}\n </Pressable>\n );\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const [itemHeight, setItemHeight] = useState<number>(0);\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n colors: { white },\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const flatlistHeight = useMemo(() => {\n let totalItemHeight;\n if (triggerType === 'emoji') {\n totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;\n } else {\n totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;\n }\n\n return triggerType === 'emoji' || triggerType === 'command'\n ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT\n : totalItemHeight;\n }, [itemHeight, data.length]);\n\n const renderItem = ({ item }: { item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'command':\n case 'mention':\n case 'emoji':\n return (\n <SuggestionsItem\n onLayout={(event: LayoutChangeEvent) => setItemHeight(event.nativeEvent.layout.height)}\n onPress={() => {\n onSelect(item);\n }}\n style={itemStyle}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <View style={[styles.container, { backgroundColor: white, height: flatlistHeight }]}>\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 8,\n elevation: 3,\n marginHorizontal: 8,\n marginVertical: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAaA,IAAAE,mBAAA,GAAAF,OAAA;AAMA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAwC,IAAAK,SAAA;AAAA,IAAAC,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAc,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAGxC,IAAMW,2CAA2C,GAAG,EAAE;AAkBtD,IAAMC,eAAyC,GAAG,SAA5CA,eAAyCA,CAAIC,KAAK,EAAK;EAC3D,IAAQC,QAAQ,GAA2CD,KAAK,CAAxDC,QAAQ;IAASC,UAAU,GAAwBF,KAAK,CAA9CG,KAAK;IAAiBC,cAAc,OAAAC,yBAAA,aAAKL,KAAK,EAAA3B,SAAA;EAEhE,IAAM8B,KAAK,GAAG,SAARA,KAAKA,CAAAG,IAAA;IAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAA,OAAmC,CACzDL,UAAU,EACV;MAAEM,OAAO,EAAED,OAAO,GAAG,GAAG,GAAG;IAAE,CAAC,CAC/B;EAAA;EAED,OACEzC,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAyC,SAAS,MAAAC,SAAA,iBAAKP,cAAc;IAAED,KAAK,EAAEA,KAAM;IAAAS,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,IACzCf,QACQ,CAAC;AAEhB,CAAC;AAEDF,eAAe,CAACkB,WAAW,GAAG,8CAA8C;AAErE,IAAMC,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAGhDlB,KAAqE,EAClE;EACH,IAAAmB,SAAA,GAAoC,IAAAC,eAAQ,EAAS,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAhDI,UAAU,GAAAF,UAAA;IAAEG,aAAa,GAAAH,UAAA;EAChC,IACEI,MAAM,GAOJzB,KAAK,CAPPyB,MAAM;IACNC,4BAA4B,GAM1B1B,KAAK,CANP0B,4BAA4B;IAC5BC,0BAA0B,GAKxB3B,KAAK,CALP2B,0BAA0B;IAC1BC,IAAI,GAIF5B,KAAK,CAJP4B,IAAI;IACJC,QAAQ,GAGN7B,KAAK,CAHP6B,QAAQ;IACRC,SAAS,GAEP9B,KAAK,CAFP8B,SAAS;IACTC,WAAW,GACT/B,KAAK,CADP+B,WAAW;EAGb,IAAAC,SAAA,GASI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CARZG,KAAK;IACOC,KAAK,GAAAF,eAAA,CAAfG,MAAM,CAAID,KAAK;IAAAE,qBAAA,GAAAJ,eAAA,CACfK,YAAY;IACGC,SAAS,GAAAF,qBAAA,CAAtBG,SAAS,CAAID,SAAS;IACDE,SAAS,GAAAJ,qBAAA,CAA9BK,WAAW,CAAIC,IAAI;IACSC,QAAQ,GAAAP,qBAAA,CAApCQ,wBAAwB,CAAID,QAAQ;EAK1C,IAAME,cAAc,GAAG,IAAAC,cAAO,EAAC,YAAM;IACnC,IAAIC,eAAe;IACnB,IAAIlB,WAAW,KAAK,OAAO,EAAE;MAC3BkB,eAAe,GAAGrB,IAAI,CAACsB,MAAM,GAAG,CAAC,GAAGtB,IAAI,CAACsB,MAAM,GAAG3B,UAAU,GAAGA,UAAU,GAAG,CAAC;IAC/E,CAAC,MAAM;MACL0B,eAAe,GAAGrB,IAAI,CAACsB,MAAM,GAAG,CAAC,GAAGtB,IAAI,CAACsB,MAAM,GAAG3B,UAAU,GAAGA,UAAU,GAAG,CAAC;IAC/E;IAEA,OAAOQ,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,SAAS,GACvDkB,eAAe,GAAGnD,2CAA2C,GAC7DmD,eAAe;EACrB,CAAC,EAAE,CAAC1B,UAAU,EAAEK,IAAI,CAACsB,MAAM,CAAC,CAAC;EAE7B,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,KAAA,EAA2D;IAAA,IAArDR,IAAI,GAAAQ,KAAA,CAAJR,IAAI;IACxB,QAAQb,WAAW;MACjB,KAAK,SAAS;MACd,KAAK,SAAS;MACd,KAAK,OAAO;QACV,OACEjE,MAAA,YAAA2C,aAAA,CAACV,eAAe;UACdsD,QAAQ,EAAE,SAAAA,SAACC,KAAwB;YAAA,OAAK9B,aAAa,CAAC8B,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM,CAAC;UAAA,CAAC;UACvFC,OAAO,EAAE,SAAAA,QAAA,EAAM;YACb7B,QAAQ,CAACe,IAAI,CAAC;UAChB,CAAE;UACFzC,KAAK,EAAEuC,SAAU;UAAA9B,MAAA,EAAAtC,KAAA;UAAAuC,QAAA;YAAAC,QAAA,EAAAvC,YAAA;YAAAwC,UAAA;YAAAC,YAAA;UAAA;QAAA,GAEhBW,0BAA0B,IACzB7D,MAAA,YAAA2C,aAAA,CAACkB,0BAA0B;UAACgC,SAAS,EAAEf,IAAK;UAACb,WAAW,EAAEA,WAAY;UAAAnB,MAAA,EAAAtC,KAAA;UAAAuC,QAAA;YAAAC,QAAA,EAAAvC,YAAA;YAAAwC,UAAA;YAAAC,YAAA;UAAA;QAAA,CAAE,CAE3D,CAAC;MAEtB;QACE,OAAO,IAAI;IACf;EACF,CAAC;EAED,IAAI,CAACS,MAAM,IAAIG,IAAI,CAACsB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAE7C,OACEpF,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAA2F,IAAI;IAACzD,KAAK,EAAE,CAAC0D,MAAM,CAACpB,SAAS,EAAE;MAAEqB,eAAe,EAAE1B,KAAK;MAAEqB,MAAM,EAAEV;IAAe,CAAC,CAAE;IAAAnC,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAClFlD,MAAA,YAAA2C,aAAA,CAACrC,OAAA,CAAA2F,QAAQ;IACPnC,IAAI,EAAEA,IAAK;IACXoC,yBAAyB,EAAC,QAAQ;IAClCC,YAAY,EAAE,SAAAA,aAACrB,IAAI,EAAEsB,KAAK;MAAA,aACrBtB,IAAI,CAACuB,IAAI,KAAK,IAAAC,oCAAgB,EAACxB,IAAI,CAAC,GAAGA,IAAI,CAACyB,EAAE,GAAG,EAAE,CAAC,IAAGH,KAAK;IAAA,CAChE;IACDI,mBAAmB,EACjB5C,4BAA4B,GAC1B5D,MAAA,YAAA2C,aAAA,CAACiB,4BAA4B;MAACI,SAAS,EAAEA,SAAU;MAACC,WAAW,EAAEA,WAAY;MAAAnB,MAAA,EAAAtC,KAAA;MAAAuC,QAAA;QAAAC,QAAA,EAAAvC,YAAA;QAAAwC,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAAC,GAC9E,IACL;IACDmC,UAAU,EAAEA,UAAW;IACvBhD,KAAK,EAAE,CAAC0C,QAAQ,EAAE;MAAEL,SAAS,EAATA;IAAU,CAAC,CAAE;IAAA5B,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,CAClC,CACG,CAAC;AAEX,CAAC;AAACuD,OAAA,CAAArD,qCAAA,GAAAA,qCAAA;AAEF,IAAMsD,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAyE,EACzEC,SAAyE,EACtE;EACH,IACUC,UAAU,GAIhBF,SAAS,CAJXhD,MAAM;IACAmD,QAAQ,GAGZH,SAAS,CAHX7C,IAAI;IACOiD,aAAa,GAEtBJ,SAAS,CAFX3C,SAAS;IACIgD,QAAQ,GACnBL,SAAS,CADX1C,WAAW;EAEb,IACUgD,UAAU,GAIhBL,SAAS,CAJXjD,MAAM;IACAuD,QAAQ,GAGZN,SAAS,CAHX9C,IAAI;IACOqD,aAAa,GAEtBP,SAAS,CAFX5C,SAAS;IACIoD,QAAQ,GACnBR,SAAS,CADX3C,WAAW;EAGb,IAAMoD,WAAW,GAAGR,UAAU,KAAKI,UAAU;EAC7C,IAAI,CAACI,WAAW,EAAE,OAAO,KAAK;EAE9B,IAAMC,cAAc,GAAGP,aAAa,KAAKI,aAAa;EACtD,IAAI,CAACG,cAAc,EAAE,OAAO,KAAK;EAEjC,IAAMC,SAAS,GAAGT,QAAQ,KAAKI,QAAQ;EACvC,IAAI,CAACK,SAAS,EAAE,OAAO,KAAK;EAE5B,IAAMC,SAAS,GAAGR,QAAQ,KAAKI,QAAQ;EACvC,IAAI,CAACI,SAAS,EAAE,OAAO,KAAK;EAE5B,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,kCAAkC,GAAGC,iBAAK,CAACC,IAAI,CACnDvE,qCAAqC,EACrCsD,QACF,CAAiD;AAW1C,IAAMkB,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAGrC1F,KAA0D,EACvD;EACH,IAAA2F,qBAAA,GACE,IAAAC,yCAAqB,EAAqB,CAAC;IADrClE,4BAA4B,GAAAiE,qBAAA,CAA5BjE,4BAA4B;IAAEC,0BAA0B,GAAAgE,qBAAA,CAA1BhE,0BAA0B;EAGhE,OACE7D,MAAA,YAAA2C,aAAA,CAAC8E,kCAAkC,MAAA5E,SAAA;IAC3Be,4BAA4B,EAA5BA,4BAA4B;IAAEC,0BAA0B,EAA1BA;EAA0B,GAC1D3B,KAAK;IAAAY,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAACuD,OAAA,CAAAmB,0BAAA,GAAAA,0BAAA;AAEF,IAAM7B,MAAM,GAAGgC,uBAAU,CAACC,MAAM,CAAC;EAC/BrD,SAAS,EAAE;IACTsD,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,gBAAgB,EAAE,CAAC;IACnBC,cAAc,EAAE,CAAC;IACjBC,YAAY,EAAE;MAAE1C,MAAM,EAAE,CAAC;MAAE2C,KAAK,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEFX,0BAA0B,CAACzE,WAAW,GACpC,6DAA6D"}
|