stream-chat-react-native-core 5.25.0-beta.6 → 5.25.0-beta.7
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/Channel/Channel.js +20 -15
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +5 -2
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +7 -3
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +7 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +5 -5
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +32 -30
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/i18n/es.json +23 -23
- package/lib/commonjs/i18n/fr.json +23 -23
- package/lib/commonjs/i18n/he.json +23 -23
- package/lib/commonjs/i18n/hi.json +23 -23
- package/lib/commonjs/i18n/it.json +23 -23
- package/lib/commonjs/i18n/ja.json +23 -23
- package/lib/commonjs/i18n/ko.json +23 -23
- package/lib/commonjs/i18n/nl.json +23 -23
- package/lib/commonjs/i18n/ru.json +20 -20
- package/lib/commonjs/i18n/tr.json +20 -20
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +20 -15
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +22 -5
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -1
- package/lib/module/components/Message/Message.js +5 -2
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +7 -3
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +7 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +5 -5
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +32 -30
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/i18n/es.json +23 -23
- package/lib/module/i18n/fr.json +23 -23
- package/lib/module/i18n/he.json +23 -23
- package/lib/module/i18n/hi.json +23 -23
- package/lib/module/i18n/it.json +23 -23
- package/lib/module/i18n/ja.json +23 -23
- package/lib/module/i18n/ko.json +23 -23
- package/lib/module/i18n/nl.json +23 -23
- package/lib/module/i18n/ru.json +20 -20
- package/lib/module/i18n/tr.json +20 -20
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +62 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +2 -2
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/i18n/es.json +23 -23
- package/lib/typescript/i18n/fr.json +23 -23
- package/lib/typescript/i18n/he.json +23 -23
- package/lib/typescript/i18n/hi.json +23 -23
- package/lib/typescript/i18n/it.json +23 -23
- package/lib/typescript/i18n/ja.json +23 -23
- package/lib/typescript/i18n/ko.json +23 -23
- package/lib/typescript/i18n/nl.json +23 -23
- package/lib/typescript/i18n/ru.json +20 -20
- package/lib/typescript/i18n/tr.json +20 -20
- package/package.json +2 -2
- package/src/components/Channel/Channel.tsx +8 -2
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +11 -1
- package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +24 -6
- package/src/components/Message/Message.tsx +6 -1
- package/src/components/Message/MessageSimple/MessageContent.tsx +5 -0
- package/src/components/Message/MessageSimple/MessageSimple.tsx +8 -2
- package/src/components/MessageInput/MessageInput.tsx +3 -7
- package/src/components/MessageList/MessageList.tsx +3 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +1 -1
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +3 -0
- package/src/i18n/es.json +23 -23
- package/src/i18n/fr.json +23 -23
- package/src/i18n/he.json +23 -23
- package/src/i18n/hi.json +23 -23
- package/src/i18n/it.json +23 -23
- package/src/i18n/ja.json +23 -23
- package/src/i18n/ko.json +23 -23
- package/src/i18n/nl.json +23 -23
- package/src/i18n/ru.json +20 -20
- package/src/i18n/tr.json +20 -20
- package/src/version.json +1 -1
|
@@ -14,6 +14,7 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
|
|
|
14
14
|
CommandsButton = _ref.CommandsButton,
|
|
15
15
|
compressImageQuality = _ref.compressImageQuality,
|
|
16
16
|
CooldownTimer = _ref.CooldownTimer,
|
|
17
|
+
disabled = _ref.disabled,
|
|
17
18
|
doDocUploadRequest = _ref.doDocUploadRequest,
|
|
18
19
|
doImageUploadRequest = _ref.doImageUploadRequest,
|
|
19
20
|
editing = _ref.editing,
|
|
@@ -59,6 +60,7 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
|
|
|
59
60
|
CommandsButton: CommandsButton,
|
|
60
61
|
compressImageQuality: compressImageQuality,
|
|
61
62
|
CooldownTimer: CooldownTimer,
|
|
63
|
+
disabled: disabled,
|
|
62
64
|
doDocUploadRequest: doDocUploadRequest,
|
|
63
65
|
doImageUploadRequest: doImageUploadRequest,
|
|
64
66
|
editing: editing,
|
|
@@ -92,7 +94,7 @@ var useCreateInputMessageInputContext = function useCreateInputMessageInputConte
|
|
|
92
94
|
ShowThreadMessageInChannelButton: ShowThreadMessageInChannelButton,
|
|
93
95
|
UploadProgressIndicator: UploadProgressIndicator
|
|
94
96
|
};
|
|
95
|
-
}, [compressImageQuality, channelId, editingDep, initialValue, maxMessageLength, quotedMessageId]);
|
|
97
|
+
}, [compressImageQuality, channelId, disabled, editingDep, initialValue, maxMessageLength, quotedMessageId]);
|
|
96
98
|
return inputMessageInputContext;
|
|
97
99
|
};
|
|
98
100
|
exports.useCreateInputMessageInputContext = useCreateInputMessageInputContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","useCreateInputMessageInputContext","_ref","additionalTextInputProps","AttachButton","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","emojiSearchIndex","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingDep","id","quotedMessageId","inputMessageInputContext","useMemo","exports"],"sources":["useCreateInputMessageInputContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n emojiSearchIndex,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingDep = typeof editing === 'boolean' ? editing : editing?.id;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n emojiSearchIndex,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [compressImageQuality
|
|
1
|
+
{"version":3,"names":["_react","require","useCreateInputMessageInputContext","_ref","additionalTextInputProps","AttachButton","autoCompleteSuggestionsLimit","autoCompleteTriggerSettings","channelId","clearEditingState","clearQuotedMessageState","CommandsButton","compressImageQuality","CooldownTimer","disabled","doDocUploadRequest","doImageUploadRequest","editing","editMessage","emojiSearchIndex","FileUploadPreview","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","initialValue","Input","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","MoreOptionsButton","numberOfLines","onChangeText","quotedMessage","SendButton","sendImageAsync","sendMessage","SendMessageDisallowedIndicator","setInputRef","setQuotedMessageState","ShowThreadMessageInChannelButton","UploadProgressIndicator","editingDep","id","quotedMessageId","inputMessageInputContext","useMemo","exports"],"sources":["useCreateInputMessageInputContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { InputMessageInputContextValue } from '../../../contexts/messageInputContext/MessageInputContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateInputMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n channelId,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n disabled,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n emojiSearchIndex,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n}: InputMessageInputContextValue<StreamChatGenerics> & {\n /**\n * To ensure we allow re-render, when channel is changed\n */\n channelId?: string;\n}) => {\n const editingDep = typeof editing === 'boolean' ? editing : editing?.id;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n\n const inputMessageInputContext: InputMessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n AttachButton,\n autoCompleteSuggestionsLimit,\n autoCompleteTriggerSettings,\n clearEditingState,\n clearQuotedMessageState,\n CommandsButton,\n compressImageQuality,\n CooldownTimer,\n disabled,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n emojiSearchIndex,\n FileUploadPreview,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n initialValue,\n Input,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n MoreOptionsButton,\n numberOfLines,\n onChangeText,\n quotedMessage,\n SendButton,\n sendImageAsync,\n sendMessage,\n SendMessageDisallowedIndicator,\n setInputRef,\n setQuotedMessageState,\n ShowThreadMessageInChannelButton,\n UploadProgressIndicator,\n }),\n [\n compressImageQuality,\n channelId,\n disabled,\n editingDep,\n initialValue,\n maxMessageLength,\n quotedMessageId,\n ],\n );\n\n return inputMessageInputContext;\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKO,IAAMC,iCAAiC,GAAG,SAApCA,iCAAiCA,CAAAC,IAAA,EAmDxC;EAAA,IAhDJC,wBAAwB,GAAAD,IAAA,CAAxBC,wBAAwB;IACxBC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,4BAA4B,GAAAH,IAAA,CAA5BG,4BAA4B;IAC5BC,2BAA2B,GAAAJ,IAAA,CAA3BI,2BAA2B;IAC3BC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,iBAAiB,GAAAN,IAAA,CAAjBM,iBAAiB;IACjBC,uBAAuB,GAAAP,IAAA,CAAvBO,uBAAuB;IACvBC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,oBAAoB,GAAAT,IAAA,CAApBS,oBAAoB;IACpBC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,QAAQ,GAAAX,IAAA,CAARW,QAAQ;IACRC,kBAAkB,GAAAZ,IAAA,CAAlBY,kBAAkB;IAClBC,oBAAoB,GAAAb,IAAA,CAApBa,oBAAoB;IACpBC,OAAO,GAAAd,IAAA,CAAPc,OAAO;IACPC,WAAW,GAAAf,IAAA,CAAXe,WAAW;IACXC,gBAAgB,GAAAhB,IAAA,CAAhBgB,gBAAgB;IAChBC,iBAAiB,GAAAjB,IAAA,CAAjBiB,iBAAiB;IACjBC,WAAW,GAAAlB,IAAA,CAAXkB,WAAW;IACXC,aAAa,GAAAnB,IAAA,CAAbmB,aAAa;IACbC,cAAc,GAAApB,IAAA,CAAdoB,cAAc;IACdC,kBAAkB,GAAArB,IAAA,CAAlBqB,kBAAkB;IAClBC,YAAY,GAAAtB,IAAA,CAAZsB,YAAY;IACZC,KAAK,GAAAvB,IAAA,CAALuB,KAAK;IACLC,YAAY,GAAAxB,IAAA,CAAZwB,YAAY;IACZC,uBAAuB,GAAAzB,IAAA,CAAvByB,uBAAuB;IACvBC,gBAAgB,GAAA1B,IAAA,CAAhB0B,gBAAgB;IAChBC,qBAAqB,GAAA3B,IAAA,CAArB2B,qBAAqB;IACrBC,gBAAgB,GAAA5B,IAAA,CAAhB4B,gBAAgB;IAChBC,gBAAgB,GAAA7B,IAAA,CAAhB6B,gBAAgB;IAChBC,yBAAyB,GAAA9B,IAAA,CAAzB8B,yBAAyB;IACzBC,uBAAuB,GAAA/B,IAAA,CAAvB+B,uBAAuB;IACvBC,iBAAiB,GAAAhC,IAAA,CAAjBgC,iBAAiB;IACjBC,aAAa,GAAAjC,IAAA,CAAbiC,aAAa;IACbC,YAAY,GAAAlC,IAAA,CAAZkC,YAAY;IACZC,aAAa,GAAAnC,IAAA,CAAbmC,aAAa;IACbC,UAAU,GAAApC,IAAA,CAAVoC,UAAU;IACVC,cAAc,GAAArC,IAAA,CAAdqC,cAAc;IACdC,WAAW,GAAAtC,IAAA,CAAXsC,WAAW;IACXC,8BAA8B,GAAAvC,IAAA,CAA9BuC,8BAA8B;IAC9BC,WAAW,GAAAxC,IAAA,CAAXwC,WAAW;IACXC,qBAAqB,GAAAzC,IAAA,CAArByC,qBAAqB;IACrBC,gCAAgC,GAAA1C,IAAA,CAAhC0C,gCAAgC;IAChCC,uBAAuB,GAAA3C,IAAA,CAAvB2C,uBAAuB;EAOvB,IAAMC,UAAU,GAAG,OAAO9B,OAAO,KAAK,SAAS,GAAGA,OAAO,GAAGA,OAAO,oBAAPA,OAAO,CAAE+B,EAAE;EACvE,IAAMC,eAAe,GAAGX,aAAa,GACjC,OAAOA,aAAa,KAAK,SAAS,GAChC,EAAE,GACFA,aAAa,CAACU,EAAE,GAClB,EAAE;EAEN,IAAME,wBAA2E,GAAG,IAAAC,cAAO,EACzF;IAAA,OAAO;MACL/C,wBAAwB,EAAxBA,wBAAwB;MACxBC,YAAY,EAAZA,YAAY;MACZC,4BAA4B,EAA5BA,4BAA4B;MAC5BC,2BAA2B,EAA3BA,2BAA2B;MAC3BE,iBAAiB,EAAjBA,iBAAiB;MACjBC,uBAAuB,EAAvBA,uBAAuB;MACvBC,cAAc,EAAdA,cAAc;MACdC,oBAAoB,EAApBA,oBAAoB;MACpBC,aAAa,EAAbA,aAAa;MACbC,QAAQ,EAARA,QAAQ;MACRC,kBAAkB,EAAlBA,kBAAkB;MAClBC,oBAAoB,EAApBA,oBAAoB;MACpBC,OAAO,EAAPA,OAAO;MACPC,WAAW,EAAXA,WAAW;MACXC,gBAAgB,EAAhBA,gBAAgB;MAChBC,iBAAiB,EAAjBA,iBAAiB;MACjBC,WAAW,EAAXA,WAAW;MACXC,aAAa,EAAbA,aAAa;MACbC,cAAc,EAAdA,cAAc;MACdC,kBAAkB,EAAlBA,kBAAkB;MAClBC,YAAY,EAAZA,YAAY;MACZC,KAAK,EAALA,KAAK;MACLC,YAAY,EAAZA,YAAY;MACZC,uBAAuB,EAAvBA,uBAAuB;MACvBC,gBAAgB,EAAhBA,gBAAgB;MAChBC,qBAAqB,EAArBA,qBAAqB;MACrBC,gBAAgB,EAAhBA,gBAAgB;MAChBC,gBAAgB,EAAhBA,gBAAgB;MAChBC,yBAAyB,EAAzBA,yBAAyB;MACzBC,uBAAuB,EAAvBA,uBAAuB;MACvBC,iBAAiB,EAAjBA,iBAAiB;MACjBC,aAAa,EAAbA,aAAa;MACbC,YAAY,EAAZA,YAAY;MACZC,aAAa,EAAbA,aAAa;MACbC,UAAU,EAAVA,UAAU;MACVC,cAAc,EAAdA,cAAc;MACdC,WAAW,EAAXA,WAAW;MACXC,8BAA8B,EAA9BA,8BAA8B;MAC9BC,WAAW,EAAXA,WAAW;MACXC,qBAAqB,EAArBA,qBAAqB;MACrBC,gCAAgC,EAAhCA,gCAAgC;MAChCC,uBAAuB,EAAvBA;IACF,CAAC;EAAA,CAAC,EACF,CACElC,oBAAoB,EACpBJ,SAAS,EACTM,QAAQ,EACRiC,UAAU,EACVtB,YAAY,EACZM,gBAAgB,EAChBkB,eAAe,CAEnB,CAAC;EAED,OAAOC,wBAAwB;AACjC,CAAC;AAACE,OAAA,CAAAlD,iCAAA,GAAAA,iCAAA"}
|
|
@@ -5,23 +5,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.useCreateOwnCapabilitiesContext = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
9
|
var _react = require("react");
|
|
9
10
|
var _OwnCapabilitiesContext = require("../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext");
|
|
10
11
|
var useCreateOwnCapabilitiesContext = function useCreateOwnCapabilitiesContext(_ref) {
|
|
11
|
-
var _channel$data, _channel$
|
|
12
|
+
var _channel$data, _channel$data3;
|
|
12
13
|
var channel = _ref.channel,
|
|
13
14
|
overrideCapabilities = _ref.overrideCapabilities;
|
|
15
|
+
var _useState = (0, _react.useState)(JSON.stringify((_channel$data = channel.data) == null ? void 0 : _channel$data.own_capabilities)),
|
|
16
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
17
|
+
own_capabilities = _useState2[0],
|
|
18
|
+
setOwnCapabilites = _useState2[1];
|
|
14
19
|
var overrideCapabilitiesStr = overrideCapabilities ? JSON.stringify(Object.values(overrideCapabilities)) : null;
|
|
15
|
-
|
|
20
|
+
(0, _react.useEffect)(function () {
|
|
21
|
+
var _channel$data2;
|
|
22
|
+
setOwnCapabilites(JSON.stringify((_channel$data2 = channel.data) == null ? void 0 : _channel$data2.own_capabilities));
|
|
23
|
+
}, [(_channel$data3 = channel.data) == null ? void 0 : _channel$data3.own_capabilities]);
|
|
24
|
+
(0, _react.useEffect)(function () {
|
|
25
|
+
var listener = channel.on('capabilities.changed', function (event) {
|
|
26
|
+
if (event.own_capabilities) {
|
|
27
|
+
setOwnCapabilites(JSON.stringify(event.own_capabilities));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return function () {
|
|
31
|
+
listener.unsubscribe();
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
16
34
|
var ownCapabilitiesContext = (0, _react.useMemo)(function () {
|
|
17
|
-
var
|
|
18
|
-
var capabilities = (channel == null ? void 0 : (_channel$data3 = channel.data) == null ? void 0 : _channel$data3.own_capabilities) || [];
|
|
35
|
+
var capabilities = own_capabilities || [];
|
|
19
36
|
var ownCapabilitiesContext = Object.keys(_OwnCapabilitiesContext.allOwnCapabilities).reduce(function (result, capability) {
|
|
20
37
|
var _overrideCapabilities;
|
|
21
38
|
return (0, _extends3["default"])({}, result, (0, _defineProperty2["default"])({}, capability, (_overrideCapabilities = overrideCapabilities == null ? void 0 : overrideCapabilities[capability]) != null ? _overrideCapabilities : !!capabilities.includes(_OwnCapabilitiesContext.allOwnCapabilities[capability])));
|
|
22
39
|
}, {});
|
|
23
40
|
return ownCapabilitiesContext;
|
|
24
|
-
}, [channel.id, overrideCapabilitiesStr,
|
|
41
|
+
}, [channel.id, overrideCapabilitiesStr, own_capabilities]);
|
|
25
42
|
return ownCapabilitiesContext;
|
|
26
43
|
};
|
|
27
44
|
exports.useCreateOwnCapabilitiesContext = useCreateOwnCapabilitiesContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OwnCapabilitiesContext","useCreateOwnCapabilitiesContext","_ref","_channel$data","_channel$
|
|
1
|
+
{"version":3,"names":["_react","require","_OwnCapabilitiesContext","useCreateOwnCapabilitiesContext","_ref","_channel$data","_channel$data3","channel","overrideCapabilities","_useState","useState","JSON","stringify","data","own_capabilities","_useState2","_slicedToArray2","setOwnCapabilites","overrideCapabilitiesStr","Object","values","useEffect","_channel$data2","listener","on","event","unsubscribe","ownCapabilitiesContext","useMemo","capabilities","keys","allOwnCapabilities","reduce","result","capability","_overrideCapabilities","_extends3","_defineProperty2","includes","id","exports"],"sources":["useCreateOwnCapabilitiesContext.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport type { Channel } from 'stream-chat';\n\nimport {\n allOwnCapabilities,\n OwnCapabilitiesContextValue,\n OwnCapability,\n} from '../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateOwnCapabilitiesContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channel,\n overrideCapabilities,\n}: {\n channel: Channel<StreamChatGenerics>;\n overrideCapabilities?: Partial<OwnCapabilitiesContextValue>;\n}) => {\n const [own_capabilities, setOwnCapabilites] = useState(\n JSON.stringify(channel.data?.own_capabilities as Array<string>),\n );\n const overrideCapabilitiesStr = overrideCapabilities\n ? JSON.stringify(Object.values(overrideCapabilities))\n : null;\n\n // Effect to watch for changes in channel.data?.own_capabilities and update the own_capabilties state accordingly.\n useEffect(() => {\n setOwnCapabilites(JSON.stringify(channel.data?.own_capabilities as Array<string>));\n }, [channel.data?.own_capabilities]);\n\n // Effect to listen to the `capabilities.changed` event.\n useEffect(() => {\n const listener = channel.on('capabilities.changed', (event) => {\n if (event.own_capabilities) {\n setOwnCapabilites(JSON.stringify(event.own_capabilities as Array<string>));\n }\n });\n\n return () => {\n listener.unsubscribe();\n };\n }, []);\n\n const ownCapabilitiesContext: OwnCapabilitiesContextValue = useMemo(() => {\n const capabilities = (own_capabilities || []) as Array<string>;\n const ownCapabilitiesContext = Object.keys(allOwnCapabilities).reduce(\n (result, capability) => ({\n ...result,\n [capability]:\n overrideCapabilities?.[capability as OwnCapability] ??\n !!capabilities.includes(allOwnCapabilities[capability as OwnCapability]),\n }),\n {} as OwnCapabilitiesContextValue,\n );\n\n return ownCapabilitiesContext;\n }, [channel.id, overrideCapabilitiesStr, own_capabilities]);\n\n return ownCapabilitiesContext;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,uBAAA,GAAAD,OAAA;AAOO,IAAME,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAAC,IAAA,EAQtC;EAAA,IAAAC,aAAA,EAAAC,cAAA;EAAA,IALJC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,oBAAoB,GAAAJ,IAAA,CAApBI,oBAAoB;EAKpB,IAAAC,SAAA,GAA8C,IAAAC,eAAQ,EACpDC,IAAI,CAACC,SAAS,EAAAP,aAAA,GAACE,OAAO,CAACM,IAAI,qBAAZR,aAAA,CAAcS,gBAAiC,CAChE,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAP,SAAA;IAFMK,gBAAgB,GAAAC,UAAA;IAAEE,iBAAiB,GAAAF,UAAA;EAG1C,IAAMG,uBAAuB,GAAGV,oBAAoB,GAChDG,IAAI,CAACC,SAAS,CAACO,MAAM,CAACC,MAAM,CAACZ,oBAAoB,CAAC,CAAC,GACnD,IAAI;EAGR,IAAAa,gBAAS,EAAC,YAAM;IAAA,IAAAC,cAAA;IACdL,iBAAiB,CAACN,IAAI,CAACC,SAAS,EAAAU,cAAA,GAACf,OAAO,CAACM,IAAI,qBAAZS,cAAA,CAAcR,gBAAiC,CAAC,CAAC;EACpF,CAAC,EAAE,EAAAR,cAAA,GAACC,OAAO,CAACM,IAAI,qBAAZP,cAAA,CAAcQ,gBAAgB,CAAC,CAAC;EAGpC,IAAAO,gBAAS,EAAC,YAAM;IACd,IAAME,QAAQ,GAAGhB,OAAO,CAACiB,EAAE,CAAC,sBAAsB,EAAE,UAACC,KAAK,EAAK;MAC7D,IAAIA,KAAK,CAACX,gBAAgB,EAAE;QAC1BG,iBAAiB,CAACN,IAAI,CAACC,SAAS,CAACa,KAAK,CAACX,gBAAiC,CAAC,CAAC;MAC5E;IACF,CAAC,CAAC;IAEF,OAAO,YAAM;MACXS,QAAQ,CAACG,WAAW,CAAC,CAAC;IACxB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,sBAAmD,GAAG,IAAAC,cAAO,EAAC,YAAM;IACxE,IAAMC,YAAY,GAAIf,gBAAgB,IAAI,EAAoB;IAC9D,IAAMa,sBAAsB,GAAGR,MAAM,CAACW,IAAI,CAACC,0CAAkB,CAAC,CAACC,MAAM,CACnE,UAACC,MAAM,EAAEC,UAAU;MAAA,IAAAC,qBAAA;MAAA,WAAAC,SAAA,iBACdH,MAAM,MAAAI,gBAAA,iBACRH,UAAU,GAAAC,qBAAA,GACT3B,oBAAoB,oBAApBA,oBAAoB,CAAG0B,UAAU,CAAkB,YAAAC,qBAAA,GACnD,CAAC,CAACN,YAAY,CAACS,QAAQ,CAACP,0CAAkB,CAACG,UAAU,CAAkB,CAAC;IAAA,CAC1E,EACF,CAAC,CACH,CAAC;IAED,OAAOP,sBAAsB;EAC/B,CAAC,EAAE,CAACpB,OAAO,CAACgC,EAAE,EAAErB,uBAAuB,EAAEJ,gBAAgB,CAAC,CAAC;EAE3D,OAAOa,sBAAsB;AAC/B,CAAC;AAACa,OAAA,CAAArC,+BAAA,GAAAA,+BAAA"}
|
|
@@ -376,7 +376,6 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
376
376
|
message: message,
|
|
377
377
|
messageActions: messageActions == null ? void 0 : messageActions.filter(Boolean),
|
|
378
378
|
messageContext: (0, _extends2["default"])({}, messageContext, {
|
|
379
|
-
disabled: true,
|
|
380
379
|
preventPress: true
|
|
381
380
|
}),
|
|
382
381
|
messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,
|
|
@@ -569,6 +568,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
569
568
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
570
569
|
var _prevMessage$quoted_m, _nextMessage$quoted_m, _prevMessage$quoted_m2, _nextMessage$quoted_m2, _prevMessage$user, _nextMessage$user;
|
|
571
570
|
var prevMutedUsers = prevProps.chatContext.mutedUsers,
|
|
571
|
+
prevDisabled = prevProps.disabled,
|
|
572
572
|
prevGoToMessage = prevProps.goToMessage,
|
|
573
573
|
prevGroupStyles = prevProps.groupStyles,
|
|
574
574
|
isAttachmentEqual = prevProps.isAttachmentEqual,
|
|
@@ -580,6 +580,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
580
580
|
prevShowUnreadUnderlay = prevProps.showUnreadUnderlay,
|
|
581
581
|
prevT = prevProps.t;
|
|
582
582
|
var nextMutedUsers = nextProps.chatContext.mutedUsers,
|
|
583
|
+
nextDisabled = nextProps.disabled,
|
|
583
584
|
nextGoToMessage = nextProps.goToMessage,
|
|
584
585
|
nextGroupStyles = nextProps.groupStyles,
|
|
585
586
|
nextIsTargetedMessage = nextProps.isTargetedMessage,
|
|
@@ -589,6 +590,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
589
590
|
nextMessagesContext = nextProps.messagesContext,
|
|
590
591
|
nextShowUnreadUnderlay = nextProps.showUnreadUnderlay,
|
|
591
592
|
nextT = nextProps.t;
|
|
593
|
+
var disabledEqual = prevDisabled === nextDisabled;
|
|
594
|
+
if (!disabledEqual) return false;
|
|
592
595
|
var membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;
|
|
593
596
|
if (!membersEqual) return false;
|
|
594
597
|
var repliesEqual = prevMessage.reply_count === nextMessage.reply_count;
|
|
@@ -678,7 +681,7 @@ var Message = function Message(props) {
|
|
|
678
681
|
__self: _this,
|
|
679
682
|
__source: {
|
|
680
683
|
fileName: _jsxFileName,
|
|
681
|
-
lineNumber:
|
|
684
|
+
lineNumber: 936,
|
|
682
685
|
columnNumber: 5
|
|
683
686
|
}
|
|
684
687
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","myMessageTheme","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","prevMyMessageTheme","JSON","stringify","nextMyMessageTheme","messageThemeEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n actionHandlers?: MessageActionHandlers;\n additionalInfo?: Record<string, unknown>;\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, disabled: true, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n myMessageTheme: messagesContext.myMessageTheme,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n messagesContext: prevMessagesContext,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n messagesContext: nextMessagesContext,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n const prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const messageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCreateMessageContext","_useMessageActionHandlers","_useMessageActions2","_messageActions","_ChannelContext","_ChatContext","_KeyboardContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_OwnCapabilitiesContext","_ThemeContext","_ThreadContext","_TranslationContext","_native","_utils","_useMessageList","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageWithContext","props","_message$user","_useState","useState","_useState2","_slicedToArray2","isBounceDialogOpen","setIsBounceDialogOpen","isMessageTypeDeleted","message","type","sendReaction","channel","deleteMessageFromContext","deleteMessage","disabled","dismissKeyboard","dismissKeyboardOnMessageTouch","_props$enableLongPres","enableLongPress","enforceUniqueReaction","_props$forceAlignMess","forceAlignMessages","goToMessage","_props$groupStyles","groupStyles","handleBlock","handleCopy","handleDelete","handleEdit","handleFlag","handleMute","handlePinMessage","handleQuotedReply","handleReactionProp","handleReaction","handleRetry","handleThreadReply","chatContext","lastReceivedId","members","_props$messageActions","messageActions","messageActionsProp","defaultMessageActions","messageContentOrderProp","messageContentOrder","messagesContext","MessageBounce","MessageSimple","onLongPressProp","onLongPress","onLongPressMessageProp","onLongPressMessage","onPressProp","onPress","onPressMessageProp","onPressMessage","onPressInProp","onPressIn","onPressInMessageProp","onPressInMessage","onThreadSelect","openThread","OverlayReactionList","preventPress","removeMessage","deleteReaction","retrySendMessage","selectReaction","setData","setEditingState","setOverlay","setQuotedMessageState","showAvatar","showMessageStatus","showUnreadUnderlay","style","supportedReactions","t","isTargetedMessage","_props$threadList","threadList","updateMessage","client","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","bg_gradient_start","targetedMessageBackground","_useTheme$theme$messa","messageSimple","targetedMessageContainer","targetedMessageUnderlay","actionsEnabled","status","MessageStatusTypes","RECEIVED","isMyMessage","userID","user","id","handleAction","_ref","_asyncToGenerator2","_regenerator","mark","_callee","name","value","data","wrap","_callee$","_context","prev","next","sendAction","_defineProperty2","sent","parent_id","stop","_x","_x2","apply","arguments","onPressQuotedMessage","quotedMessage","errorOrFailed","FAILED","error","length","undefined","Keyboard","dismiss","quoted_message","isBlockedMessage","isBouncedMessage","showMessageOverlay","alignment","attachments","Array","isArray","reduce","acc","cur","files","push","other","og_scrape_url","isVideoPackageAvailable","videos","image_url","asset_url","thumb_url","title_link","images","hasAttachmentActions","some","attachment","actions","filter","content","text","emojiOnlyText","useMemo","hasOnlyEmojis","onlyEmojis","onOpenThread","hasReactions","latest_reactions","clientId","reactions","_message$latest_react","reactionType","reactionsOfReactionType","reaction","hasOwnReaction","user_id","own","ownCapabilities","useOwnCapabilitiesContext","_useMessageActionHand","useMessageActionHandlers","handleDeleteMessage","handleEditMessage","handleQuotedReplyMessage","handleResendMessage","handleToggleBanUser","handleToggleMuteUser","handleTogglePinMessage","handleToggleReaction","_useMessageActions","useMessageActions","blockUser","copyMessage","editMessage","flagMessage","muteUser","pinMessage","quotedReply","retry","threadReply","unpinMessage","_useTranslationContex","useTranslationContext","userLanguage","_ref2","_callee2","messageReactions","isThreadMessage","dismissOverlay","_args2","_callee2$","_context2","Boolean","messageContext","_extends2","messageReactionTitle","otherAttachments","actionHandlers","resendMessage","toggleBanUser","toggleMuteUser","toggleReaction","payload","defaultHandler","emitter","event","triggerHaptic","useCreateMessageContext","lastGroupMessage","myMessageTheme","onPressArgs","additionalInfo","handleOnPress","onPressInArgs","handleOnpressIn","createElement","View","pinned","backgroundColor","testID","__self","__source","fileName","lineNumber","columnNumber","MessageProvider","areEqual","prevProps","nextProps","_prevMessage$quoted_m","_nextMessage$quoted_m","_prevMessage$quoted_m2","_nextMessage$quoted_m2","_prevMessage$user","_nextMessage$user","prevMutedUsers","mutedUsers","prevDisabled","prevGoToMessage","prevGroupStyles","isAttachmentEqual","prevIsTargetedMessage","prevLastReceivedId","prevMembers","prevMessage","prevMessagesContext","prevShowUnreadUnderlay","prevT","nextMutedUsers","nextDisabled","nextGoToMessage","nextGroupStyles","nextIsTargetedMessage","nextLastReceivedId","nextMembers","nextMessage","nextMessagesContext","nextShowUnreadUnderlay","nextT","disabledEqual","membersEqual","keys","repliesEqual","reply_count","lastReceivedIdChangedAndMatters","goToMessageChangedAndMatters","quoted_message_id","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","isMessageWithStylesReadByAndDateSeparator","readBy","updated_at","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","messageUserBannedEqual","banned","prevMessageAttachments","nextMessageAttachments","attachmentsEqual","every","index","attachmentKeysEqual","latestReactionsEqual","_ref3","_nextMessage$latest_r","mutedUserSame","mutedUser","_prevMessage$user2","target","_nextMessage$user2","showUnreadUnderlayEqual","tEqual","targetedMessageEqual","prevMyMessageTheme","JSON","stringify","nextMyMessageTheme","messageThemeEqual","MemoizedMessage","React","memo","Message","_useChannelContext","useChannelContext","useChatContext","_useKeyboardContext","useKeyboardContext","_useMessageOverlayCon","useMessageOverlayContext","useMessagesContext","_useOverlayContext","useOverlayContext","_useThreadContext","useThreadContext","_useTranslationContex2","exports"],"sources":["Message.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { GestureResponderEvent, Keyboard, StyleProp, View, ViewStyle } from 'react-native';\n\nimport type { Attachment, UserResponse } from 'stream-chat';\n\nimport { useCreateMessageContext } from './hooks/useCreateMessageContext';\nimport { useMessageActionHandlers } from './hooks/useMessageActionHandlers';\nimport { useMessageActions } from './hooks/useMessageActions';\nimport { messageActions as defaultMessageActions } from './utils/messageActions';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport {\n KeyboardContextValue,\n useKeyboardContext,\n} from '../../contexts/keyboardContext/KeyboardContext';\nimport {\n MessageContextValue,\n MessageProvider,\n Reactions,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport { isVideoPackageAvailable, triggerHaptic } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport {\n hasOnlyEmojis,\n isBlockedMessage,\n isBouncedMessage,\n MessageStatusTypes,\n} from '../../utils/utils';\n\nimport {\n isMessageWithStylesReadByAndDateSeparator,\n MessageType,\n} from '../MessageList/hooks/useMessageList';\nimport type { MessageActionListItemProps } from '../MessageOverlay/MessageActionListItem';\n\nexport type TouchableEmitter =\n | 'fileAttachment'\n | 'gallery'\n | 'giphy'\n | 'message'\n | 'messageContent'\n | 'messageReplies'\n | 'reactionList';\n\nexport type TextMentionTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'textMention';\n additionalInfo?: { user?: UserResponse<StreamChatGenerics> };\n};\n\nexport type UrlTouchableHandlerPayload = {\n emitter: 'textLink' | 'card';\n additionalInfo?: { url?: string };\n};\n\nexport type FileAttachmentTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n emitter: 'fileAttachment';\n additionalInfo?: { attachment?: Attachment<StreamChatGenerics> };\n};\n\nexport type TouchableHandlerPayload = {\n defaultHandler?: () => void;\n event?: GestureResponderEvent;\n} & (\n | {\n emitter?: Exclude<TouchableEmitter, 'textMention' | 'textLink' | 'card' | 'fileAttachment'>;\n }\n | TextMentionTouchableHandlerPayload\n | UrlTouchableHandlerPayload\n | FileAttachmentTouchableHandlerPayload\n);\n\nexport type MessageTouchableHandlerPayload<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = TouchableHandlerPayload & {\n actionHandlers?: MessageActionHandlers;\n additionalInfo?: Record<string, unknown>;\n message?: MessageType<StreamChatGenerics>;\n};\n\nexport type MessageActionHandlers = {\n deleteMessage: () => Promise<void>;\n editMessage: () => void;\n pinMessage: () => Promise<void>;\n quotedReply: () => void;\n resendMessage: () => Promise<void>;\n showMessageOverlay: () => void;\n toggleBanUser: () => Promise<void>;\n toggleMuteUser: () => Promise<void>;\n toggleReaction: (reactionType: string) => Promise<void>;\n};\n\nexport type MessagePropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n ChannelContextValue<StreamChatGenerics>,\n 'channel' | 'disabled' | 'enforceUniqueReaction' | 'members'\n> &\n Pick<KeyboardContextValue, 'dismissKeyboard'> &\n Partial<Omit<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessageContextValue<StreamChatGenerics>, 'groupStyles' | 'message'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'sendReaction'\n | 'deleteMessage'\n | 'dismissKeyboardOnMessageTouch'\n | 'forceAlignMessages'\n | 'handleBlock'\n | 'handleCopy'\n | 'handleDelete'\n | 'handleEdit'\n | 'handleFlag'\n | 'handleMute'\n | 'handlePinMessage'\n | 'handleQuotedReply'\n | 'handleReaction'\n | 'handleRetry'\n | 'handleThreadReply'\n | 'isAttachmentEqual'\n | 'messageActions'\n | 'messageContentOrder'\n | 'MessageBounce'\n | 'MessageSimple'\n | 'onLongPressMessage'\n | 'onPressInMessage'\n | 'onPressMessage'\n | 'OverlayReactionList'\n | 'removeMessage'\n | 'deleteReaction'\n | 'retrySendMessage'\n | 'selectReaction'\n | 'setEditingState'\n | 'setQuotedMessageState'\n | 'supportedReactions'\n | 'updateMessage'\n > &\n Pick<MessageOverlayContextValue<StreamChatGenerics>, 'setData'> &\n Pick<OverlayContextValue, 'setOverlay'> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'openThread'> &\n Pick<TranslationContextValue, 't'> & {\n chatContext: ChatContextValue<StreamChatGenerics>;\n messagesContext: MessagesContextValue<StreamChatGenerics>;\n /**\n * Whether or not users are able to long press messages.\n */\n enableLongPress?: boolean;\n goToMessage?: (messageId: string) => void;\n isTargetedMessage?: boolean;\n /**\n * Array of allowed actions or null on message, this can also be a function returning the array.\n * If all the actions need to be disabled an empty array should be provided as value of prop\n */\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n **/\n onLongPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param message Message object which was long pressed\n * @param event Event object for onLongPress event\n * */\n onPress?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n onPressIn?: (payload: Partial<MessageTouchableHandlerPayload<StreamChatGenerics>>) => void;\n /**\n * Handler to open the thread on message. This is callback for touch event for replies button.\n *\n * @param message A message object to open the thread upon.\n */\n onThreadSelect?: (message: MessageType<StreamChatGenerics>) => void;\n showUnreadUnderlay?: boolean;\n style?: StyleProp<ViewStyle>;\n };\n\n/**\n * Since this component doesn't consume `messages` from `MessagesContext`,\n * we memoized and broke it up to prevent new messages from re-rendering\n * each individual Message component.\n */\nconst MessageWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const [isBounceDialogOpen, setIsBounceDialogOpen] = useState(false);\n const isMessageTypeDeleted = props.message.type === 'deleted';\n\n const {\n sendReaction,\n channel,\n deleteMessage: deleteMessageFromContext,\n disabled,\n dismissKeyboard,\n dismissKeyboardOnMessageTouch,\n enableLongPress = true,\n enforceUniqueReaction,\n forceAlignMessages = false,\n goToMessage,\n groupStyles = ['bottom'],\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n chatContext,\n lastReceivedId,\n members,\n message,\n messageActions: messageActionsProp = defaultMessageActions,\n messageContentOrder: messageContentOrderProp,\n messagesContext,\n MessageBounce,\n MessageSimple,\n onLongPress: onLongPressProp,\n onLongPressMessage: onLongPressMessageProp,\n onPress: onPressProp,\n onPressMessage: onPressMessageProp,\n onPressIn: onPressInProp,\n onPressInMessage: onPressInMessageProp,\n onThreadSelect,\n openThread,\n OverlayReactionList,\n preventPress,\n removeMessage,\n deleteReaction,\n retrySendMessage,\n selectReaction,\n setData,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n showAvatar,\n showMessageStatus,\n showUnreadUnderlay,\n style,\n supportedReactions,\n t,\n isTargetedMessage,\n threadList = false,\n updateMessage,\n } = props;\n const { client } = chatContext;\n const {\n theme: {\n colors: { bg_gradient_start, targetedMessageBackground },\n messageSimple: { targetedMessageContainer, targetedMessageUnderlay },\n },\n } = useTheme();\n\n const actionsEnabled =\n message.type === 'regular' && message.status === MessageStatusTypes.RECEIVED;\n\n const isMyMessage = client && message && client.userID === message.user?.id;\n\n const handleAction = async (name: string, value: string) => {\n if (message.id) {\n const data = await channel?.sendAction(message.id, { [name]: value });\n if (data?.message) {\n updateMessage(data.message);\n } else {\n removeMessage({\n id: message.id,\n parent_id: message.parent_id,\n });\n }\n }\n };\n\n const onPressQuotedMessage = (quotedMessage: MessageType<StreamChatGenerics>) => {\n if (!goToMessage) return;\n\n goToMessage(quotedMessage.id);\n };\n\n const errorOrFailed = message.type === 'error' || message.status === MessageStatusTypes.FAILED;\n\n const onPress = (error = errorOrFailed) => {\n if (dismissKeyboardOnMessageTouch) {\n Keyboard.dismiss();\n }\n const quotedMessage = message.quoted_message as MessageType<StreamChatGenerics>;\n if (error) {\n /**\n * If its a Blocked message, we don't do anything as per specs.\n */\n if (isBlockedMessage(message)) {\n return;\n }\n /**\n * If its a Bounced message, we open the message bounced options modal.\n */\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n showMessageOverlay(false, true);\n } else if (quotedMessage) {\n onPressQuotedMessage(quotedMessage);\n }\n };\n\n const alignment =\n forceAlignMessages && (forceAlignMessages === 'left' || forceAlignMessages === 'right')\n ? forceAlignMessages\n : isMyMessage\n ? 'right'\n : 'left';\n\n /**\n * attachments contain files/images or other attachments\n *\n * if a URL attachment is present with a file/image then we\n * show just the text and markdown should make the link\n * clickable\n */\n const attachments =\n !isMessageTypeDeleted && Array.isArray(message.attachments)\n ? message.attachments.reduce(\n (acc, cur) => {\n if (cur.type === 'file') {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'video' && !cur.og_scrape_url && isVideoPackageAvailable()) {\n acc.videos.push({\n image_url: cur.asset_url,\n thumb_url: cur.thumb_url,\n type: 'video',\n });\n acc.other = [];\n } else if (cur.type === 'video' && !cur.og_scrape_url) {\n acc.files.push(cur);\n acc.other = []; // remove other attachments if a file exists\n } else if (cur.type === 'audio') {\n acc.files.push(cur);\n } else if (cur.type === 'image' && !cur.title_link && !cur.og_scrape_url) {\n /**\n * this next if is not combined with the above one for cases where we have\n * an image with no url links at all falling back to being an attachment\n */\n if (cur.image_url || cur.thumb_url) {\n acc.images.push(cur);\n acc.other = []; // remove other attachments if an image exists\n }\n // only add other attachments if there are no files/images\n } else if (!acc.files.length && !acc.images.length && !acc.videos.length) {\n acc.other.push(cur);\n }\n\n return acc;\n },\n {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n },\n )\n : {\n files: [] as Attachment<StreamChatGenerics>[],\n images: [] as Attachment<StreamChatGenerics>[],\n other: [] as Attachment<StreamChatGenerics>[],\n videos: [] as Attachment<StreamChatGenerics>[],\n };\n /**\n * Check if any actions to prevent long press\n */\n const hasAttachmentActions =\n !isMessageTypeDeleted &&\n Array.isArray(message.attachments) &&\n message.attachments.some((attachment) => attachment.actions && attachment.actions.length);\n\n const messageContentOrder = messageContentOrderProp.filter((content) => {\n if (content === 'quoted_reply') {\n return !!message.quoted_message;\n }\n\n switch (content) {\n case 'attachments':\n return !!attachments.other.length;\n case 'files':\n return !!attachments.files.length;\n case 'gallery':\n return !!attachments.images.length || !!attachments.videos.length;\n case 'text':\n default:\n return !!message.text;\n }\n });\n\n const emojiOnlyText = useMemo(() => {\n if (!message.text) return false;\n return hasOnlyEmojis(message.text);\n }, [message.text]);\n\n const onlyEmojis =\n !attachments.files.length &&\n !attachments.images.length &&\n !attachments.other.length &&\n emojiOnlyText;\n\n const onOpenThread = () => {\n if (onThreadSelect) {\n onThreadSelect(message);\n }\n if (openThread) {\n openThread(message);\n }\n };\n\n const hasReactions =\n !isMessageTypeDeleted && !!message.latest_reactions && message.latest_reactions.length > 0;\n\n const clientId = client.userID;\n\n const reactions = hasReactions\n ? supportedReactions.reduce((acc, cur) => {\n const reactionType = cur.type;\n const reactionsOfReactionType = message.latest_reactions?.filter(\n (reaction) => reaction.type === reactionType,\n );\n\n if (reactionsOfReactionType?.length) {\n const hasOwnReaction = reactionsOfReactionType.some(\n (reaction) => reaction.user_id === clientId,\n );\n acc.push({ own: hasOwnReaction, type: reactionType });\n }\n\n return acc;\n }, [] as Reactions)\n : [];\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const {\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleTogglePinMessage,\n handleToggleReaction,\n } = useMessageActionHandlers({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n message,\n retrySendMessage,\n sendReaction,\n setEditingState,\n setQuotedMessageState,\n supportedReactions,\n });\n\n const {\n blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n flagMessage,\n handleReaction,\n muteUser,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n } = useMessageActions({\n channel,\n client,\n deleteMessage: deleteMessageFromContext,\n deleteReaction,\n enforceUniqueReaction,\n handleBlock,\n handleCopy,\n handleDelete,\n handleEdit,\n handleFlag,\n handleMute,\n handlePinMessage,\n handleQuotedReply,\n handleReaction: handleReactionProp,\n handleRetry,\n handleThreadReply,\n message,\n onThreadSelect,\n openThread,\n removeMessage,\n retrySendMessage,\n selectReaction,\n sendReaction,\n setEditingState,\n setOverlay,\n setQuotedMessageState,\n supportedReactions,\n t,\n updateMessage,\n });\n\n const { userLanguage } = useTranslationContext();\n\n const showMessageOverlay = async (messageReactions = false, error = errorOrFailed) => {\n await dismissKeyboard();\n\n const isThreadMessage = threadList || !!message.parent_id;\n\n const dismissOverlay = () => setOverlay('none');\n\n const messageActions =\n typeof messageActionsProp !== 'function'\n ? messageActionsProp\n : messageActionsProp({\n blockUser,\n copyMessage,\n deleteMessage,\n dismissOverlay,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n muteUser,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n });\n\n setData({\n alignment,\n chatContext,\n clientId: client.userID,\n files: attachments.files,\n groupStyles,\n handleReaction: ownCapabilities.sendReaction ? handleReaction : undefined,\n images: attachments.images,\n message,\n messageActions: messageActions?.filter(Boolean) as MessageActionListItemProps[] | undefined,\n messageContext: { ...messageContext, preventPress: true },\n messageReactionTitle: !error && messageReactions ? t('Message Reactions') : undefined,\n messagesContext: { ...messagesContext, messageContentOrder },\n onlyEmojis,\n otherAttachments: attachments.other,\n OverlayReactionList,\n ownCapabilities,\n supportedReactions,\n threadList,\n userLanguage,\n videos: attachments.videos,\n });\n\n setOverlay('message');\n };\n\n const actionHandlers: MessageActionHandlers = {\n deleteMessage: handleDeleteMessage,\n editMessage: handleEditMessage,\n pinMessage: handleTogglePinMessage,\n quotedReply: handleQuotedReplyMessage,\n resendMessage: handleResendMessage,\n showMessageOverlay,\n toggleBanUser: handleToggleBanUser,\n toggleMuteUser: handleToggleMuteUser,\n toggleReaction: handleToggleReaction,\n };\n\n const onLongPressMessage =\n disabled || hasAttachmentActions || isBlockedMessage(message)\n ? () => null\n : onLongPressMessageProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressMessageProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n message,\n })\n : onLongPressProp\n ? (payload?: TouchableHandlerPayload) =>\n onLongPressProp({\n actionHandlers,\n defaultHandler: payload?.defaultHandler || showMessageOverlay,\n emitter: payload?.emitter || 'message',\n event: payload?.event,\n })\n : enableLongPress\n ? () => {\n // If a message is bounced, on long press the message bounce options modal should open.\n if (isBouncedMessage(message)) {\n setIsBounceDialogOpen(true);\n return;\n }\n triggerHaptic('impactMedium');\n showMessageOverlay(false);\n }\n : () => null;\n\n const messageContext = useCreateMessageContext({\n actionsEnabled,\n alignment,\n channel,\n disabled,\n files: attachments.files,\n goToMessage,\n groupStyles,\n handleAction,\n handleDeleteMessage,\n handleEditMessage,\n handleQuotedReplyMessage,\n handleResendMessage,\n handleToggleBanUser,\n handleToggleMuteUser,\n handleToggleReaction,\n hasReactions,\n images: attachments.images,\n isMyMessage,\n lastGroupMessage: groupStyles?.[0] === 'single' || groupStyles?.[0] === 'bottom',\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n myMessageTheme: messagesContext.myMessageTheme,\n onLongPress: onLongPressMessage,\n onlyEmojis,\n onOpenThread,\n onPress: (payload) => {\n const onPressArgs = {\n actionHandlers,\n additionalInfo: payload.additionalInfo,\n defaultHandler: payload.defaultHandler || onPress,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n\n const handleOnPress = () => {\n if (onPressProp) return onPressProp(onPressArgs);\n if (onPressMessageProp) return onPressMessageProp(onPressArgs);\n if (payload.defaultHandler) return payload.defaultHandler();\n\n return onPress();\n };\n\n handleOnPress();\n },\n onPressIn:\n onPressInProp || onPressInMessageProp\n ? (payload) => {\n const onPressInArgs = {\n actionHandlers,\n defaultHandler: payload.defaultHandler,\n emitter: payload.emitter || 'message',\n event: payload.event,\n message,\n };\n const handleOnpressIn = () => {\n if (onPressInProp) return onPressInProp(onPressInArgs);\n if (onPressInMessageProp) return onPressInMessageProp(onPressInArgs);\n };\n handleOnpressIn();\n }\n : null,\n otherAttachments: attachments.other,\n preventPress,\n reactions,\n showAvatar,\n showMessageOverlay,\n showMessageStatus: typeof showMessageStatus === 'boolean' ? showMessageStatus : isMyMessage,\n threadList,\n videos: attachments.videos,\n });\n\n if (!(isMessageTypeDeleted || messageContentOrder.length)) return null;\n\n return (\n <View\n style={[\n message.pinned && {\n ...targetedMessageContainer,\n backgroundColor: targetedMessageBackground,\n },\n ]}\n testID='message-wrapper'\n >\n <View\n style={[\n style,\n {\n backgroundColor: showUnreadUnderlay ? bg_gradient_start : undefined,\n },\n ]}\n >\n <View\n style={[\n isTargetedMessage\n ? { backgroundColor: targetedMessageBackground, ...targetedMessageUnderlay }\n : {},\n ]}\n >\n <MessageProvider value={messageContext}>\n <MessageSimple />\n {isBounceDialogOpen && <MessageBounce setIsBounceDialogOpen={setIsBounceDialogOpen} />}\n </MessageProvider>\n </View>\n </View>\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessagePropsWithContext<StreamChatGenerics>,\n nextProps: MessagePropsWithContext<StreamChatGenerics>,\n) => {\n const {\n chatContext: { mutedUsers: prevMutedUsers },\n disabled: prevDisabled,\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n isAttachmentEqual,\n isTargetedMessage: prevIsTargetedMessage,\n lastReceivedId: prevLastReceivedId,\n members: prevMembers,\n message: prevMessage,\n messagesContext: prevMessagesContext,\n showUnreadUnderlay: prevShowUnreadUnderlay,\n t: prevT,\n } = prevProps;\n const {\n chatContext: { mutedUsers: nextMutedUsers },\n disabled: nextDisabled,\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n isTargetedMessage: nextIsTargetedMessage,\n lastReceivedId: nextLastReceivedId,\n members: nextMembers,\n message: nextMessage,\n messagesContext: nextMessagesContext,\n showUnreadUnderlay: nextShowUnreadUnderlay,\n t: nextT,\n } = nextProps;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const lastReceivedIdChangedAndMatters =\n prevLastReceivedId !== nextLastReceivedId &&\n (prevLastReceivedId === prevMessage.id ||\n prevLastReceivedId === nextMessage.id ||\n nextLastReceivedId === prevMessage.id ||\n nextLastReceivedId === nextMessage.id);\n\n if (lastReceivedIdChangedAndMatters) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy) &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const messageUserBannedEqual = prevMessage.user?.banned === nextMessage.user?.banned;\n if (!messageUserBannedEqual) return false;\n\n const prevMessageAttachments = prevMessage.attachments;\n const nextMessageAttachments = nextMessage.attachments;\n const attachmentsEqual =\n (Array.isArray(prevMessageAttachments) &&\n Array.isArray(nextMessageAttachments) &&\n prevMessageAttachments.length === nextMessageAttachments.length &&\n prevMessageAttachments.every((attachment, index) => {\n const attachmentKeysEqual =\n attachment.type === 'image'\n ? attachment.image_url === nextMessageAttachments[index].image_url &&\n attachment.thumb_url === nextMessageAttachments[index].thumb_url\n : attachment.type === nextMessageAttachments[index].type;\n\n if (isAttachmentEqual)\n return (\n attachmentKeysEqual && !!isAttachmentEqual(attachment, nextMessageAttachments[index])\n );\n\n return attachmentKeysEqual;\n })) ||\n prevMessageAttachments === nextMessageAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const mutedUserSame =\n prevMutedUsers.length === nextMutedUsers.length ||\n prevMutedUsers.some((mutedUser) => mutedUser.target.id === prevMessage.user?.id) ===\n nextMutedUsers.some((mutedUser) => mutedUser.target.id === nextMessage.user?.id);\n if (!mutedUserSame) return false;\n\n const showUnreadUnderlayEqual = prevShowUnreadUnderlay === nextShowUnreadUnderlay;\n if (!showUnreadUnderlayEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const targetedMessageEqual = prevIsTargetedMessage === nextIsTargetedMessage;\n if (!targetedMessageEqual) return false;\n\n const prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const messageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!messageThemeEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessage = React.memo(MessageWithContext, areEqual) as typeof MessageWithContext;\n\nexport type MessageProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>> &\n Pick<MessagePropsWithContext<StreamChatGenerics>, 'groupStyles' | 'message'>;\n\n/**\n * Message - A high level component which implements all the logic required for a message.\n * The actual rendering of the message is delegated via the \"Message\" property\n *\n * @example ./Message.md\n */\nexport const Message = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageProps<StreamChatGenerics>,\n) => {\n const { channel, disabled, enforceUniqueReaction, members } =\n useChannelContext<StreamChatGenerics>();\n const chatContext = useChatContext<StreamChatGenerics>();\n const { dismissKeyboard } = useKeyboardContext();\n const { setData } = useMessageOverlayContext<StreamChatGenerics>();\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n const { openThread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessage<StreamChatGenerics>\n {...messagesContext}\n {...{\n channel,\n chatContext,\n disabled,\n dismissKeyboard,\n enforceUniqueReaction,\n members,\n messagesContext,\n openThread,\n setData,\n setOverlay,\n t,\n }}\n {...props}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -386,7 +386,8 @@ var MessageContentWithContext = function MessageContentWithContext(props) {
|
|
|
386
386
|
};
|
|
387
387
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
388
388
|
var _prevOtherAttachments, _prevOtherAttachments2, _nextOtherAttachments, _nextOtherAttachments2, _prevMessage$quoted_m, _nextMessage$quoted_m, _prevMessage$quoted_m2, _nextMessage$quoted_m2;
|
|
389
|
-
var
|
|
389
|
+
var prevDisabled = prevProps.disabled,
|
|
390
|
+
prevGoToMessage = prevProps.goToMessage,
|
|
390
391
|
prevGroupStyles = prevProps.groupStyles,
|
|
391
392
|
prevHasReactions = prevProps.hasReactions,
|
|
392
393
|
isAttachmentEqual = prevProps.isAttachmentEqual,
|
|
@@ -399,7 +400,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
399
400
|
prevOtherAttachments = prevProps.otherAttachments,
|
|
400
401
|
prevT = prevProps.t,
|
|
401
402
|
prevTDateTimeParser = prevProps.tDateTimeParser;
|
|
402
|
-
var
|
|
403
|
+
var nextDisabled = nextProps.disabled,
|
|
404
|
+
nextGoToMessage = nextProps.goToMessage,
|
|
403
405
|
nextGroupStyles = nextProps.groupStyles,
|
|
404
406
|
nextHasReactions = nextProps.hasReactions,
|
|
405
407
|
nextLastGroupMessage = nextProps.lastGroupMessage,
|
|
@@ -411,6 +413,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
411
413
|
nextOtherAttachments = nextProps.otherAttachments,
|
|
412
414
|
nextT = nextProps.t,
|
|
413
415
|
nextTDateTimeParser = nextProps.tDateTimeParser;
|
|
416
|
+
var disabledEqual = prevDisabled === nextDisabled;
|
|
417
|
+
if (!disabledEqual) return false;
|
|
414
418
|
var hasReactionsEqual = prevHasReactions === nextHasReactions;
|
|
415
419
|
if (!hasReactionsEqual) return false;
|
|
416
420
|
var lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;
|
|
@@ -539,7 +543,7 @@ var MessageContent = function MessageContent(props) {
|
|
|
539
543
|
__self: _this,
|
|
540
544
|
__source: {
|
|
541
545
|
fileName: _jsxFileName,
|
|
542
|
-
lineNumber:
|
|
546
|
+
lineNumber: 601,
|
|
543
547
|
columnNumber: 5
|
|
544
548
|
}
|
|
545
549
|
}));
|