stream-chat-react-native-core 5.18.0 → 5.18.1-beta.1

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.
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_truncate","_simpleMarkdown","_parseLinks","_this","_jsxFileName","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","markdown","encodedUrl","replace","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","pattern","RegExp","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","_ref","_objectDestructuringEmpty2","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","withinLink","paragraphText","_ref2","numberOfLines","mentionedUsers","reduce","acc","cur","userName","id","replaceAll","regEx","match","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","ListOutput","customRules","image","react","reflink","sublist","order","defaultRules","JSON","stringify","undefined","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport truncate from 'lodash/truncate';\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { parseLinksFromText } from './parseLinks';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst parse: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users, text } = message;\n\n if (!text) return null;\n\n let newText = text.trim();\n const linkInfos = parseLinksFromText(newText);\n\n for (const linkInfo of linkInfos) {\n const displayLink = truncate(linkInfo.raw, {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${linkInfo.encodedUrl})`;\n newText = newText.replace(linkInfo.raw, markdown);\n }\n\n newText = newText.replace(/[<&\"'>]/g, '\\\\$&');\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n const link: ReactNodeOutput = (node, output, { ...state }) => {\n const url = node.target;\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphText: ReactNodeOutput = (node, output, { ...state }) => (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName}`;\n }\n return acc.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const match: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const list: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: link },\n list: { react: list },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: list },\n ...(mentionedUsers\n ? {\n mentions: {\n match,\n order: defaultRules.text.order - 0.5,\n parse,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {newText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_truncate","_simpleMarkdown","_parseLinks","_this","_jsxFileName","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","markdown","encodedUrl","replace","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","pattern","RegExp","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","_ref","_objectDestructuringEmpty2","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","withinLink","paragraphText","_ref2","undefined","numberOfLines","mentionedUsers","reduce","acc","cur","userName","id","replaceAll","regEx","match","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","ListOutput","customRules","image","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport truncate from 'lodash/truncate';\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { parseLinksFromText } from './parseLinks';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst parse: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users, text } = message;\n\n if (!text) return null;\n\n let newText = text.trim();\n const linkInfos = parseLinksFromText(newText);\n\n for (const linkInfo of linkInfos) {\n const displayLink = truncate(linkInfo.raw, {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${linkInfo.encodedUrl})`;\n newText = newText.replace(linkInfo.raw, markdown);\n }\n\n newText = newText.replace(/[<&\"'>]/g, '\\\\$&');\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n const link: ReactNodeOutput = (node, output, { ...state }) => {\n const url = node.target;\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphText: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName}`;\n }\n return acc.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const match: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const list: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: link },\n list: { react: list },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: list },\n ...(mentionedUsers\n ? {\n mentions: {\n match,\n order: defaultRules.text.order - 0.5,\n parse,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {newText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
@@ -65,7 +65,7 @@ var screenHeight = (0, _utils.vh)(100);
65
65
  var halfScreenHeight = (0, _utils.vh)(50);
66
66
  var DefaultMessageTextNumberOfLines = 5;
67
67
  var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
68
- var _message$user, _message$own_reaction, _messagesContext$mess;
68
+ var _message$user;
69
69
  var alignment = props.alignment,
70
70
  ownCapabilities = props.ownCapabilities,
71
71
  clientId = props.clientId,
@@ -116,6 +116,10 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
116
116
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
117
117
  myMessageThemeString = _useState2[0],
118
118
  setMyMessageThemeString = _useState2[1];
119
+ var _useState3 = (0, _react.useState)(0),
120
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
121
+ reactionListHeight = _useState4[0],
122
+ setReactionListHeight = _useState4[1];
119
123
  (0, _react.useEffect)(function () {
120
124
  if (myMessageTheme) {
121
125
  setMyMessageThemeString(JSON.stringify(myMessageTheme));
@@ -233,12 +237,226 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
233
237
  Gallery = _ref2.Gallery,
234
238
  MessageAvatar = _ref2.MessageAvatar,
235
239
  Reply = _ref2.Reply;
240
+ var renderContent = function renderContent(messageTextNumberOfLines) {
241
+ var _message$own_reaction, _messagesContext$mess;
242
+ return _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
243
+ maxDist: 32,
244
+ onHandlerStateChange: function onHandlerStateChange(_ref3) {
245
+ var state = _ref3.nativeEvent.state;
246
+ if (state === _reactNativeGestureHandler.State.END) {
247
+ setOverlay('none');
248
+ }
249
+ },
250
+ __self: _this,
251
+ __source: {
252
+ fileName: _jsxFileName,
253
+ lineNumber: 308,
254
+ columnNumber: 5
255
+ }
256
+ }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
257
+ style: [styles.flex, panStyle],
258
+ __self: _this,
259
+ __source: {
260
+ fileName: _jsxFileName,
261
+ lineNumber: 316,
262
+ columnNumber: 7
263
+ }
264
+ }, message && _react["default"].createElement(_reactNative.View, {
265
+ style: [styles.center, styles.overlayPadding, {
266
+ padding: overlayPadding
267
+ }, alignment === 'left' ? styles.alignStart : styles.alignEnd],
268
+ __self: _this,
269
+ __source: {
270
+ fileName: _jsxFileName,
271
+ lineNumber: 318,
272
+ columnNumber: 11
273
+ }
274
+ }, handleReaction && ownCapabilities != null && ownCapabilities.sendReaction ? _react["default"].createElement(OverlayReactionList, {
275
+ messageLayout: messageLayout,
276
+ ownReactionTypes: (message == null ? void 0 : (_message$own_reaction = message.own_reactions) == null ? void 0 : _message$own_reaction.map(function (reaction) {
277
+ return reaction.type;
278
+ })) || [],
279
+ setReactionListHeight: setReactionListHeight,
280
+ showScreen: showScreen,
281
+ __self: _this,
282
+ __source: {
283
+ fileName: _jsxFileName,
284
+ lineNumber: 327,
285
+ columnNumber: 15
286
+ }
287
+ }) : null, _react["default"].createElement(_reactNativeReanimated["default"].View, {
288
+ onLayout: function onLayout(_ref4) {
289
+ var _ref4$nativeEvent$lay = _ref4.nativeEvent.layout,
290
+ layoutHeight = _ref4$nativeEvent$lay.height,
291
+ layoutWidth = _ref4$nativeEvent$lay.width,
292
+ x = _ref4$nativeEvent$lay.x,
293
+ y = _ref4$nativeEvent$lay.y;
294
+ messageLayout.value = {
295
+ x: alignment === 'left' ? x + layoutWidth : x,
296
+ y: y
297
+ };
298
+ messageWidth.value = layoutWidth;
299
+ messageHeight.value = layoutHeight;
300
+ },
301
+ style: [styles.alignEnd, styles.row, showScreenStyle],
302
+ __self: _this,
303
+ __source: {
304
+ fileName: _jsxFileName,
305
+ lineNumber: 334,
306
+ columnNumber: 13
307
+ }
308
+ }, alignment === 'left' && MessageAvatar && _react["default"].createElement(MessageAvatar, {
309
+ alignment: alignment,
310
+ message: message,
311
+ showAvatar: true,
312
+ __self: _this,
313
+ __source: {
314
+ fileName: _jsxFileName,
315
+ lineNumber: 350,
316
+ columnNumber: 17
317
+ }
318
+ }), _react["default"].createElement(_reactNative.View, {
319
+ pointerEvents: "none",
320
+ style: [styles.containerInner, {
321
+ backgroundColor: onlyEmojis && !message.quoted_message ? transparent : otherAttachments != null && otherAttachments.length ? otherAttachments[0].type === 'giphy' ? !message.quoted_message ? transparent : grey_gainsboro : blue_alice : alignment === 'left' ? white_smoke : grey_gainsboro,
322
+ borderBottomLeftRadius: (groupStyle === 'left_bottom' || groupStyle === 'left_single') && (!hasThreadReplies || threadList) ? borderRadiusS : borderRadiusL,
323
+ borderBottomRightRadius: (groupStyle === 'right_bottom' || groupStyle === 'right_single') && (!hasThreadReplies || threadList) ? borderRadiusS : borderRadiusL,
324
+ borderColor: grey_whisper
325
+ }, onlyEmojis && !message.quoted_message || otherAttachments != null && otherAttachments.length ? {
326
+ borderWidth: 0
327
+ } : {}, containerInner],
328
+ __self: _this,
329
+ __source: {
330
+ fileName: _jsxFileName,
331
+ lineNumber: 352,
332
+ columnNumber: 15
333
+ }
334
+ }, messagesContext == null ? void 0 : (_messagesContext$mess = messagesContext.messageContentOrder) == null ? void 0 : _messagesContext$mess.map(function (messageContentType, messageContentOrderIndex) {
335
+ switch (messageContentType) {
336
+ case 'quoted_reply':
337
+ return message.quoted_message && Reply && _react["default"].createElement(_reactNative.View, {
338
+ key: "quoted_reply_" + messageContentOrderIndex,
339
+ style: [styles.replyContainer, replyContainer],
340
+ __self: _this,
341
+ __source: {
342
+ fileName: _jsxFileName,
343
+ lineNumber: 394,
344
+ columnNumber: 29
345
+ }
346
+ }, _react["default"].createElement(Reply, {
347
+ quotedMessage: message.quoted_message,
348
+ styles: {
349
+ messageContainer: {
350
+ maxWidth: (0, _utils.vw)(60)
351
+ }
352
+ },
353
+ __self: _this,
354
+ __source: {
355
+ fileName: _jsxFileName,
356
+ lineNumber: 398,
357
+ columnNumber: 31
358
+ }
359
+ }));
360
+ case 'attachments':
361
+ return otherAttachments == null ? void 0 : otherAttachments.map(function (attachment, attachmentIndex) {
362
+ return Attachment && _react["default"].createElement(Attachment, {
363
+ attachment: attachment,
364
+ key: message.id + "-" + attachmentIndex,
365
+ __self: _this,
366
+ __source: {
367
+ fileName: _jsxFileName,
368
+ lineNumber: 415,
369
+ columnNumber: 31
370
+ }
371
+ });
372
+ });
373
+ case 'files':
374
+ return FileAttachmentGroup && _react["default"].createElement(FileAttachmentGroup, {
375
+ files: files,
376
+ key: "file_attachment_group_" + messageContentOrderIndex,
377
+ messageId: message.id,
378
+ __self: _this,
379
+ __source: {
380
+ fileName: _jsxFileName,
381
+ lineNumber: 424,
382
+ columnNumber: 29
383
+ }
384
+ });
385
+ case 'gallery':
386
+ return Gallery && _react["default"].createElement(Gallery, {
387
+ alignment: alignment,
388
+ groupStyles: groupStyles,
389
+ hasThreadReplies: !!(message != null && message.reply_count),
390
+ images: images,
391
+ key: "gallery_" + messageContentOrderIndex,
392
+ message: message,
393
+ threadList: threadList,
394
+ videos: videos,
395
+ __self: _this,
396
+ __source: {
397
+ fileName: _jsxFileName,
398
+ lineNumber: 434,
399
+ columnNumber: 29
400
+ }
401
+ });
402
+ case 'text':
403
+ default:
404
+ return otherAttachments != null && otherAttachments.length && otherAttachments[0].actions ? null : _react["default"].createElement(_MessageTextContainer.MessageTextContainer, {
405
+ key: "message_text_container_" + messageContentOrderIndex,
406
+ message: message,
407
+ messageOverlay: true,
408
+ messageTextNumberOfLines: messageTextNumberOfLines,
409
+ onlyEmojis: onlyEmojis,
410
+ __self: _this,
411
+ __source: {
412
+ fileName: _jsxFileName,
413
+ lineNumber: 449,
414
+ columnNumber: 27
415
+ }
416
+ });
417
+ }
418
+ }))), messageActions && _react["default"].createElement(MessageActionList, (0, _extends2["default"])({
419
+ MessageActionListItem: MessageActionListItem,
420
+ showScreen: showScreen
421
+ }, messageActionProps, {
422
+ message: message,
423
+ __self: _this,
424
+ __source: {
425
+ fileName: _jsxFileName,
426
+ lineNumber: 463,
427
+ columnNumber: 15
428
+ }
429
+ })), !!messageReactionTitle && message.latest_reactions && message.latest_reactions.length > 0 ? _react["default"].createElement(OverlayReactions, {
430
+ alignment: alignment,
431
+ OverlayReactionsAvatar: OverlayReactionsAvatar,
432
+ reactions: message.latest_reactions.map(function (reaction) {
433
+ var _reaction$user, _reaction$user2, _reaction$user3, _reaction$user4;
434
+ return {
435
+ alignment: clientId && clientId === ((_reaction$user = reaction.user) == null ? void 0 : _reaction$user.id) ? 'right' : 'left',
436
+ id: (reaction == null ? void 0 : (_reaction$user2 = reaction.user) == null ? void 0 : _reaction$user2.id) || '',
437
+ image: reaction == null ? void 0 : (_reaction$user3 = reaction.user) == null ? void 0 : _reaction$user3.image,
438
+ name: (reaction == null ? void 0 : (_reaction$user4 = reaction.user) == null ? void 0 : _reaction$user4.name) || reaction.user_id || '',
439
+ type: reaction.type
440
+ };
441
+ }),
442
+ showScreen: showScreen,
443
+ supportedReactions: messagesContext == null ? void 0 : messagesContext.supportedReactions,
444
+ title: messageReactionTitle,
445
+ __self: _this,
446
+ __source: {
447
+ fileName: _jsxFileName,
448
+ lineNumber: 473,
449
+ columnNumber: 15
450
+ }
451
+ }) : null)));
452
+ };
453
+ var isScrollEnabled = !!messageActions && overlay === 'message';
236
454
  return _react["default"].createElement(_ChatContext.ChatProvider, {
237
455
  value: chatContext,
238
456
  __self: _this,
239
457
  __source: {
240
458
  fileName: _jsxFileName,
241
- lineNumber: 306,
459
+ lineNumber: 502,
242
460
  columnNumber: 5
243
461
  }
244
462
  }, _react["default"].createElement(_MessagesContext.MessagesProvider, {
@@ -246,7 +464,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
246
464
  __self: _this,
247
465
  __source: {
248
466
  fileName: _jsxFileName,
249
- lineNumber: 307,
467
+ lineNumber: 503,
250
468
  columnNumber: 7
251
469
  }
252
470
  }, _react["default"].createElement(_MessageContext.MessageProvider, {
@@ -254,7 +472,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
254
472
  __self: _this,
255
473
  __source: {
256
474
  fileName: _jsxFileName,
257
- lineNumber: 308,
475
+ lineNumber: 504,
258
476
  columnNumber: 9
259
477
  }
260
478
  }, _react["default"].createElement(_ThemeContext.ThemeProvider, {
@@ -262,7 +480,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
262
480
  __self: _this,
263
481
  __source: {
264
482
  fileName: _jsxFileName,
265
- lineNumber: 309,
483
+ lineNumber: 505,
266
484
  columnNumber: 11
267
485
  }
268
486
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -271,7 +489,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
271
489
  __self: _this,
272
490
  __source: {
273
491
  fileName: _jsxFileName,
274
- lineNumber: 310,
492
+ lineNumber: 506,
275
493
  columnNumber: 13
276
494
  }
277
495
  }, _react["default"].createElement(_reactNativeGestureHandler.PanGestureHandler, {
@@ -282,7 +500,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
282
500
  __self: _this,
283
501
  __source: {
284
502
  fileName: _jsxFileName,
285
- lineNumber: 314,
503
+ lineNumber: 510,
286
504
  columnNumber: 15
287
505
  }
288
506
  }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -290,7 +508,7 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
290
508
  __self: _this,
291
509
  __source: {
292
510
  fileName: _jsxFileName,
293
- lineNumber: 320,
511
+ lineNumber: 516,
294
512
  columnNumber: 17
295
513
  }
296
514
  }, _react["default"].createElement(_reactNative.SafeAreaView, {
@@ -298,218 +516,23 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
298
516
  __self: _this,
299
517
  __source: {
300
518
  fileName: _jsxFileName,
301
- lineNumber: 321,
519
+ lineNumber: 517,
302
520
  columnNumber: 19
303
521
  }
304
- }, _react["default"].createElement(_reactNativeGestureHandler.TapGestureHandler, {
305
- maxDist: 32,
306
- onHandlerStateChange: function onHandlerStateChange(_ref3) {
307
- var state = _ref3.nativeEvent.state;
308
- if (state === _reactNativeGestureHandler.State.END) {
309
- setOverlay('none');
310
- }
311
- },
312
- __self: _this,
313
- __source: {
314
- fileName: _jsxFileName,
315
- lineNumber: 322,
316
- columnNumber: 21
317
- }
318
- }, _react["default"].createElement(_reactNativeReanimated["default"].View, {
319
- style: [styles.flex, panStyle],
522
+ }, isScrollEnabled ? _react["default"].createElement(_reactNativeGestureHandler.ScrollView, {
523
+ alwaysBounceVertical: false,
524
+ contentContainerStyle: [styles.center, {
525
+ paddingTop: reactionListHeight
526
+ }],
527
+ showsVerticalScrollIndicator: false,
528
+ style: [styles.flex, styles.scrollView],
320
529
  __self: _this,
321
530
  __source: {
322
531
  fileName: _jsxFileName,
323
- lineNumber: 330,
532
+ lineNumber: 519,
324
533
  columnNumber: 23
325
534
  }
326
- }, message && _react["default"].createElement(_reactNative.View, {
327
- style: [styles.center, styles.overlayPadding, {
328
- padding: overlayPadding
329
- }, alignment === 'left' ? styles.alignStart : styles.alignEnd],
330
- __self: _this,
331
- __source: {
332
- fileName: _jsxFileName,
333
- lineNumber: 332,
334
- columnNumber: 27
335
- }
336
- }, handleReaction && ownCapabilities != null && ownCapabilities.sendReaction ? _react["default"].createElement(OverlayReactionList, {
337
- messageLayout: messageLayout,
338
- ownReactionTypes: (message == null ? void 0 : (_message$own_reaction = message.own_reactions) == null ? void 0 : _message$own_reaction.map(function (reaction) {
339
- return reaction.type;
340
- })) || [],
341
- showScreen: showScreen,
342
- __self: _this,
343
- __source: {
344
- fileName: _jsxFileName,
345
- lineNumber: 341,
346
- columnNumber: 31
347
- }
348
- }) : null, _react["default"].createElement(_reactNativeReanimated["default"].View, {
349
- onLayout: function onLayout(_ref4) {
350
- var _ref4$nativeEvent$lay = _ref4.nativeEvent.layout,
351
- layoutHeight = _ref4$nativeEvent$lay.height,
352
- layoutWidth = _ref4$nativeEvent$lay.width,
353
- x = _ref4$nativeEvent$lay.x,
354
- y = _ref4$nativeEvent$lay.y;
355
- messageLayout.value = {
356
- x: alignment === 'left' ? x + layoutWidth : x,
357
- y: y
358
- };
359
- messageWidth.value = layoutWidth;
360
- messageHeight.value = layoutHeight;
361
- },
362
- style: [styles.alignEnd, styles.row, showScreenStyle],
363
- __self: _this,
364
- __source: {
365
- fileName: _jsxFileName,
366
- lineNumber: 349,
367
- columnNumber: 29
368
- }
369
- }, alignment === 'left' && MessageAvatar && _react["default"].createElement(MessageAvatar, {
370
- alignment: alignment,
371
- message: message,
372
- showAvatar: true,
373
- __self: _this,
374
- __source: {
375
- fileName: _jsxFileName,
376
- lineNumber: 365,
377
- columnNumber: 33
378
- }
379
- }), _react["default"].createElement(_reactNative.View, {
380
- pointerEvents: "none",
381
- style: [styles.containerInner, {
382
- backgroundColor: onlyEmojis && !message.quoted_message ? transparent : otherAttachments != null && otherAttachments.length ? otherAttachments[0].type === 'giphy' ? !message.quoted_message ? transparent : grey_gainsboro : blue_alice : alignment === 'left' ? white_smoke : grey_gainsboro,
383
- borderBottomLeftRadius: (groupStyle === 'left_bottom' || groupStyle === 'left_single') && (!hasThreadReplies || threadList) ? borderRadiusS : borderRadiusL,
384
- borderBottomRightRadius: (groupStyle === 'right_bottom' || groupStyle === 'right_single') && (!hasThreadReplies || threadList) ? borderRadiusS : borderRadiusL,
385
- borderColor: grey_whisper
386
- }, onlyEmojis && !message.quoted_message || otherAttachments != null && otherAttachments.length ? {
387
- borderWidth: 0
388
- } : {}, containerInner],
389
- __self: _this,
390
- __source: {
391
- fileName: _jsxFileName,
392
- lineNumber: 367,
393
- columnNumber: 31
394
- }
395
- }, messagesContext == null ? void 0 : (_messagesContext$mess = messagesContext.messageContentOrder) == null ? void 0 : _messagesContext$mess.map(function (messageContentType, messageContentOrderIndex) {
396
- switch (messageContentType) {
397
- case 'quoted_reply':
398
- return message.quoted_message && Reply && _react["default"].createElement(_reactNative.View, {
399
- key: "quoted_reply_" + messageContentOrderIndex,
400
- style: [styles.replyContainer, replyContainer],
401
- __self: _this,
402
- __source: {
403
- fileName: _jsxFileName,
404
- lineNumber: 412,
405
- columnNumber: 45
406
- }
407
- }, _react["default"].createElement(Reply, {
408
- quotedMessage: message.quoted_message,
409
- styles: {
410
- messageContainer: {
411
- maxWidth: (0, _utils.vw)(60)
412
- }
413
- },
414
- __self: _this,
415
- __source: {
416
- fileName: _jsxFileName,
417
- lineNumber: 416,
418
- columnNumber: 47
419
- }
420
- }));
421
- case 'attachments':
422
- return otherAttachments == null ? void 0 : otherAttachments.map(function (attachment, attachmentIndex) {
423
- return Attachment && _react["default"].createElement(Attachment, {
424
- attachment: attachment,
425
- key: message.id + "-" + attachmentIndex,
426
- __self: _this,
427
- __source: {
428
- fileName: _jsxFileName,
429
- lineNumber: 433,
430
- columnNumber: 47
431
- }
432
- });
433
- });
434
- case 'files':
435
- return FileAttachmentGroup && _react["default"].createElement(FileAttachmentGroup, {
436
- files: files,
437
- key: "file_attachment_group_" + messageContentOrderIndex,
438
- messageId: message.id,
439
- __self: _this,
440
- __source: {
441
- fileName: _jsxFileName,
442
- lineNumber: 442,
443
- columnNumber: 45
444
- }
445
- });
446
- case 'gallery':
447
- return Gallery && _react["default"].createElement(Gallery, {
448
- alignment: alignment,
449
- groupStyles: groupStyles,
450
- hasThreadReplies: !!(message != null && message.reply_count),
451
- images: images,
452
- key: "gallery_" + messageContentOrderIndex,
453
- message: message,
454
- threadList: threadList,
455
- videos: videos,
456
- __self: _this,
457
- __source: {
458
- fileName: _jsxFileName,
459
- lineNumber: 452,
460
- columnNumber: 45
461
- }
462
- });
463
- case 'text':
464
- default:
465
- return otherAttachments != null && otherAttachments.length && otherAttachments[0].actions ? null : _react["default"].createElement(_MessageTextContainer.MessageTextContainer, {
466
- key: "message_text_container_" + messageContentOrderIndex,
467
- message: message,
468
- messageOverlay: true,
469
- messageTextNumberOfLines: messageTextNumberOfLines,
470
- onlyEmojis: onlyEmojis,
471
- __self: _this,
472
- __source: {
473
- fileName: _jsxFileName,
474
- lineNumber: 468,
475
- columnNumber: 43
476
- }
477
- });
478
- }
479
- }))), messageActions && _react["default"].createElement(MessageActionList, (0, _extends2["default"])({
480
- MessageActionListItem: MessageActionListItem,
481
- showScreen: showScreen
482
- }, messageActionProps, {
483
- message: message,
484
- __self: _this,
485
- __source: {
486
- fileName: _jsxFileName,
487
- lineNumber: 482,
488
- columnNumber: 31
489
- }
490
- })), !!messageReactionTitle && message.latest_reactions && message.latest_reactions.length > 0 ? _react["default"].createElement(OverlayReactions, {
491
- alignment: alignment,
492
- OverlayReactionsAvatar: OverlayReactionsAvatar,
493
- reactions: message.latest_reactions.map(function (reaction) {
494
- var _reaction$user, _reaction$user2, _reaction$user3, _reaction$user4;
495
- return {
496
- alignment: clientId && clientId === ((_reaction$user = reaction.user) == null ? void 0 : _reaction$user.id) ? 'right' : 'left',
497
- id: (reaction == null ? void 0 : (_reaction$user2 = reaction.user) == null ? void 0 : _reaction$user2.id) || '',
498
- image: reaction == null ? void 0 : (_reaction$user3 = reaction.user) == null ? void 0 : _reaction$user3.image,
499
- name: (reaction == null ? void 0 : (_reaction$user4 = reaction.user) == null ? void 0 : _reaction$user4.name) || reaction.user_id || '',
500
- type: reaction.type
501
- };
502
- }),
503
- showScreen: showScreen,
504
- supportedReactions: messagesContext == null ? void 0 : messagesContext.supportedReactions,
505
- title: messageReactionTitle,
506
- __self: _this,
507
- __source: {
508
- fileName: _jsxFileName,
509
- lineNumber: 492,
510
- columnNumber: 31
511
- }
512
- }) : null)))))))))));
535
+ }, renderContent()) : renderContent(messageTextNumberOfLines)))))))));
513
536
  };
514
537
  var areEqual = function areEqual(prevProps, nextProps) {
515
538
  var prevAlignment = prevProps.alignment,
@@ -556,7 +579,7 @@ var MessageOverlay = function MessageOverlay(props) {
556
579
  __self: _this,
557
580
  __source: {
558
581
  fileName: _jsxFileName,
559
- lineNumber: 600,
582
+ lineNumber: 621,
560
583
  columnNumber: 5
561
584
  }
562
585
  }));