stream-chat-react-native-core 4.9.0-beta.1 → 4.9.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.
@@ -488,7 +488,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
488
488
  ref: setInputBoxRef,
489
489
  style: [styles.inputBox, {
490
490
  color: black,
491
- maxHeight: (textHeight || 17) * numberOfLines
491
+ maxHeight: (textHeight || 17) * numberOfLines,
492
+ textAlign: _reactNative.I18nManager.isRTL ? 'right' : 'left'
492
493
  }, inputBox],
493
494
  testID: "auto-complete-text-input",
494
495
  value: text
@@ -581,7 +582,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
581
582
  __self: _this,
582
583
  __source: {
583
584
  fileName: _jsxFileName,
584
- lineNumber: 499,
585
+ lineNumber: 500,
585
586
  columnNumber: 5
586
587
  }
587
588
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { 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 | 'setShowMoreOptions'\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 setShowMoreOptions,\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 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 },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\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 setShowMoreOptions,\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 setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
1
+ {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","textAlign","I18nManager","isRTL","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","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 | 'setShowMoreOptions'\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 setShowMoreOptions,\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 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 onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\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 setShowMoreOptions,\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 setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
@@ -52,7 +52,7 @@ var styles = _reactNative.StyleSheet.create({
52
52
  title: {
53
53
  fontSize: 14,
54
54
  fontWeight: 'bold',
55
- paddingRight: 8
55
+ paddingHorizontal: 8
56
56
  }
57
57
  });
58
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","paddingRight","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","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 paddingRight: 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"]}
1
+ {"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","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"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.9.0-beta.1"
2
+ "version": "4.9.0-beta.2"
3
3
  }
@@ -488,7 +488,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
488
488
  ref: setInputBoxRef,
489
489
  style: [styles.inputBox, {
490
490
  color: black,
491
- maxHeight: (textHeight || 17) * numberOfLines
491
+ maxHeight: (textHeight || 17) * numberOfLines,
492
+ textAlign: _reactNative.I18nManager.isRTL ? 'right' : 'left'
492
493
  }, inputBox],
493
494
  testID: "auto-complete-text-input",
494
495
  value: text
@@ -581,7 +582,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
581
582
  __self: _this,
582
583
  __source: {
583
584
  fileName: _jsxFileName,
584
- lineNumber: 499,
585
+ lineNumber: 500,
585
586
  columnNumber: 5
586
587
  }
587
588
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { 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 | 'setShowMoreOptions'\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 setShowMoreOptions,\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 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 },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\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 setShowMoreOptions,\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 setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
1
+ {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","textAlign","I18nManager","isRTL","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","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 | 'setShowMoreOptions'\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 setShowMoreOptions,\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 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 onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\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 setShowMoreOptions,\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 setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
@@ -52,7 +52,7 @@ var styles = _reactNative.StyleSheet.create({
52
52
  title: {
53
53
  fontSize: 14,
54
54
  fontWeight: 'bold',
55
- paddingRight: 8
55
+ paddingHorizontal: 8
56
56
  }
57
57
  });
58
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","paddingRight","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","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 paddingRight: 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"]}
1
+ {"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","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"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.9.0-beta.1"
2
+ "version": "4.9.0-beta.2"
3
3
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "4.9.0-beta.1",
4
+ "version": "4.9.0-beta.2",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { StyleSheet, TextInput, TextInputProps } from 'react-native';
2
+ import { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';
3
3
 
4
4
  import throttle from 'lodash/throttle';
5
5
 
@@ -417,6 +417,7 @@ const AutoCompleteInputWithContext = <
417
417
  {
418
418
  color: black,
419
419
  maxHeight: (textHeight || 17) * numberOfLines,
420
+ textAlign: I18nManager.isRTL ? 'right' : 'left',
420
421
  },
421
422
  inputBox,
422
423
  ]}
@@ -51,7 +51,7 @@ const styles = StyleSheet.create({
51
51
  title: {
52
52
  fontSize: 14,
53
53
  fontWeight: 'bold',
54
- paddingRight: 8,
54
+ paddingHorizontal: 8,
55
55
  },
56
56
  });
57
57
 
@@ -286,6 +286,7 @@ Array [
286
286
  Object {
287
287
  "color": "#000000",
288
288
  "maxHeight": 85,
289
+ "textAlign": "left",
289
290
  },
290
291
  Object {},
291
292
  ]
@@ -1623,6 +1623,7 @@ exports[`Thread should match thread snapshot 1`] = `
1623
1623
  Object {
1624
1624
  "color": "#000000",
1625
1625
  "maxHeight": 85,
1626
+ "textAlign": "left",
1626
1627
  },
1627
1628
  Object {},
1628
1629
  ]
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.9.0-beta.1"
2
+ "version": "4.9.0-beta.2"
3
3
  }