stream-chat-react-native-core 4.1.4 → 4.2.0-beta.3

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.
Files changed (97) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +16 -10
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/FileIcon.js +20 -20
  4. package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +61 -40
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/Channel/Channel.js +16 -13
  8. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  9. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  10. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  11. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +3 -3
  12. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  13. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +42 -20
  14. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  15. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +4 -7
  16. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  17. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +183 -173
  18. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
  19. package/lib/commonjs/components/MessageInput/MessageInput.js +3 -3
  20. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  21. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +3 -3
  22. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  23. package/lib/commonjs/components/MessageList/utils/getReadStates.js +8 -8
  24. package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
  25. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +32 -32
  26. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  27. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +9 -9
  28. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  29. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  30. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  31. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  32. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  33. package/lib/commonjs/version.json +1 -1
  34. package/lib/module/components/Attachment/Attachment.js +16 -10
  35. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  36. package/lib/module/components/Attachment/FileIcon.js +20 -20
  37. package/lib/module/components/Attachment/FileIcon.js.map +1 -1
  38. package/lib/module/components/Attachment/Giphy.js +61 -40
  39. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  40. package/lib/module/components/Channel/Channel.js +16 -13
  41. package/lib/module/components/Channel/Channel.js.map +1 -1
  42. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
  43. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  44. package/lib/module/components/ChannelList/ChannelListMessenger.js +3 -3
  45. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  46. package/lib/module/components/Message/MessageSimple/MessageContent.js +42 -20
  47. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  48. package/lib/module/components/Message/MessageSimple/utils/renderText.js +4 -7
  49. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  50. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +183 -173
  51. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -1
  52. package/lib/module/components/MessageInput/MessageInput.js +3 -3
  53. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  54. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +3 -3
  55. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  56. package/lib/module/components/MessageList/utils/getReadStates.js +8 -8
  57. package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
  58. package/lib/module/contexts/messageInputContext/MessageInputContext.js +32 -32
  59. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  60. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +9 -9
  61. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  62. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  63. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  64. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  65. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  66. package/lib/module/version.json +1 -1
  67. package/lib/typescript/components/Attachment/Attachment.d.ts +2 -2
  68. package/lib/typescript/components/Attachment/Giphy.d.ts +2 -2
  69. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  70. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  71. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +2 -3
  72. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +5 -1
  73. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  74. package/package.json +14 -12
  75. package/src/components/Attachment/Attachment.tsx +29 -4
  76. package/src/components/Attachment/Giphy.tsx +55 -22
  77. package/src/components/Attachment/__tests__/Attachment.test.js +41 -0
  78. package/src/components/Channel/Channel.tsx +3 -0
  79. package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
  80. package/src/components/ChannelList/ChannelListMessenger.tsx +0 -1
  81. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +14 -4
  82. package/src/components/Message/MessageSimple/MessageContent.tsx +20 -13
  83. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageReplies.test.js.snap +1 -0
  84. package/src/components/Message/MessageSimple/utils/renderText.test.tsx +30 -23
  85. package/src/components/MessageInput/__tests__/AttachButton.test.js +8 -8
  86. package/src/components/MessageInput/__tests__/SendButton.test.js +12 -20
  87. package/src/components/MessageInput/__tests__/__snapshots__/AttachButton.test.js.snap +8 -0
  88. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +24 -68
  89. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +20 -36
  90. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +16 -10
  91. package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +16 -0
  92. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +1 -3
  93. package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.js.snap +1 -0
  94. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +10 -7
  95. package/src/contexts/messagesContext/MessagesContext.tsx +5 -2
  96. package/src/contexts/themeContext/utils/theme.ts +1 -0
  97. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["renderText.tsx"],"names":["defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","urls","urlInfo","displayLink","encoded","length","omission","markdown","scheme","replace","raw","styles","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","event","defaultHandler","target","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","RegExp","match","source","exec","mentionsReact","customRules","react","reflink","sublist","order","defaultRules","JSON","stringify","undefined","ListOutput","isSublist","withinList","parentTypes","items","map","item","index","indexAfterStart","start","ordered","type","isSublistWithinText","includes","style","Bullet","ListRow","props","children","ListItem"],"mappings":"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","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 { 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 urls = parseLinksFromText(newText);\n\n for (const urlInfo of urls) {\n const displayLink = truncate(urlInfo.encoded, {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${urlInfo.scheme}${urlInfo.encoded})`;\n newText = newText.replace(urlInfo.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 onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n\n const link: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n defaultHandler: () => onLink(node.target),\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\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;\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 const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\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) ? node.content[0].content || '' : 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 link: { 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 index={node.ordered && indexAfterStart} />\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 index={node.ordered && indexAfterStart} />\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, defaultMarkdownStyles.listItemNumber]}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = (props: PropsWithChildren<ViewProps>) => (\n <Text style={[props.style, defaultMarkdownStyles.listRow]}>{props.children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"]}
1
+ {"version":3,"sources":["renderText.tsx"],"names":["defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","parse","capture","state","content","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","mentioned_users","text","newText","trim","urls","urlInfo","displayLink","encoded","length","omission","markdown","scheme","replace","raw","styles","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","event","defaultHandler","target","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","RegExp","match","source","exec","mentionsReact","customRules","react","reflink","sublist","order","defaultRules","JSON","stringify","undefined","ListOutput","isSublist","withinList","parentTypes","items","map","item","index","indexAfterStart","start","ordered","type","isSublistWithinText","includes","style","Bullet","ListRow","props","children","ListItem"],"mappings":"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","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 { 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 urls = parseLinksFromText(newText);\n\n for (const urlInfo of urls) {\n const displayLink = truncate(urlInfo.encoded, {\n length: 200,\n omission: '...',\n });\n const markdown = `[${displayLink}](${urlInfo.scheme}${urlInfo.encoded})`;\n newText = newText.replace(urlInfo.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 onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n\n const link: ReactNodeOutput = (node, output, { ...state }) => {\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n defaultHandler: () => onLink(node.target),\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\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;\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 const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\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) ? node.content[0].content || '' : 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 link: { 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 index={node.ordered && indexAfterStart} />\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 index={node.ordered && indexAfterStart} />\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, defaultMarkdownStyles.listItemNumber]}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = (props: PropsWithChildren<ViewProps>) => (\n <Text style={[props.style, defaultMarkdownStyles.listRow]}>{props.children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"]}
@@ -37,7 +37,7 @@ describe('list', function () {
37
37
  __self: _this,
38
38
  __source: {
39
39
  fileName: _jsxFileName,
40
- lineNumber: 27,
40
+ lineNumber: 29,
41
41
  columnNumber: 41
42
42
  }
43
43
  }, node);
@@ -55,186 +55,196 @@ describe('list', function () {
55
55
  __self: _this,
56
56
  __source: {
57
57
  fileName: _jsxFileName,
58
- lineNumber: 30,
58
+ lineNumber: 32,
59
59
  columnNumber: 7
60
60
  }
61
61
  }));
62
62
  };
63
63
 
64
- it('renders numbered items', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
65
- var node, _render, getByText;
66
-
67
- return _regenerator["default"].wrap(function _callee$(_context) {
68
- while (1) {
69
- switch (_context.prev = _context.next) {
70
- case 0:
71
- node = createNode({
72
- amount: 3,
73
- ordered: true,
74
- start: 1
75
- });
76
- _render = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
77
- node: node,
78
- output: mockOutput,
79
- state: {},
80
- __self: _this,
81
- __source: {
82
- fileName: _jsxFileName,
83
- lineNumber: 36,
84
- columnNumber: 34
85
- }
86
- })), getByText = _render.getByText;
87
- _context.next = 4;
88
- return (0, _reactNative2.waitFor)(function () {
89
- return expect(getByText('1. ')).toBeTruthy();
90
- });
91
-
92
- case 4:
93
- _context.next = 6;
94
- return (0, _reactNative2.waitFor)(function () {
95
- return expect(getByText('2. ')).toBeTruthy();
96
- });
97
-
98
- case 6:
99
- _context.next = 8;
100
- return (0, _reactNative2.waitFor)(function () {
101
- return expect(getByText('3. ')).toBeTruthy();
102
- });
103
-
104
- case 8:
105
- case "end":
106
- return _context.stop();
107
- }
64
+ it('renders numbered items', function () {
65
+ var node = createNode({
66
+ amount: 3,
67
+ ordered: true,
68
+ start: 1
69
+ });
70
+
71
+ var _render = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
72
+ node: node,
73
+ output: mockOutput,
74
+ state: {},
75
+ __self: _this,
76
+ __source: {
77
+ fileName: _jsxFileName,
78
+ lineNumber: 38,
79
+ columnNumber: 34
108
80
  }
109
- }, _callee);
110
- })));
111
- it('renders numbered items from a start index', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
112
- var node, _render2, getByText;
113
-
114
- return _regenerator["default"].wrap(function _callee2$(_context2) {
115
- while (1) {
116
- switch (_context2.prev = _context2.next) {
117
- case 0:
118
- node = createNode({
119
- amount: 3,
120
- ordered: true,
121
- start: 3
122
- });
123
- _render2 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
124
- node: node,
125
- output: mockOutput,
126
- state: {},
127
- __self: _this,
128
- __source: {
129
- fileName: _jsxFileName,
130
- lineNumber: 45,
131
- columnNumber: 34
132
- }
133
- })), getByText = _render2.getByText;
134
- _context2.next = 4;
135
- return (0, _reactNative2.waitFor)(function () {
136
- return expect(getByText('3. ')).toBeTruthy();
137
- });
138
-
139
- case 4:
140
- _context2.next = 6;
141
- return (0, _reactNative2.waitFor)(function () {
142
- return expect(getByText('4. ')).toBeTruthy();
143
- });
144
-
145
- case 6:
146
- _context2.next = 8;
147
- return (0, _reactNative2.waitFor)(function () {
148
- return expect(getByText('5. ')).toBeTruthy();
149
- });
150
-
151
- case 8:
152
- case "end":
153
- return _context2.stop();
154
- }
81
+ })),
82
+ container = _render.container;
83
+
84
+ var textInstances = container.children;
85
+ textInstances.forEach(function () {
86
+ var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(instance, index) {
87
+ var text;
88
+ return _regenerator["default"].wrap(function _callee$(_context) {
89
+ while (1) {
90
+ switch (_context.prev = _context.next) {
91
+ case 0:
92
+ text = index + node.start + ". ";
93
+ _context.next = 3;
94
+ return (0, _reactNative2.waitFor)(function () {
95
+ return expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy();
96
+ });
97
+
98
+ case 3:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }
103
+ }, _callee);
104
+ }));
105
+
106
+ return function (_x, _x2) {
107
+ return _ref3.apply(this, arguments);
108
+ };
109
+ }());
110
+ });
111
+ it('renders numbered items from a start index', function () {
112
+ var node = createNode({
113
+ amount: 3,
114
+ ordered: true,
115
+ start: 3
116
+ });
117
+
118
+ var _render2 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
119
+ node: node,
120
+ output: mockOutput,
121
+ state: {},
122
+ __self: _this,
123
+ __source: {
124
+ fileName: _jsxFileName,
125
+ lineNumber: 48,
126
+ columnNumber: 34
155
127
  }
156
- }, _callee2);
157
- })));
158
- it('does not throw an error if an item is empty', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
159
- var node, _render3, getByText;
160
-
161
- return _regenerator["default"].wrap(function _callee3$(_context3) {
162
- while (1) {
163
- switch (_context3.prev = _context3.next) {
164
- case 0:
165
- node = (0, _extends2["default"])({}, createNode({
166
- amount: 3,
167
- ordered: true
168
- }), {
169
- items: ['Not empty', null, 'Not empty']
170
- });
171
- _render3 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
172
- node: node,
173
- output: mockOutput,
174
- state: {},
175
- __self: _this,
176
- __source: {
177
- fileName: _jsxFileName,
178
- lineNumber: 57,
179
- columnNumber: 34
180
- }
181
- })), getByText = _render3.getByText;
182
- _context3.next = 4;
183
- return (0, _reactNative2.waitFor)(function () {
184
- return expect(getByText('1. ')).toBeTruthy();
185
- });
186
-
187
- case 4:
188
- _context3.next = 6;
189
- return (0, _reactNative2.waitFor)(function () {
190
- return expect(getByText('2. ')).toBeTruthy();
191
- });
192
-
193
- case 6:
194
- _context3.next = 8;
195
- return (0, _reactNative2.waitFor)(function () {
196
- return expect(getByText('3. ')).toBeTruthy();
197
- });
198
-
199
- case 8:
200
- case "end":
201
- return _context3.stop();
202
- }
128
+ })),
129
+ container = _render2.container;
130
+
131
+ var textInstances = container.children;
132
+ textInstances.forEach(function () {
133
+ var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(instance, index) {
134
+ var text;
135
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
136
+ while (1) {
137
+ switch (_context2.prev = _context2.next) {
138
+ case 0:
139
+ text = index + node.start + ". ";
140
+ _context2.next = 3;
141
+ return (0, _reactNative2.waitFor)(function () {
142
+ return expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy();
143
+ });
144
+
145
+ case 3:
146
+ case "end":
147
+ return _context2.stop();
148
+ }
149
+ }
150
+ }, _callee2);
151
+ }));
152
+
153
+ return function (_x3, _x4) {
154
+ return _ref4.apply(this, arguments);
155
+ };
156
+ }());
157
+ });
158
+ it('does not throw an error if an item is empty', function () {
159
+ var node = (0, _extends2["default"])({}, createNode({
160
+ amount: 3,
161
+ ordered: true
162
+ }), {
163
+ items: ['Not empty', null, 'Not empty']
164
+ });
165
+
166
+ var _render3 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
167
+ node: node,
168
+ output: mockOutput,
169
+ state: {},
170
+ __self: _this,
171
+ __source: {
172
+ fileName: _jsxFileName,
173
+ lineNumber: 61,
174
+ columnNumber: 34
203
175
  }
204
- }, _callee3);
205
- })));
206
- it('renders an unordered list', (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
207
- var node, _render4, getAllByText;
208
-
209
- return _regenerator["default"].wrap(function _callee4$(_context4) {
210
- while (1) {
211
- switch (_context4.prev = _context4.next) {
212
- case 0:
213
- node = createNode({
214
- amount: 3
215
- });
216
- _render4 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
217
- node: node,
218
- output: mockOutput,
219
- state: {},
220
- __self: _this,
221
- __source: {
222
- fileName: _jsxFileName,
223
- lineNumber: 66,
224
- columnNumber: 37
225
- }
226
- })), getAllByText = _render4.getAllByText;
227
- _context4.next = 4;
228
- return (0, _reactNative2.waitFor)(function () {
229
- return expect(getAllByText("\u2022 ")).toHaveLength(3);
230
- });
231
-
232
- case 4:
233
- case "end":
234
- return _context4.stop();
235
- }
176
+ })),
177
+ container = _render3.container;
178
+
179
+ var textInstances = container.children;
180
+ textInstances.forEach(function () {
181
+ var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(instance, index) {
182
+ var text;
183
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
184
+ while (1) {
185
+ switch (_context3.prev = _context3.next) {
186
+ case 0:
187
+ text = index + 1 + ". ";
188
+ _context3.next = 3;
189
+ return (0, _reactNative2.waitFor)(function () {
190
+ return expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy();
191
+ });
192
+
193
+ case 3:
194
+ case "end":
195
+ return _context3.stop();
196
+ }
197
+ }
198
+ }, _callee3);
199
+ }));
200
+
201
+ return function (_x5, _x6) {
202
+ return _ref5.apply(this, arguments);
203
+ };
204
+ }());
205
+ });
206
+ it('renders an unordered list', function () {
207
+ var node = createNode({
208
+ amount: 3
209
+ });
210
+
211
+ var _render4 = (0, _reactNative2.render)(_react["default"].createElement(MockText, {
212
+ node: node,
213
+ output: mockOutput,
214
+ state: {},
215
+ __self: _this,
216
+ __source: {
217
+ fileName: _jsxFileName,
218
+ lineNumber: 71,
219
+ columnNumber: 34
236
220
  }
237
- }, _callee4);
238
- })));
221
+ })),
222
+ container = _render4.container;
223
+
224
+ var textInstances = container.children;
225
+ textInstances.forEach(function () {
226
+ var _ref6 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(instance) {
227
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
228
+ while (1) {
229
+ switch (_context4.prev = _context4.next) {
230
+ case 0:
231
+ _context4.next = 2;
232
+ return (0, _reactNative2.waitFor)(function () {
233
+ return expect((0, _reactNative2.within)(instance).getByText("\u2022 ")).toBeTruthy();
234
+ });
235
+
236
+ case 2:
237
+ case "end":
238
+ return _context4.stop();
239
+ }
240
+ }
241
+ }, _callee4);
242
+ }));
243
+
244
+ return function (_x7) {
245
+ return _ref6.apply(this, arguments);
246
+ };
247
+ }());
248
+ });
239
249
  });
240
250
  //# sourceMappingURL=renderText.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["renderText.test.tsx"],"names":["describe","createNode","amount","ordered","start","items","Array","from","keys","type","mockOutput","node","MockText","output","state","it","getByText","expect","toBeTruthy","getAllByText","toHaveLength"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Text } from 'react-native';\n\nimport { render, waitFor } from '@testing-library/react-native';\n\n// @ts-ignore\nimport { ASTNode, SingleASTNode } from 'simple-markdown';\n\nimport { ListOutput, ListOutputProps } from './renderText';\n\ndescribe('list', () => {\n const createNode = ({\n amount,\n ordered = false,\n start = 1,\n }: {\n amount: number;\n ordered?: boolean;\n start?: number;\n }): SingleASTNode => ({\n items: Array.from(Array(amount).keys()),\n ordered,\n start,\n type: 'text',\n });\n\n const mockOutput = (node: ASTNode) => <Text>{node}</Text>;\n const MockText = ({ node, output, state }: ListOutputProps) => (\n <>\n <ListOutput node={node} output={output} state={state} styles={{}} />\n </>\n );\n\n it('renders numbered items', async () => {\n const node = createNode({ amount: 3, ordered: true, start: 1 });\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('1. ')).toBeTruthy());\n await waitFor(() => expect(getByText('2. ')).toBeTruthy());\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n });\n\n it('renders numbered items from a start index', async () => {\n const node = createNode({ amount: 3, ordered: true, start: 3 });\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n await waitFor(() => expect(getByText('4. ')).toBeTruthy());\n await waitFor(() => expect(getByText('5. ')).toBeTruthy());\n });\n\n it('does not throw an error if an item is empty', async () => {\n const node = {\n ...createNode({ amount: 3, ordered: true }),\n items: ['Not empty', null, 'Not empty'],\n };\n const { getByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getByText('1. ')).toBeTruthy());\n await waitFor(() => expect(getByText('2. ')).toBeTruthy());\n await waitFor(() => expect(getByText('3. ')).toBeTruthy());\n });\n\n it('renders an unordered list', async () => {\n const node = createNode({ amount: 3 });\n const { getAllByText } = render(<MockText node={node} output={mockOutput} state={{}} />);\n\n await waitFor(() => expect(getAllByText('\\u2022 ')).toHaveLength(3));\n });\n});\n"]}
1
+ {"version":3,"sources":["renderText.test.tsx"],"names":["describe","createNode","amount","ordered","start","items","Array","from","keys","type","mockOutput","node","MockText","output","state","it","container","textInstances","children","forEach","instance","index","text","expect","getByText","toBeTruthy"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Text } from 'react-native';\n\nimport type { ReactTestInstance } from 'react-test-renderer';\n\nimport { render, waitFor, within } from '@testing-library/react-native';\n\n// @ts-ignore\nimport { ASTNode, SingleASTNode } from 'simple-markdown';\n\nimport { ListOutput, ListOutputProps } from './renderText';\n\ndescribe('list', () => {\n const createNode = ({\n amount,\n ordered = false,\n start = 1,\n }: {\n amount: number;\n ordered?: boolean;\n start?: number;\n }): SingleASTNode => ({\n items: Array.from(Array(amount).keys()),\n ordered,\n start,\n type: 'text',\n });\n\n const mockOutput = (node: ASTNode) => <Text>{node}</Text>;\n const MockText = ({ node, output, state }: ListOutputProps) => (\n <>\n <ListOutput node={node} output={output} state={state} styles={{}} />\n </>\n );\n\n it('renders numbered items', () => {\n const node = createNode({ amount: 3, ordered: true, start: 1 });\n const { container } = render(<MockText node={node} output={mockOutput} state={{}} />);\n const textInstances = container.children as ReactTestInstance[];\n textInstances.forEach(async (instance, index) => {\n const text = `${index + node.start}. `; // 1. , 2. ...\n await waitFor(() => expect(within(instance).getByText(text)).toBeTruthy());\n });\n });\n\n it('renders numbered items from a start index', () => {\n const node = createNode({ amount: 3, ordered: true, start: 3 });\n const { container } = render(<MockText node={node} output={mockOutput} state={{}} />);\n const textInstances = container.children as ReactTestInstance[];\n textInstances.forEach(async (instance, index) => {\n const text = `${index + node.start}. `; // 3. , 4. ...\n await waitFor(() => expect(within(instance).getByText(text)).toBeTruthy());\n });\n });\n\n it('does not throw an error if an item is empty', () => {\n const node = {\n ...createNode({ amount: 3, ordered: true }),\n items: ['Not empty', null, 'Not empty'],\n };\n const { container } = render(<MockText node={node} output={mockOutput} state={{}} />);\n const textInstances = container.children as ReactTestInstance[];\n textInstances.forEach(async (instance, index) => {\n const text = `${index + 1}. `; // 1. , 2. ...\n await waitFor(() => expect(within(instance).getByText(text)).toBeTruthy());\n });\n });\n\n it('renders an unordered list', () => {\n const node = createNode({ amount: 3 });\n const { container } = render(<MockText node={node} output={mockOutput} state={{}} />);\n const textInstances = container.children as ReactTestInstance[];\n textInstances.forEach(async (instance) => {\n await waitFor(() => expect(within(instance).getByText('\\u2022 ')).toBeTruthy());\n });\n });\n});\n"]}
@@ -342,10 +342,10 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
342
342
  var uniqueUsers = {};
343
343
 
344
344
  for (var _iterator = _createForOfIteratorHelperLoose(users), _step; !(_step = _iterator()).done;) {
345
- var _user = _step.value;
345
+ var user = _step.value;
346
346
 
347
- if (_user && !uniqueUsers[_user.id]) {
348
- uniqueUsers[_user.id] = _user;
347
+ if (user && !uniqueUsers[user.id]) {
348
+ uniqueUsers[user.id] = user;
349
349
  }
350
350
  }
351
351