stream-chat-react-native-core 5.23.0-beta.3 → 5.23.0-beta.5
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 +2 -11
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +51 -28
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +38 -38
- package/lib/commonjs/i18n/hi.json +38 -38
- package/lib/commonjs/i18n/it.json +38 -38
- package/lib/commonjs/i18n/nl.json +38 -38
- package/lib/commonjs/i18n/ru.json +38 -38
- package/lib/commonjs/i18n/tr.json +38 -38
- package/lib/commonjs/utils/utils.js +2 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +2 -11
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +51 -28
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +1 -0
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +38 -38
- package/lib/module/i18n/hi.json +38 -38
- package/lib/module/i18n/it.json +38 -38
- package/lib/module/i18n/nl.json +38 -38
- package/lib/module/i18n/ru.json +38 -38
- package/lib/module/i18n/tr.json +38 -38
- package/lib/module/utils/utils.js +2 -2
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +38 -38
- package/lib/typescript/i18n/hi.json +38 -38
- package/lib/typescript/i18n/it.json +38 -38
- package/lib/typescript/i18n/nl.json +38 -38
- package/lib/typescript/i18n/ru.json +38 -38
- package/lib/typescript/i18n/tr.json +38 -38
- package/package.json +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +0 -10
- package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +4 -0
- package/src/components/Message/MessageSimple/utils/parseLinks.ts +3 -3
- package/src/components/MessageInput/MessageInput.tsx +33 -3
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +2 -0
- package/src/contexts/themeContext/utils/theme.ts +2 -0
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +38 -38
- package/src/i18n/hi.json +38 -38
- package/src/i18n/it.json +38 -38
- package/src/i18n/nl.json +38 -38
- package/src/i18n/ru.json +38 -38
- package/src/i18n/tr.json +38 -38
- package/src/utils/utils.ts +3 -2
- package/src/version.json +1 -1
|
@@ -53,7 +53,6 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
53
53
|
openSuggestions = props.openSuggestions,
|
|
54
54
|
setGiphyActive = props.setGiphyActive,
|
|
55
55
|
setInputBoxRef = props.setInputBoxRef,
|
|
56
|
-
setShowMoreOptions = props.setShowMoreOptions,
|
|
57
56
|
t = props.t,
|
|
58
57
|
text = props.text,
|
|
59
58
|
triggerSettings = props.triggerSettings,
|
|
@@ -396,16 +395,10 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
396
395
|
testID: "auto-complete-text-input",
|
|
397
396
|
value: text
|
|
398
397
|
}, additionalTextInputProps, {
|
|
399
|
-
onBlur: function onBlur(event) {
|
|
400
|
-
if (additionalTextInputProps != null && additionalTextInputProps.onBlur) {
|
|
401
|
-
additionalTextInputProps == null ? void 0 : additionalTextInputProps.onBlur(event);
|
|
402
|
-
}
|
|
403
|
-
setShowMoreOptions(true);
|
|
404
|
-
},
|
|
405
398
|
__self: _this,
|
|
406
399
|
__source: {
|
|
407
400
|
fileName: _jsxFileName,
|
|
408
|
-
lineNumber:
|
|
401
|
+
lineNumber: 389,
|
|
409
402
|
columnNumber: 5
|
|
410
403
|
}
|
|
411
404
|
}));
|
|
@@ -444,7 +437,6 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
|
|
|
444
437
|
onChange = _useMessageInputConte.onChange,
|
|
445
438
|
setGiphyActive = _useMessageInputConte.setGiphyActive,
|
|
446
439
|
setInputBoxRef = _useMessageInputConte.setInputBoxRef,
|
|
447
|
-
setShowMoreOptions = _useMessageInputConte.setShowMoreOptions,
|
|
448
440
|
text = _useMessageInputConte.text,
|
|
449
441
|
triggerSettings = _useMessageInputConte.triggerSettings;
|
|
450
442
|
var _useSuggestionsContex = (0, _SuggestionsContext.useSuggestionsContext)(),
|
|
@@ -467,7 +459,6 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
|
|
|
467
459
|
openSuggestions: openSuggestions,
|
|
468
460
|
setGiphyActive: setGiphyActive,
|
|
469
461
|
setInputBoxRef: setInputBoxRef,
|
|
470
|
-
setShowMoreOptions: setShowMoreOptions,
|
|
471
462
|
t: t,
|
|
472
463
|
text: text,
|
|
473
464
|
triggerSettings: triggerSettings,
|
|
@@ -476,7 +467,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
|
|
|
476
467
|
__self: _this,
|
|
477
468
|
__source: {
|
|
478
469
|
fileName: _jsxFileName,
|
|
479
|
-
lineNumber:
|
|
470
|
+
lineNumber: 492,
|
|
480
471
|
columnNumber: 5
|
|
481
472
|
}
|
|
482
473
|
}));
|
|
@@ -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","setShowMoreOptions","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","onBlur","event","__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 | '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 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 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"],"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/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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"}
|
|
@@ -6,7 +6,7 @@ exports.parseLinksFromText = void 0;
|
|
|
6
6
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
7
7
|
var _linkifyjs = require("linkifyjs");
|
|
8
8
|
var removeMarkdownLinksFromText = function removeMarkdownLinksFromText(input) {
|
|
9
|
-
return input.replace(/\[
|
|
9
|
+
return input.replace(/\[.*\]\(.*\)/g, '');
|
|
10
10
|
};
|
|
11
11
|
var removeUserNamesWithEmailFromText = function removeUserNamesWithEmailFromText(input) {
|
|
12
12
|
return input.replace(/@(\w+(\.\w+)?)(@\w+\.\w+)/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_linkifyjs","require","removeMarkdownLinksFromText","input","replace","removeUserNamesWithEmailFromText","parseLinksFromText","strippedInput","reduce","acc","fn","links","find","emails","result","concat","_toConsumableArray2","map","_ref","href","value","raw","url","exports"],"sources":["parseLinks.ts"],"sourcesContent":["import { find } from 'linkifyjs';\n\ninterface LinkInfo {\n raw: string;\n url: string;\n}\n\n/**\n * This is done
|
|
1
|
+
{"version":3,"names":["_linkifyjs","require","removeMarkdownLinksFromText","input","replace","removeUserNamesWithEmailFromText","parseLinksFromText","strippedInput","reduce","acc","fn","links","find","emails","result","concat","_toConsumableArray2","map","_ref","href","value","raw","url","exports"],"sources":["parseLinks.ts"],"sourcesContent":["import { find } from 'linkifyjs';\n\ninterface LinkInfo {\n raw: string;\n url: string;\n}\n\n/**\n * This is done to remove all markdown formatted links.\n * eg: [google.com](https://www.google.com), [Google](https://www.google.com), [https://www.google.com](https://www.google.com)\n * */\nconst removeMarkdownLinksFromText = (input: string) => input.replace(/\\[.*\\]\\(.*\\)/g, '');\n\n/**\n * This is done to avoid parsing usernames with dot as well as an email address in it.\n */\nconst removeUserNamesWithEmailFromText = (input: string) =>\n input.replace(/@(\\w+(\\.\\w+)?)(@\\w+\\.\\w+)/g, '');\n\nexport const parseLinksFromText = (input: string): LinkInfo[] => {\n const strippedInput = [removeMarkdownLinksFromText, removeUserNamesWithEmailFromText].reduce(\n (acc, fn) => fn(acc),\n input,\n );\n\n const links = find(strippedInput, 'url');\n const emails = find(strippedInput, 'email');\n\n const result: LinkInfo[] = [...links, ...emails].map(({ href, value }) => ({\n raw: value,\n url: href,\n }));\n\n return result;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAWA,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAIC,KAAa;EAAA,OAAKA,KAAK,CAACC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AAAA;AAKzF,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAIF,KAAa;EAAA,OACrDA,KAAK,CAACC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;AAAA;AAE1C,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIH,KAAa,EAAiB;EAC/D,IAAMI,aAAa,GAAG,CAACL,2BAA2B,EAAEG,gCAAgC,CAAC,CAACG,MAAM,CAC1F,UAACC,GAAG,EAAEC,EAAE;IAAA,OAAKA,EAAE,CAACD,GAAG,CAAC;EAAA,GACpBN,KACF,CAAC;EAED,IAAMQ,KAAK,GAAG,IAAAC,eAAI,EAACL,aAAa,EAAE,KAAK,CAAC;EACxC,IAAMM,MAAM,GAAG,IAAAD,eAAI,EAACL,aAAa,EAAE,OAAO,CAAC;EAE3C,IAAMO,MAAkB,GAAG,GAAAC,MAAA,KAAAC,mBAAA,aAAIL,KAAK,OAAAK,mBAAA,aAAKH,MAAM,GAAEI,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAA,OAAQ;MACzEC,GAAG,EAAED,KAAK;MACVE,GAAG,EAAEH;IACP,CAAC;EAAA,CAAC,CAAC;EAEH,OAAOL,MAAM;AACf,CAAC;AAACS,OAAA,CAAAjB,kBAAA,GAAAA,kBAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _parseLinks = require("./parseLinks");
|
|
2
2
|
describe('parseLinksFromText', function () {
|
|
3
|
-
it.each([['https://www.getstream.io', 'https://www.getstream.io'], ['https://getstream.io', 'https://getstream.io'], ['scrn://team-chat', undefined], ['https://localhost', 'https://localhost'], ['https://localhost/with/path?and=query&multiple=params', 'https://localhost/with/path?and=query&multiple=params'], ['https://localhost/with/path?and=query#fragment', 'https://localhost/with/path?and=query#fragment'], ['reactnative.dev', 'http://reactnative.dev'], ['hinge.health/schedule-with-a-coach', 'http://hinge.health/schedule-with-a-coach'], ['https://zh.wikipedia.org/wiki/挪威牛油危機', 'https://zh.wikipedia.org/wiki/挪威牛油危機'], ['https://getstream.io/chat/docs/react-native/?language=javascript', 'https://getstream.io/chat/docs/react-native/?language=javascript'], ['127.0.0.1/local_(development)_server', undefined], ['https://a.co:8999/ab.php?p=12', 'https://a.co:8999/ab.php?p=12'], ['https://help.apple.com/xcode/mac/current/#/devba7f53ad4', 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4']])('Returns the encoded value of %p as %p', function (link, expected) {
|
|
3
|
+
it.each([['https://www.getstream.io', 'https://www.getstream.io'], ['https://getstream.io', 'https://getstream.io'], ['scrn://team-chat', undefined], ['https://localhost', 'https://localhost'], ['https://localhost/with/path?and=query&multiple=params', 'https://localhost/with/path?and=query&multiple=params'], ['https://localhost/with/path?and=query#fragment', 'https://localhost/with/path?and=query#fragment'], ['reactnative.dev', 'http://reactnative.dev'], ['hinge.health/schedule-with-a-coach', 'http://hinge.health/schedule-with-a-coach'], ['https://zh.wikipedia.org/wiki/挪威牛油危機', 'https://zh.wikipedia.org/wiki/挪威牛油危機'], ['https://getstream.io/chat/docs/react-native/?language=javascript', 'https://getstream.io/chat/docs/react-native/?language=javascript'], ['127.0.0.1/local_(development)_server', undefined], ['https://a.co:8999/ab.php?p=12', 'https://a.co:8999/ab.php?p=12'], ['https://help.apple.com/xcode/mac/current/#/devba7f53ad4', 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4'], ['[google.com](https://www.google.com)', undefined], ['[https://www.google.com](https://www.google.com)', undefined], ['[abc]()', undefined], ['[](https://www.google.com)', undefined]])('Returns the encoded value of %p as %p', function (link, expected) {
|
|
4
4
|
var _result$;
|
|
5
5
|
var result = (0, _parseLinks.parseLinksFromText)(link);
|
|
6
6
|
expect((_result$ = result[0]) == null ? void 0 : _result$.url).toBe(expected);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_parseLinks","require","describe","it","each","undefined","link","expected","_result$","result","parseLinksFromText","expect","url","toBe","input","toEqual","raw","email","toHaveLength"],"sources":["parseLinks.test.ts"],"sourcesContent":["import { parseLinksFromText } from './parseLinks';\n\ndescribe('parseLinksFromText', () => {\n it.each([\n ['https://www.getstream.io', 'https://www.getstream.io'],\n ['https://getstream.io', 'https://getstream.io'],\n ['scrn://team-chat', undefined],\n ['https://localhost', 'https://localhost'],\n [\n 'https://localhost/with/path?and=query&multiple=params',\n 'https://localhost/with/path?and=query&multiple=params',\n ],\n [\n 'https://localhost/with/path?and=query#fragment',\n 'https://localhost/with/path?and=query#fragment',\n ],\n ['reactnative.dev', 'http://reactnative.dev'],\n ['hinge.health/schedule-with-a-coach', 'http://hinge.health/schedule-with-a-coach'],\n ['https://zh.wikipedia.org/wiki/挪威牛油危機', 'https://zh.wikipedia.org/wiki/挪威牛油危機'],\n [\n 'https://getstream.io/chat/docs/react-native/?language=javascript',\n 'https://getstream.io/chat/docs/react-native/?language=javascript',\n ],\n ['127.0.0.1/local_(development)_server', undefined],\n ['https://a.co:8999/ab.php?p=12', 'https://a.co:8999/ab.php?p=12'],\n [\n 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4',\n 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4',\n ],\n ])('Returns the encoded value of %p as %p', (link, expected) => {\n const result = parseLinksFromText(link);\n expect(result[0]?.url).toBe(expected);\n });\n it('parses fqdn', () => {\n const input = `We have put the apim bol,\n temporarily so :sj: we can later put the monitors on my grasp\n on reality right now is\n https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier\n :)`;\n const result = parseLinksFromText(input);\n expect(result).toEqual([\n {\n raw: 'https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier',\n url: 'https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier',\n },\n ]);\n });\n it.each([\n ['support+rn@getstream.io'],\n ['support.rn@getstream.io'],\n ['support-rn@getstream.io'],\n ['support_rn@getstream.io'],\n ])('Can parse the email address %p', (email) => {\n const result = parseLinksFromText(email);\n expect(result[0].url).toBe('mailto:' + email);\n expect(result[0].raw).toBe(email);\n });\n it(\"doesn't double the mailto prefix\", () => {\n const input = 'mailto:support@getstream.io';\n const result = parseLinksFromText(input);\n expect(result[0]).toEqual({\n raw: input,\n url: input,\n });\n });\n it('Does not falsely parse LINKs from text content', () => {\n const input = `#This string exists to test that we don't produce false positives\n Existing links:\n [already a parsed link](https://getstream.io/blog/react-native-how-to-build-bidirectional-infinite-scroll/)\n [even a bogus one]( should not match )\n ## These should, however, be parsed:\n www.getstream.io\n getstream.io\n `;\n const result = parseLinksFromText(input);\n expect(result).toHaveLength(2);\n });\n it('Encodes incomplete emoji unicode', () => {\n const input = 'https://getstream.io/�';\n const result = parseLinksFromText(input);\n expect(result[0]).toEqual({\n raw: input,\n url: 'https://getstream.io/�',\n });\n });\n});\n"],"mappings":"AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,oBAAoB,EAAE,YAAM;EACnCC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,EACxD,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,EAChD,CAAC,kBAAkB,EAAEC,SAAS,CAAC,EAC/B,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,EAC1C,CACE,uDAAuD,EACvD,uDAAuD,CACxD,EACD,CACE,gDAAgD,EAChD,gDAAgD,CACjD,EACD,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,EAC7C,CAAC,oCAAoC,EAAE,2CAA2C,CAAC,EACnF,CAAC,sCAAsC,EAAE,sCAAsC,CAAC,EAChF,CACE,kEAAkE,EAClE,kEAAkE,CACnE,EACD,CAAC,sCAAsC,EAAEA,SAAS,CAAC,EACnD,CAAC,+BAA+B,EAAE,+BAA+B,CAAC,EAClE,CACE,yDAAyD,EACzD,yDAAyD,CAC1D,
|
|
1
|
+
{"version":3,"names":["_parseLinks","require","describe","it","each","undefined","link","expected","_result$","result","parseLinksFromText","expect","url","toBe","input","toEqual","raw","email","toHaveLength"],"sources":["parseLinks.test.ts"],"sourcesContent":["import { parseLinksFromText } from './parseLinks';\n\ndescribe('parseLinksFromText', () => {\n it.each([\n ['https://www.getstream.io', 'https://www.getstream.io'],\n ['https://getstream.io', 'https://getstream.io'],\n ['scrn://team-chat', undefined],\n ['https://localhost', 'https://localhost'],\n [\n 'https://localhost/with/path?and=query&multiple=params',\n 'https://localhost/with/path?and=query&multiple=params',\n ],\n [\n 'https://localhost/with/path?and=query#fragment',\n 'https://localhost/with/path?and=query#fragment',\n ],\n ['reactnative.dev', 'http://reactnative.dev'],\n ['hinge.health/schedule-with-a-coach', 'http://hinge.health/schedule-with-a-coach'],\n ['https://zh.wikipedia.org/wiki/挪威牛油危機', 'https://zh.wikipedia.org/wiki/挪威牛油危機'],\n [\n 'https://getstream.io/chat/docs/react-native/?language=javascript',\n 'https://getstream.io/chat/docs/react-native/?language=javascript',\n ],\n ['127.0.0.1/local_(development)_server', undefined],\n ['https://a.co:8999/ab.php?p=12', 'https://a.co:8999/ab.php?p=12'],\n [\n 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4',\n 'https://help.apple.com/xcode/mac/current/#/devba7f53ad4',\n ],\n ['[google.com](https://www.google.com)', undefined],\n ['[https://www.google.com](https://www.google.com)', undefined],\n ['[abc]()', undefined],\n ['[](https://www.google.com)', undefined],\n ])('Returns the encoded value of %p as %p', (link, expected) => {\n const result = parseLinksFromText(link);\n expect(result[0]?.url).toBe(expected);\n });\n it('parses fqdn', () => {\n const input = `We have put the apim bol,\n temporarily so :sj: we can later put the monitors on my grasp\n on reality right now is\n https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier\n :)`;\n const result = parseLinksFromText(input);\n expect(result).toEqual([\n {\n raw: 'https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier',\n url: 'https://www.contrived-example.com:8080/sub/page.php?p1=1🇳🇴&p2=2#fragment-identifier',\n },\n ]);\n });\n it.each([\n ['support+rn@getstream.io'],\n ['support.rn@getstream.io'],\n ['support-rn@getstream.io'],\n ['support_rn@getstream.io'],\n ])('Can parse the email address %p', (email) => {\n const result = parseLinksFromText(email);\n expect(result[0].url).toBe('mailto:' + email);\n expect(result[0].raw).toBe(email);\n });\n it(\"doesn't double the mailto prefix\", () => {\n const input = 'mailto:support@getstream.io';\n const result = parseLinksFromText(input);\n expect(result[0]).toEqual({\n raw: input,\n url: input,\n });\n });\n it('Does not falsely parse LINKs from text content', () => {\n const input = `#This string exists to test that we don't produce false positives\n Existing links:\n [already a parsed link](https://getstream.io/blog/react-native-how-to-build-bidirectional-infinite-scroll/)\n [even a bogus one]( should not match )\n ## These should, however, be parsed:\n www.getstream.io\n getstream.io\n `;\n const result = parseLinksFromText(input);\n expect(result).toHaveLength(2);\n });\n it('Encodes incomplete emoji unicode', () => {\n const input = 'https://getstream.io/�';\n const result = parseLinksFromText(input);\n expect(result[0]).toEqual({\n raw: input,\n url: 'https://getstream.io/�',\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -114,6 +114,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
114
114
|
SendButton = props.SendButton,
|
|
115
115
|
sending = props.sending,
|
|
116
116
|
sendMessageAsync = props.sendMessageAsync,
|
|
117
|
+
setShowMoreOptions = props.setShowMoreOptions,
|
|
117
118
|
ShowThreadMessageInChannelButton = props.ShowThreadMessageInChannelButton,
|
|
118
119
|
suggestions = props.suggestions,
|
|
119
120
|
thread = props.thread,
|
|
@@ -140,6 +141,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
140
141
|
autoCompleteInputContainer = _useTheme$theme$messa.autoCompleteInputContainer,
|
|
141
142
|
composerContainer = _useTheme$theme$messa.composerContainer,
|
|
142
143
|
container = _useTheme$theme$messa.container,
|
|
144
|
+
focusedInputBoxContainer = _useTheme$theme$messa.focusedInputBoxContainer,
|
|
143
145
|
inputBoxContainer = _useTheme$theme$messa.inputBoxContainer,
|
|
144
146
|
optionsContainer = _useTheme$theme$messa.optionsContainer,
|
|
145
147
|
replyContainer = _useTheme$theme$messa.replyContainer,
|
|
@@ -169,6 +171,10 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
169
171
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
170
172
|
hasResetFiles = _useState6[0],
|
|
171
173
|
setHasResetFiles = _useState6[1];
|
|
174
|
+
var _useState7 = (0, _react.useState)(false),
|
|
175
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
176
|
+
focused = _useState8[0],
|
|
177
|
+
setFocused = _useState8[1];
|
|
172
178
|
var selectedImagesLength = hasResetImages ? selectedImages.length : 0;
|
|
173
179
|
var imageUploadsLength = hasResetImages ? imageUploads.length : 0;
|
|
174
180
|
var selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;
|
|
@@ -381,6 +387,23 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
381
387
|
var additionalTextInputContainerProps = (0, _extends2["default"])({
|
|
382
388
|
editable: disabled ? false : undefined
|
|
383
389
|
}, additionalTextInputProps);
|
|
390
|
+
var memoizedAdditionalTextInputProps = (0, _react.useMemo)(function () {
|
|
391
|
+
return (0, _extends2["default"])({}, additionalTextInputProps, {
|
|
392
|
+
onBlur: function onBlur(event) {
|
|
393
|
+
if (additionalTextInputProps != null && additionalTextInputProps.onBlur) {
|
|
394
|
+
additionalTextInputProps == null ? void 0 : additionalTextInputProps.onBlur(event);
|
|
395
|
+
}
|
|
396
|
+
if (setFocused) setFocused(false);
|
|
397
|
+
setShowMoreOptions(true);
|
|
398
|
+
},
|
|
399
|
+
onFocus: function onFocus(event) {
|
|
400
|
+
if (additionalTextInputProps != null && additionalTextInputProps.onFocus) {
|
|
401
|
+
additionalTextInputProps.onFocus(event);
|
|
402
|
+
}
|
|
403
|
+
if (setFocused) setFocused(true);
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
}, [additionalTextInputProps]);
|
|
384
407
|
return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
|
|
385
408
|
onLayout: function onLayout(_ref2) {
|
|
386
409
|
var newHeight = _ref2.nativeEvent.layout.height;
|
|
@@ -393,21 +416,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
393
416
|
__self: _this,
|
|
394
417
|
__source: {
|
|
395
418
|
fileName: _jsxFileName,
|
|
396
|
-
lineNumber:
|
|
419
|
+
lineNumber: 547,
|
|
397
420
|
columnNumber: 7
|
|
398
421
|
}
|
|
399
422
|
}, editing && _react["default"].createElement(InputEditingStateHeader, {
|
|
400
423
|
__self: _this,
|
|
401
424
|
__source: {
|
|
402
425
|
fileName: _jsxFileName,
|
|
403
|
-
lineNumber:
|
|
426
|
+
lineNumber: 555,
|
|
404
427
|
columnNumber: 21
|
|
405
428
|
}
|
|
406
429
|
}), quotedMessage && _react["default"].createElement(InputReplyStateHeader, {
|
|
407
430
|
__self: _this,
|
|
408
431
|
__source: {
|
|
409
432
|
fileName: _jsxFileName,
|
|
410
|
-
lineNumber:
|
|
433
|
+
lineNumber: 556,
|
|
411
434
|
columnNumber: 27
|
|
412
435
|
}
|
|
413
436
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -415,7 +438,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
415
438
|
__self: _this,
|
|
416
439
|
__source: {
|
|
417
440
|
fileName: _jsxFileName,
|
|
418
|
-
lineNumber:
|
|
441
|
+
lineNumber: 557,
|
|
419
442
|
columnNumber: 9
|
|
420
443
|
}
|
|
421
444
|
}, Input ? _react["default"].createElement(Input, {
|
|
@@ -424,7 +447,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
424
447
|
__self: _this,
|
|
425
448
|
__source: {
|
|
426
449
|
fileName: _jsxFileName,
|
|
427
|
-
lineNumber:
|
|
450
|
+
lineNumber: 559,
|
|
428
451
|
columnNumber: 13
|
|
429
452
|
}
|
|
430
453
|
}) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
|
|
@@ -432,25 +455,25 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
432
455
|
__self: _this,
|
|
433
456
|
__source: {
|
|
434
457
|
fileName: _jsxFileName,
|
|
435
|
-
lineNumber:
|
|
458
|
+
lineNumber: 565,
|
|
436
459
|
columnNumber: 15
|
|
437
460
|
}
|
|
438
461
|
}, InputButtons && _react["default"].createElement(InputButtons, {
|
|
439
462
|
__self: _this,
|
|
440
463
|
__source: {
|
|
441
464
|
fileName: _jsxFileName,
|
|
442
|
-
lineNumber:
|
|
465
|
+
lineNumber: 566,
|
|
443
466
|
columnNumber: 34
|
|
444
467
|
}
|
|
445
468
|
})), _react["default"].createElement(_reactNative.View, {
|
|
446
469
|
style: [styles.inputBoxContainer, {
|
|
447
470
|
borderColor: grey_whisper,
|
|
448
471
|
paddingVertical: giphyActive ? 8 : 12
|
|
449
|
-
}, inputBoxContainer],
|
|
472
|
+
}, inputBoxContainer, focused ? focusedInputBoxContainer : null],
|
|
450
473
|
__self: _this,
|
|
451
474
|
__source: {
|
|
452
475
|
fileName: _jsxFileName,
|
|
453
|
-
lineNumber:
|
|
476
|
+
lineNumber: 568,
|
|
454
477
|
columnNumber: 15
|
|
455
478
|
}
|
|
456
479
|
}, (typeof editing !== 'boolean' && (editing == null ? void 0 : editing.quoted_message) || quotedMessage) && _react["default"].createElement(_reactNative.View, {
|
|
@@ -458,21 +481,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
458
481
|
__self: _this,
|
|
459
482
|
__source: {
|
|
460
483
|
fileName: _jsxFileName,
|
|
461
|
-
lineNumber:
|
|
484
|
+
lineNumber: 580,
|
|
462
485
|
columnNumber: 19
|
|
463
486
|
}
|
|
464
487
|
}, _react["default"].createElement(Reply, {
|
|
465
488
|
__self: _this,
|
|
466
489
|
__source: {
|
|
467
490
|
fileName: _jsxFileName,
|
|
468
|
-
lineNumber:
|
|
491
|
+
lineNumber: 581,
|
|
469
492
|
columnNumber: 21
|
|
470
493
|
}
|
|
471
494
|
})), imageUploads.length ? _react["default"].createElement(ImageUploadPreview, {
|
|
472
495
|
__self: _this,
|
|
473
496
|
__source: {
|
|
474
497
|
fileName: _jsxFileName,
|
|
475
|
-
lineNumber:
|
|
498
|
+
lineNumber: 584,
|
|
476
499
|
columnNumber: 40
|
|
477
500
|
}
|
|
478
501
|
}) : null, imageUploads.length && fileUploads.length ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -483,14 +506,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
483
506
|
__self: _this,
|
|
484
507
|
__source: {
|
|
485
508
|
fileName: _jsxFileName,
|
|
486
|
-
lineNumber:
|
|
509
|
+
lineNumber: 586,
|
|
487
510
|
columnNumber: 19
|
|
488
511
|
}
|
|
489
512
|
}) : null, fileUploads.length ? _react["default"].createElement(FileUploadPreview, {
|
|
490
513
|
__self: _this,
|
|
491
514
|
__source: {
|
|
492
515
|
fileName: _jsxFileName,
|
|
493
|
-
lineNumber:
|
|
516
|
+
lineNumber: 596,
|
|
494
517
|
columnNumber: 39
|
|
495
518
|
}
|
|
496
519
|
}) : null, giphyActive ? _react["default"].createElement(InputGiphySearch, {
|
|
@@ -498,7 +521,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
498
521
|
__self: _this,
|
|
499
522
|
__source: {
|
|
500
523
|
fileName: _jsxFileName,
|
|
501
|
-
lineNumber:
|
|
524
|
+
lineNumber: 598,
|
|
502
525
|
columnNumber: 19
|
|
503
526
|
}
|
|
504
527
|
}) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -506,16 +529,16 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
506
529
|
__self: _this,
|
|
507
530
|
__source: {
|
|
508
531
|
fileName: _jsxFileName,
|
|
509
|
-
lineNumber:
|
|
532
|
+
lineNumber: 600,
|
|
510
533
|
columnNumber: 19
|
|
511
534
|
}
|
|
512
535
|
}, _react["default"].createElement(_AutoCompleteInput.AutoCompleteInput, {
|
|
513
|
-
additionalTextInputProps:
|
|
536
|
+
additionalTextInputProps: memoizedAdditionalTextInputProps,
|
|
514
537
|
cooldownActive: !!cooldownRemainingSeconds,
|
|
515
538
|
__self: _this,
|
|
516
539
|
__source: {
|
|
517
540
|
fileName: _jsxFileName,
|
|
518
|
-
lineNumber:
|
|
541
|
+
lineNumber: 601,
|
|
519
542
|
columnNumber: 21
|
|
520
543
|
}
|
|
521
544
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -523,7 +546,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
523
546
|
__self: _this,
|
|
524
547
|
__source: {
|
|
525
548
|
fileName: _jsxFileName,
|
|
526
|
-
lineNumber:
|
|
549
|
+
lineNumber: 608,
|
|
527
550
|
columnNumber: 15
|
|
528
551
|
}
|
|
529
552
|
}, cooldownRemainingSeconds ? _react["default"].createElement(CooldownTimer, {
|
|
@@ -531,7 +554,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
531
554
|
__self: _this,
|
|
532
555
|
__source: {
|
|
533
556
|
fileName: _jsxFileName,
|
|
534
|
-
lineNumber:
|
|
557
|
+
lineNumber: 610,
|
|
535
558
|
columnNumber: 19
|
|
536
559
|
}
|
|
537
560
|
}) : _react["default"].createElement(SendButton, {
|
|
@@ -539,7 +562,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
539
562
|
__self: _this,
|
|
540
563
|
__source: {
|
|
541
564
|
fileName: _jsxFileName,
|
|
542
|
-
lineNumber:
|
|
565
|
+
lineNumber: 612,
|
|
543
566
|
columnNumber: 19
|
|
544
567
|
}
|
|
545
568
|
})))), _react["default"].createElement(ShowThreadMessageInChannelButton, {
|
|
@@ -547,7 +570,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
547
570
|
__self: _this,
|
|
548
571
|
__source: {
|
|
549
572
|
fileName: _jsxFileName,
|
|
550
|
-
lineNumber:
|
|
573
|
+
lineNumber: 622,
|
|
551
574
|
columnNumber: 9
|
|
552
575
|
}
|
|
553
576
|
})), triggerType && suggestions ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -558,7 +581,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
558
581
|
__self: _this,
|
|
559
582
|
__source: {
|
|
560
583
|
fileName: _jsxFileName,
|
|
561
|
-
lineNumber:
|
|
584
|
+
lineNumber: 626,
|
|
562
585
|
columnNumber: 9
|
|
563
586
|
}
|
|
564
587
|
}, _react["default"].createElement(AutoCompleteSuggestionList, {
|
|
@@ -570,7 +593,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
570
593
|
__self: _this,
|
|
571
594
|
__source: {
|
|
572
595
|
fileName: _jsxFileName,
|
|
573
|
-
lineNumber:
|
|
596
|
+
lineNumber: 633,
|
|
574
597
|
columnNumber: 11
|
|
575
598
|
}
|
|
576
599
|
})) : null, selectedPicker && _react["default"].createElement(_reactNative.View, {
|
|
@@ -581,14 +604,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
|
|
|
581
604
|
__self: _this,
|
|
582
605
|
__source: {
|
|
583
606
|
fileName: _jsxFileName,
|
|
584
|
-
lineNumber:
|
|
607
|
+
lineNumber: 643,
|
|
585
608
|
columnNumber: 9
|
|
586
609
|
}
|
|
587
610
|
}, _react["default"].createElement(_AttachmentSelectionBar.AttachmentSelectionBar, {
|
|
588
611
|
__self: _this,
|
|
589
612
|
__source: {
|
|
590
613
|
fileName: _jsxFileName,
|
|
591
|
-
lineNumber:
|
|
614
|
+
lineNumber: 655,
|
|
592
615
|
columnNumber: 11
|
|
593
616
|
}
|
|
594
617
|
})));
|
|
@@ -735,7 +758,7 @@ var MessageInput = function MessageInput(props) {
|
|
|
735
758
|
__self: _this,
|
|
736
759
|
__source: {
|
|
737
760
|
fileName: _jsxFileName,
|
|
738
|
-
lineNumber:
|
|
761
|
+
lineNumber: 861,
|
|
739
762
|
columnNumber: 12
|
|
740
763
|
}
|
|
741
764
|
});
|
|
@@ -794,7 +817,7 @@ var MessageInput = function MessageInput(props) {
|
|
|
794
817
|
__self: _this,
|
|
795
818
|
__source: {
|
|
796
819
|
fileName: _jsxFileName,
|
|
797
|
-
lineNumber:
|
|
820
|
+
lineNumber: 865,
|
|
798
821
|
columnNumber: 5
|
|
799
822
|
}
|
|
800
823
|
}));
|