stream-chat-react-native-core 3.9.0 → 3.9.2-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +5 -5
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +103 -75
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +32 -11
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +23 -24
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/hooks/useIsMountedRef.js +19 -0
- package/lib/commonjs/hooks/useIsMountedRef.js.map +1 -0
- package/lib/commonjs/hooks/useStreami18n.js +4 -1
- package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
- package/lib/commonjs/i18n/fr.json +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +5 -5
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +103 -75
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +32 -11
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +23 -24
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/hooks/useIsMountedRef.js +19 -0
- package/lib/module/hooks/useIsMountedRef.js.map +1 -0
- package/lib/module/hooks/useStreami18n.js +4 -1
- package/lib/module/hooks/useStreami18n.js.map +1 -1
- package/lib/module/i18n/fr.json +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/hooks/useIsMountedRef.d.ts +20 -0
- package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
- package/lib/typescript/i18n/fr.json +1 -1
- package/package.json +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +3 -8
- package/src/components/Channel/Channel.tsx +43 -15
- package/src/components/Channel/__tests__/Channel.test.js +18 -2
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +7 -1
- package/src/components/Chat/hooks/useIsOnline.ts +16 -17
- package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
- package/src/hooks/useIsMountedRef.ts +36 -0
- package/src/hooks/useStreami18n.ts +5 -3
- package/src/i18n/fr.json +1 -1
- package/src/version.json +1 -1
|
@@ -315,7 +315,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
315
315
|
}
|
|
316
316
|
|
|
317
317
|
var textToModify = text.slice(0, selectionEnd.current);
|
|
318
|
-
var startOfTokenPosition = textToModify.
|
|
318
|
+
var startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);
|
|
319
319
|
var newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);
|
|
320
320
|
var modifiedText = "" + textToModify.substring(0, startOfTokenPosition) + newTokenString;
|
|
321
321
|
stopTracking();
|
|
@@ -383,7 +383,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
383
383
|
|
|
384
384
|
var handleMentions = function handleMentions(_ref6) {
|
|
385
385
|
var tokenMatch = _ref6.tokenMatch;
|
|
386
|
-
var lastToken = tokenMatch == null ? void 0 : tokenMatch[tokenMatch.length - 1]
|
|
386
|
+
var lastToken = tokenMatch == null ? void 0 : tokenMatch[tokenMatch.length - 1];
|
|
387
387
|
var handleMentionsTrigger = lastToken && Object.keys(triggerSettings).find(function (trigger) {
|
|
388
388
|
return trigger === lastToken[0];
|
|
389
389
|
}) || null;
|
|
@@ -473,7 +473,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
473
473
|
break;
|
|
474
474
|
}
|
|
475
475
|
|
|
476
|
-
mentionTokenMatch = text.slice(0, selectionEnd.current).match(/(?!^|\W)?@[^\s]*\s?[^\s]*$/g);
|
|
476
|
+
mentionTokenMatch = text.slice(0, selectionEnd.current).match(/(?!^|\W)?@[^\s@]*\s?[^\s@]*$/g);
|
|
477
477
|
|
|
478
478
|
if (mentionTokenMatch) {
|
|
479
479
|
handleMentions({
|
|
@@ -541,7 +541,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
541
541
|
__self: _this,
|
|
542
542
|
__source: {
|
|
543
543
|
fileName: _jsxFileName,
|
|
544
|
-
lineNumber:
|
|
544
|
+
lineNumber: 416,
|
|
545
545
|
columnNumber: 5
|
|
546
546
|
}
|
|
547
547
|
}));
|
|
@@ -615,7 +615,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
|
|
|
615
615
|
__self: _this,
|
|
616
616
|
__source: {
|
|
617
617
|
fileName: _jsxFileName,
|
|
618
|
-
lineNumber:
|
|
618
|
+
lineNumber: 524,
|
|
619
619
|
columnNumber: 5
|
|
620
620
|
}
|
|
621
621
|
}));
|
|
@@ -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","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","Component","component","undefined","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","search","RegExp","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevGiphyActive","prevT","prevText","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, TextInput } from 'react-native';\nimport throttle from 'lodash/throttle';\n\nimport { CommandsHeader } from './CommandsHeader';\nimport { EmojisHeader } from './EmojisHeader';\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 { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { TextInputProps } from 'react-native';\n\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\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 At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\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<Co, Us>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'>;\n\nexport type AutoCompleteInputProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst AutoCompleteInputWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\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: 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 { component: Component } = triggerSetting;\n openSuggestions(\n typeof Component === 'string' ? Component : <Component />,\n trigger === ':' ? (\n <EmojisHeader title='' />\n ) : trigger === '/' ? (\n <CommandsHeader />\n ) : undefined,\n );\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<Us>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\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<Co>['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 });\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 {\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n },\n <EmojisHeader title={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<Co, Us>;\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.search(\n /**\n * It's important to escape the trigger char for chars like [, (,...\n */\n new RegExp(`\\\\${trigger}${`[^\\\\${trigger}${'\\\\s'}]`}*$`),\n );\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].trim();\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 (giphyEnabled && !(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 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={giphyActive ? t('Search GIFs') : t('Send a message')}\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 = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyActive: prevGiphyActive, t: prevT, text: prevText } = prevProps;\n const { giphyActive: nextGiphyActive, t: nextT, text: nextText } = 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 return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: AutoCompleteInputProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyEnabled } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();\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<At, Ch, Co, Ev, Me, Re, Us>();\n const { closeSuggestions, openSuggestions, updateSuggestions } = useSuggestionsContext<Co, Us>();\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","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","Component","component","undefined","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","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","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevGiphyActive","prevT","prevText","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, TextInput } from 'react-native';\nimport throttle from 'lodash/throttle';\n\nimport { CommandsHeader } from './CommandsHeader';\nimport { EmojisHeader } from './EmojisHeader';\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 { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { TextInputProps } from 'react-native';\n\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\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 At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\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<Co, Us>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'>;\n\nexport type AutoCompleteInputProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst AutoCompleteInputWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\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: 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 { component: Component } = triggerSetting;\n openSuggestions(\n typeof Component === 'string' ? Component : <Component />,\n trigger === ':' ? (\n <EmojisHeader title='' />\n ) : trigger === '/' ? (\n <CommandsHeader />\n ) : undefined,\n );\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<Us>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\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<Co>['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 });\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 {\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n },\n <EmojisHeader title={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<Co, Us>;\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 (giphyEnabled && !(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 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={giphyActive ? t('Search GIFs') : t('Send a message')}\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 = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyActive: prevGiphyActive, t: prevT, text: prevText } = prevProps;\n const { giphyActive: nextGiphyActive, t: nextT, text: nextText } = 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 return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: AutoCompleteInputProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyEnabled } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();\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<At, Ch, Co, Ev, Me, Re, Us>();\n const { closeSuggestions, openSuggestions, updateSuggestions } = useSuggestionsContext<Co, Us>();\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"]}
|
|
@@ -203,7 +203,7 @@ var debounceOptions = {
|
|
|
203
203
|
var unreadMessagesOnInitialLoadLimit = 2;
|
|
204
204
|
|
|
205
205
|
var ChannelWithContext = function ChannelWithContext(props) {
|
|
206
|
-
var _channel$state, _channel$state$thread, _client$user, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _channel$data, _ref28
|
|
206
|
+
var _channel$state, _channel$state$thread, _client$user, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _channel$data, _ref28;
|
|
207
207
|
|
|
208
208
|
var additionalKeyboardAvoidingViewProps = props.additionalKeyboardAvoidingViewProps,
|
|
209
209
|
additionalTextInputProps = props.additionalTextInputProps,
|
|
@@ -422,93 +422,98 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
422
422
|
|
|
423
423
|
var _useState = (0, _react.useState)(false),
|
|
424
424
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
425
|
-
|
|
426
|
-
|
|
425
|
+
deleted = _useState2[0],
|
|
426
|
+
setDeleted = _useState2[1];
|
|
427
427
|
|
|
428
428
|
var _useState3 = (0, _react.useState)(false),
|
|
429
429
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
430
|
-
|
|
431
|
-
|
|
430
|
+
editing = _useState4[0],
|
|
431
|
+
setEditing = _useState4[1];
|
|
432
432
|
|
|
433
|
-
var _useState5 = (0, _react.useState)(
|
|
433
|
+
var _useState5 = (0, _react.useState)(false),
|
|
434
434
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
435
|
-
|
|
436
|
-
|
|
435
|
+
error = _useState6[0],
|
|
436
|
+
setError = _useState6[1];
|
|
437
437
|
|
|
438
|
-
var _useState7 = (0, _react.useState)(),
|
|
438
|
+
var _useState7 = (0, _react.useState)(true),
|
|
439
439
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
440
|
-
|
|
441
|
-
|
|
440
|
+
hasMore = _useState8[0],
|
|
441
|
+
setHasMore = _useState8[1];
|
|
442
442
|
|
|
443
|
-
var _useState9 = (0, _react.useState)(
|
|
443
|
+
var _useState9 = (0, _react.useState)(),
|
|
444
444
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
445
|
-
|
|
446
|
-
|
|
445
|
+
lastRead = _useState10[0],
|
|
446
|
+
setLastRead = _useState10[1];
|
|
447
447
|
|
|
448
|
-
var _useState11 = (0, _react.useState)(
|
|
448
|
+
var _useState11 = (0, _react.useState)(true),
|
|
449
449
|
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
450
|
-
|
|
451
|
-
|
|
450
|
+
loading = _useState12[0],
|
|
451
|
+
setLoading = _useState12[1];
|
|
452
452
|
|
|
453
453
|
var _useState13 = (0, _react.useState)(false),
|
|
454
454
|
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
455
|
-
|
|
456
|
-
|
|
455
|
+
loadingMore = _useState14[0],
|
|
456
|
+
setLoadingMore = _useState14[1];
|
|
457
457
|
|
|
458
|
-
var _useState15 = (0, _react.useState)(
|
|
458
|
+
var _useState15 = (0, _react.useState)(false),
|
|
459
459
|
_useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
|
|
460
|
-
|
|
461
|
-
|
|
460
|
+
loadingMoreRecent = _useState16[0],
|
|
461
|
+
setLoadingMoreRecent = _useState16[1];
|
|
462
462
|
|
|
463
|
-
var _useState17 = (0, _react.useState)(
|
|
463
|
+
var _useState17 = (0, _react.useState)([]),
|
|
464
464
|
_useState18 = (0, _slicedToArray2["default"])(_useState17, 2),
|
|
465
|
-
|
|
466
|
-
|
|
465
|
+
messages = _useState18[0],
|
|
466
|
+
setMessages = _useState18[1];
|
|
467
467
|
|
|
468
|
-
var _useState19 = (0, _react.useState)(
|
|
468
|
+
var _useState19 = (0, _react.useState)({}),
|
|
469
469
|
_useState20 = (0, _slicedToArray2["default"])(_useState19, 2),
|
|
470
|
-
|
|
471
|
-
|
|
470
|
+
members = _useState20[0],
|
|
471
|
+
setMembers = _useState20[1];
|
|
472
472
|
|
|
473
|
-
var _useState21 = (0, _react.useState)(
|
|
473
|
+
var _useState21 = (0, _react.useState)(false),
|
|
474
474
|
_useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
|
|
475
|
-
|
|
476
|
-
|
|
475
|
+
quotedMessage = _useState22[0],
|
|
476
|
+
setQuotedMessage = _useState22[1];
|
|
477
477
|
|
|
478
|
-
var _useState23 = (0, _react.useState)(
|
|
478
|
+
var _useState23 = (0, _react.useState)({}),
|
|
479
479
|
_useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
|
|
480
|
-
|
|
481
|
-
|
|
480
|
+
read = _useState24[0],
|
|
481
|
+
setRead = _useState24[1];
|
|
482
482
|
|
|
483
|
-
var _useState25 = (0, _react.useState)(
|
|
483
|
+
var _useState25 = (0, _react.useState)(threadProps || null),
|
|
484
484
|
_useState26 = (0, _slicedToArray2["default"])(_useState25, 2),
|
|
485
|
-
|
|
486
|
-
|
|
485
|
+
thread = _useState26[0],
|
|
486
|
+
setThread = _useState26[1];
|
|
487
487
|
|
|
488
|
-
var _useState27 = (0, _react.useState)(
|
|
488
|
+
var _useState27 = (0, _react.useState)(true),
|
|
489
489
|
_useState28 = (0, _slicedToArray2["default"])(_useState27, 2),
|
|
490
|
-
|
|
491
|
-
|
|
490
|
+
threadHasMore = _useState28[0],
|
|
491
|
+
setThreadHasMore = _useState28[1];
|
|
492
492
|
|
|
493
|
-
var _useState29 = (0, _react.useState)(
|
|
493
|
+
var _useState29 = (0, _react.useState)(false),
|
|
494
494
|
_useState30 = (0, _slicedToArray2["default"])(_useState29, 2),
|
|
495
|
-
|
|
496
|
-
|
|
495
|
+
threadLoadingMore = _useState30[0],
|
|
496
|
+
setThreadLoadingMore = _useState30[1];
|
|
497
497
|
|
|
498
|
-
var _useState31 = (0, _react.useState)(
|
|
498
|
+
var _useState31 = (0, _react.useState)((threadProps == null ? void 0 : threadProps.id) && (channel == null ? void 0 : (_channel$state = channel.state) == null ? void 0 : (_channel$state$thread = _channel$state.threads) == null ? void 0 : _channel$state$thread[threadProps.id]) || []),
|
|
499
499
|
_useState32 = (0, _slicedToArray2["default"])(_useState31, 2),
|
|
500
|
-
|
|
501
|
-
|
|
500
|
+
threadMessages = _useState32[0],
|
|
501
|
+
setThreadMessages = _useState32[1];
|
|
502
502
|
|
|
503
|
-
var _useState33 = (0, _react.useState)(),
|
|
503
|
+
var _useState33 = (0, _react.useState)({}),
|
|
504
504
|
_useState34 = (0, _slicedToArray2["default"])(_useState33, 2),
|
|
505
|
-
|
|
506
|
-
|
|
505
|
+
typing = _useState34[0],
|
|
506
|
+
setTyping = _useState34[1];
|
|
507
507
|
|
|
508
|
-
var _useState35 = (0, _react.useState)(
|
|
508
|
+
var _useState35 = (0, _react.useState)(),
|
|
509
509
|
_useState36 = (0, _slicedToArray2["default"])(_useState35, 2),
|
|
510
|
-
|
|
511
|
-
|
|
510
|
+
watcherCount = _useState36[0],
|
|
511
|
+
setWatcherCount = _useState36[1];
|
|
512
|
+
|
|
513
|
+
var _useState37 = (0, _react.useState)({}),
|
|
514
|
+
_useState38 = (0, _slicedToArray2["default"])(_useState37, 2),
|
|
515
|
+
watchers = _useState38[0],
|
|
516
|
+
setWatchers = _useState38[1];
|
|
512
517
|
|
|
513
518
|
var _useTargetedMessage = (0, _useTargetedMessage2.useTargetedMessage)(messageId),
|
|
514
519
|
setTargetedMessage = _useTargetedMessage.setTargetedMessage,
|
|
@@ -574,9 +579,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
574
579
|
var isModerator = (channel == null ? void 0 : channel.state.membership.role) === 'channel_moderator' || (channel == null ? void 0 : channel.state.membership.role) === 'moderator';
|
|
575
580
|
var isOwner = (channel == null ? void 0 : channel.state.membership.role) === 'owner';
|
|
576
581
|
var markRead = (0, _react.useRef)((0, _throttle["default"])(function () {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
if (channel != null && channel.disconnected || !(channel != null && channel.getConfig != null && (_channel$getConfig = channel.getConfig()) != null && _channel$getConfig.read_events)) {
|
|
582
|
+
if (!channel || channel != null && channel.disconnected || !(clientChannelConfig != null && clientChannelConfig.read_events)) {
|
|
580
583
|
return;
|
|
581
584
|
}
|
|
582
585
|
|
|
@@ -655,13 +658,29 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
655
658
|
};
|
|
656
659
|
|
|
657
660
|
(0, _react.useEffect)(function () {
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
+
var channelSubscriptions = [];
|
|
662
|
+
var clientSubscriptions = [];
|
|
663
|
+
|
|
664
|
+
var subscribe = function subscribe() {
|
|
665
|
+
if (!channel) return;
|
|
666
|
+
clientSubscriptions.push(client.on('connection.recovered', connectionRecoveredHandler));
|
|
667
|
+
clientSubscriptions.push(client.on('connection.changed', connectionChangedHandler));
|
|
668
|
+
clientSubscriptions.push(client.on('channel.deleted', function (event) {
|
|
669
|
+
if (event.cid === channel.cid) {
|
|
670
|
+
setDeleted(true);
|
|
671
|
+
}
|
|
672
|
+
}));
|
|
673
|
+
channelSubscriptions.push(channel.on(handleEvent));
|
|
674
|
+
};
|
|
675
|
+
|
|
676
|
+
subscribe();
|
|
661
677
|
return function () {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
678
|
+
clientSubscriptions.forEach(function (s) {
|
|
679
|
+
return s.unsubscribe();
|
|
680
|
+
});
|
|
681
|
+
channelSubscriptions.forEach(function (s) {
|
|
682
|
+
return s.unsubscribe();
|
|
683
|
+
});
|
|
665
684
|
};
|
|
666
685
|
}, [channelId, connectionRecoveredHandler, handleEvent]);
|
|
667
686
|
|
|
@@ -1244,7 +1263,15 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1244
1263
|
};
|
|
1245
1264
|
}();
|
|
1246
1265
|
|
|
1247
|
-
var
|
|
1266
|
+
var getChannelConfigSafely = function getChannelConfigSafely() {
|
|
1267
|
+
try {
|
|
1268
|
+
return channel == null ? void 0 : channel.getConfig();
|
|
1269
|
+
} catch (_) {
|
|
1270
|
+
return null;
|
|
1271
|
+
}
|
|
1272
|
+
};
|
|
1273
|
+
|
|
1274
|
+
var clientChannelConfig = getChannelConfigSafely();
|
|
1248
1275
|
var messagesConfig = {
|
|
1249
1276
|
mutesEnabled: (_ref14 = mutesEnabledProp != null ? mutesEnabledProp : clientChannelConfig == null ? void 0 : clientChannelConfig.mutes) != null ? _ref14 : true,
|
|
1250
1277
|
quotedRepliesEnabled: quotedRepliesEnabledProp != null ? quotedRepliesEnabledProp : true,
|
|
@@ -1772,7 +1799,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1772
1799
|
enableMessageGroupingByUser: enableMessageGroupingByUser,
|
|
1773
1800
|
enforceUniqueReaction: enforceUniqueReaction,
|
|
1774
1801
|
error: error,
|
|
1775
|
-
giphyEnabled: giphyEnabled != null ? giphyEnabled : !!((_ref28 = (
|
|
1802
|
+
giphyEnabled: giphyEnabled != null ? giphyEnabled : !!((_ref28 = (clientChannelConfig == null ? void 0 : clientChannelConfig.commands) || []) != null && _ref28.some(function (command) {
|
|
1776
1803
|
return command.name === 'giphy';
|
|
1777
1804
|
})),
|
|
1778
1805
|
hideDateSeparators: hideDateSeparators,
|
|
@@ -1947,6 +1974,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1947
1974
|
var typingContext = (0, _useCreateTypingContext.useCreateTypingContext)({
|
|
1948
1975
|
typing: typing
|
|
1949
1976
|
});
|
|
1977
|
+
if (deleted) return null;
|
|
1950
1978
|
|
|
1951
1979
|
if (!channel || error && messages.length === 0) {
|
|
1952
1980
|
return _react["default"].createElement(LoadingErrorIndicator, {
|
|
@@ -1956,7 +1984,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1956
1984
|
__self: _this,
|
|
1957
1985
|
__source: {
|
|
1958
1986
|
fileName: _jsxFileName,
|
|
1959
|
-
lineNumber:
|
|
1987
|
+
lineNumber: 1812,
|
|
1960
1988
|
columnNumber: 12
|
|
1961
1989
|
}
|
|
1962
1990
|
});
|
|
@@ -1971,7 +1999,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1971
1999
|
__self: _this,
|
|
1972
2000
|
__source: {
|
|
1973
2001
|
fileName: _jsxFileName,
|
|
1974
|
-
lineNumber:
|
|
2002
|
+
lineNumber: 1817,
|
|
1975
2003
|
columnNumber: 7
|
|
1976
2004
|
}
|
|
1977
2005
|
}, t('Please select a channel first'));
|
|
@@ -1985,7 +2013,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1985
2013
|
__self: _this,
|
|
1986
2014
|
__source: {
|
|
1987
2015
|
fileName: _jsxFileName,
|
|
1988
|
-
lineNumber:
|
|
2016
|
+
lineNumber: 1824,
|
|
1989
2017
|
columnNumber: 5
|
|
1990
2018
|
}
|
|
1991
2019
|
}), _react["default"].createElement(_ChannelContext.ChannelProvider, {
|
|
@@ -1993,7 +2021,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1993
2021
|
__self: _this,
|
|
1994
2022
|
__source: {
|
|
1995
2023
|
fileName: _jsxFileName,
|
|
1996
|
-
lineNumber:
|
|
2024
|
+
lineNumber: 1830,
|
|
1997
2025
|
columnNumber: 7
|
|
1998
2026
|
}
|
|
1999
2027
|
}, _react["default"].createElement(_TypingContext.TypingProvider, {
|
|
@@ -2001,7 +2029,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2001
2029
|
__self: _this,
|
|
2002
2030
|
__source: {
|
|
2003
2031
|
fileName: _jsxFileName,
|
|
2004
|
-
lineNumber:
|
|
2032
|
+
lineNumber: 1831,
|
|
2005
2033
|
columnNumber: 9
|
|
2006
2034
|
}
|
|
2007
2035
|
}, _react["default"].createElement(_PaginatedMessageListContext.PaginatedMessageListProvider, {
|
|
@@ -2009,7 +2037,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2009
2037
|
__self: _this,
|
|
2010
2038
|
__source: {
|
|
2011
2039
|
fileName: _jsxFileName,
|
|
2012
|
-
lineNumber:
|
|
2040
|
+
lineNumber: 1832,
|
|
2013
2041
|
columnNumber: 11
|
|
2014
2042
|
}
|
|
2015
2043
|
}, _react["default"].createElement(_MessagesContext.MessagesProvider, {
|
|
@@ -2017,7 +2045,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2017
2045
|
__self: _this,
|
|
2018
2046
|
__source: {
|
|
2019
2047
|
fileName: _jsxFileName,
|
|
2020
|
-
lineNumber:
|
|
2048
|
+
lineNumber: 1833,
|
|
2021
2049
|
columnNumber: 13
|
|
2022
2050
|
}
|
|
2023
2051
|
}, _react["default"].createElement(_ThreadContext.ThreadProvider, {
|
|
@@ -2025,7 +2053,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2025
2053
|
__self: _this,
|
|
2026
2054
|
__source: {
|
|
2027
2055
|
fileName: _jsxFileName,
|
|
2028
|
-
lineNumber:
|
|
2056
|
+
lineNumber: 1834,
|
|
2029
2057
|
columnNumber: 15
|
|
2030
2058
|
}
|
|
2031
2059
|
}, _react["default"].createElement(_SuggestionsContext.SuggestionsProvider, {
|
|
@@ -2033,7 +2061,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2033
2061
|
__self: _this,
|
|
2034
2062
|
__source: {
|
|
2035
2063
|
fileName: _jsxFileName,
|
|
2036
|
-
lineNumber:
|
|
2064
|
+
lineNumber: 1835,
|
|
2037
2065
|
columnNumber: 17
|
|
2038
2066
|
}
|
|
2039
2067
|
}, _react["default"].createElement(_MessageInputContext.MessageInputProvider, {
|
|
@@ -2041,7 +2069,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2041
2069
|
__self: _this,
|
|
2042
2070
|
__source: {
|
|
2043
2071
|
fileName: _jsxFileName,
|
|
2044
|
-
lineNumber:
|
|
2072
|
+
lineNumber: 1836,
|
|
2045
2073
|
columnNumber: 19
|
|
2046
2074
|
}
|
|
2047
2075
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -2051,7 +2079,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2051
2079
|
__self: _this,
|
|
2052
2080
|
__source: {
|
|
2053
2081
|
fileName: _jsxFileName,
|
|
2054
|
-
lineNumber:
|
|
2082
|
+
lineNumber: 1837,
|
|
2055
2083
|
columnNumber: 21
|
|
2056
2084
|
}
|
|
2057
2085
|
}, children)))))))));
|
|
@@ -2071,7 +2099,7 @@ var Channel = function Channel(props) {
|
|
|
2071
2099
|
__self: _this,
|
|
2072
2100
|
__source: {
|
|
2073
2101
|
fileName: _jsxFileName,
|
|
2074
|
-
lineNumber:
|
|
2102
|
+
lineNumber: 1882,
|
|
2075
2103
|
columnNumber: 5
|
|
2076
2104
|
}
|
|
2077
2105
|
}));
|