stream-chat-react-native-core 5.7.0 → 5.7.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.
@@ -266,6 +266,11 @@ var renderText = function renderText(params) {
266
266
  };
267
267
 
268
268
  var customRules = (0, _extends2["default"])({
269
+ image: {
270
+ match: function match() {
271
+ return null;
272
+ }
273
+ },
269
274
  link: {
270
275
  react: link
271
276
  },
@@ -299,7 +304,7 @@ var renderText = function renderText(params) {
299
304
  __self: _this,
300
305
  __source: {
301
306
  fileName: _jsxFileName,
302
- lineNumber: 284,
307
+ lineNumber: 286,
303
308
  columnNumber: 5
304
309
  }
305
310
  }, newText);
@@ -320,7 +325,7 @@ var ListOutput = function ListOutput(_ref4) {
320
325
  __self: _this,
321
326
  __source: {
322
327
  fileName: _jsxFileName,
323
- lineNumber: 319,
328
+ lineNumber: 321,
324
329
  columnNumber: 5
325
330
  }
326
331
  }, node.items.map(function (item, index) {
@@ -336,7 +341,7 @@ var ListOutput = function ListOutput(_ref4) {
336
341
  __self: _this,
337
342
  __source: {
338
343
  fileName: _jsxFileName,
339
- lineNumber: 325,
344
+ lineNumber: 327,
340
345
  columnNumber: 13
341
346
  }
342
347
  }, _react["default"].createElement(Bullet, {
@@ -344,7 +349,7 @@ var ListOutput = function ListOutput(_ref4) {
344
349
  __self: _this,
345
350
  __source: {
346
351
  fileName: _jsxFileName,
347
- lineNumber: 326,
352
+ lineNumber: 328,
348
353
  columnNumber: 15
349
354
  }
350
355
  }));
@@ -362,7 +367,7 @@ var ListOutput = function ListOutput(_ref4) {
362
367
  __self: _this,
363
368
  __source: {
364
369
  fileName: _jsxFileName,
365
- lineNumber: 336,
370
+ lineNumber: 338,
366
371
  columnNumber: 11
367
372
  }
368
373
  }, _react["default"].createElement(Bullet, {
@@ -370,7 +375,7 @@ var ListOutput = function ListOutput(_ref4) {
370
375
  __self: _this,
371
376
  __source: {
372
377
  fileName: _jsxFileName,
373
- lineNumber: 337,
378
+ lineNumber: 339,
374
379
  columnNumber: 13
375
380
  }
376
381
  }), _react["default"].createElement(ListItem, {
@@ -379,7 +384,7 @@ var ListOutput = function ListOutput(_ref4) {
379
384
  __self: _this,
380
385
  __source: {
381
386
  fileName: _jsxFileName,
382
- lineNumber: 338,
387
+ lineNumber: 340,
383
388
  columnNumber: 13
384
389
  }
385
390
  }, output(item, state)));
@@ -397,7 +402,7 @@ var Bullet = function Bullet(_ref5) {
397
402
  __self: _this,
398
403
  __source: {
399
404
  fileName: _jsxFileName,
400
- lineNumber: 353,
405
+ lineNumber: 355,
401
406
  columnNumber: 3
402
407
  }
403
408
  }, index ? index + ". " : "\u2022 ");
@@ -409,7 +414,7 @@ var ListRow = function ListRow(props) {
409
414
  __self: _this,
410
415
  __source: {
411
416
  fileName: _jsxFileName,
412
- lineNumber: 359,
417
+ lineNumber: 361,
413
418
  columnNumber: 3
414
419
  }
415
420
  }, props.children);
@@ -423,7 +428,7 @@ var ListItem = function ListItem(_ref6) {
423
428
  __self: _this,
424
429
  __source: {
425
430
  fileName: _jsxFileName,
426
- lineNumber: 363,
431
+ lineNumber: 365,
427
432
  columnNumber: 3
428
433
  }
429
434
  }, children);
@@ -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","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","target","event","additionalInfo","defaultHandler","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","match","source","exec","mentionsReact","substring","user","find","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 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 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 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;\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) ? 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: { 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 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","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","target","event","additionalInfo","defaultHandler","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","match","source","exec","mentionsReact","substring","user","find","customRules","image","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 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 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 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;\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) ? 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 // 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 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,3 +1,3 @@
1
1
  {
2
- "version": "5.7.0"
2
+ "version": "5.7.1-beta.1"
3
3
  }
@@ -266,6 +266,11 @@ var renderText = function renderText(params) {
266
266
  };
267
267
 
268
268
  var customRules = (0, _extends2["default"])({
269
+ image: {
270
+ match: function match() {
271
+ return null;
272
+ }
273
+ },
269
274
  link: {
270
275
  react: link
271
276
  },
@@ -299,7 +304,7 @@ var renderText = function renderText(params) {
299
304
  __self: _this,
300
305
  __source: {
301
306
  fileName: _jsxFileName,
302
- lineNumber: 284,
307
+ lineNumber: 286,
303
308
  columnNumber: 5
304
309
  }
305
310
  }, newText);
@@ -320,7 +325,7 @@ var ListOutput = function ListOutput(_ref4) {
320
325
  __self: _this,
321
326
  __source: {
322
327
  fileName: _jsxFileName,
323
- lineNumber: 319,
328
+ lineNumber: 321,
324
329
  columnNumber: 5
325
330
  }
326
331
  }, node.items.map(function (item, index) {
@@ -336,7 +341,7 @@ var ListOutput = function ListOutput(_ref4) {
336
341
  __self: _this,
337
342
  __source: {
338
343
  fileName: _jsxFileName,
339
- lineNumber: 325,
344
+ lineNumber: 327,
340
345
  columnNumber: 13
341
346
  }
342
347
  }, _react["default"].createElement(Bullet, {
@@ -344,7 +349,7 @@ var ListOutput = function ListOutput(_ref4) {
344
349
  __self: _this,
345
350
  __source: {
346
351
  fileName: _jsxFileName,
347
- lineNumber: 326,
352
+ lineNumber: 328,
348
353
  columnNumber: 15
349
354
  }
350
355
  }));
@@ -362,7 +367,7 @@ var ListOutput = function ListOutput(_ref4) {
362
367
  __self: _this,
363
368
  __source: {
364
369
  fileName: _jsxFileName,
365
- lineNumber: 336,
370
+ lineNumber: 338,
366
371
  columnNumber: 11
367
372
  }
368
373
  }, _react["default"].createElement(Bullet, {
@@ -370,7 +375,7 @@ var ListOutput = function ListOutput(_ref4) {
370
375
  __self: _this,
371
376
  __source: {
372
377
  fileName: _jsxFileName,
373
- lineNumber: 337,
378
+ lineNumber: 339,
374
379
  columnNumber: 13
375
380
  }
376
381
  }), _react["default"].createElement(ListItem, {
@@ -379,7 +384,7 @@ var ListOutput = function ListOutput(_ref4) {
379
384
  __self: _this,
380
385
  __source: {
381
386
  fileName: _jsxFileName,
382
- lineNumber: 338,
387
+ lineNumber: 340,
383
388
  columnNumber: 13
384
389
  }
385
390
  }, output(item, state)));
@@ -397,7 +402,7 @@ var Bullet = function Bullet(_ref5) {
397
402
  __self: _this,
398
403
  __source: {
399
404
  fileName: _jsxFileName,
400
- lineNumber: 353,
405
+ lineNumber: 355,
401
406
  columnNumber: 3
402
407
  }
403
408
  }, index ? index + ". " : "\u2022 ");
@@ -409,7 +414,7 @@ var ListRow = function ListRow(props) {
409
414
  __self: _this,
410
415
  __source: {
411
416
  fileName: _jsxFileName,
412
- lineNumber: 359,
417
+ lineNumber: 361,
413
418
  columnNumber: 3
414
419
  }
415
420
  }, props.children);
@@ -423,7 +428,7 @@ var ListItem = function ListItem(_ref6) {
423
428
  __self: _this,
424
429
  __source: {
425
430
  fileName: _jsxFileName,
426
- lineNumber: 363,
431
+ lineNumber: 365,
427
432
  columnNumber: 3
428
433
  }
429
434
  }, children);
@@ -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","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","target","event","additionalInfo","defaultHandler","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","match","source","exec","mentionsReact","substring","user","find","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 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 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 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;\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) ? 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: { 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 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","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","link","node","output","target","event","additionalInfo","defaultHandler","emitter","key","withinLink","paragraphText","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","regEx","match","source","exec","mentionsReact","substring","user","find","customRules","image","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 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 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 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;\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) ? 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 // 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 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,3 +1,3 @@
1
1
  {
2
- "version": "5.7.0"
2
+ "version": "5.7.1-beta.1"
3
3
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.7.0",
4
+ "version": "5.7.1-beta.1",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -261,6 +261,8 @@ export const renderText = <
261
261
  );
262
262
 
263
263
  const customRules = {
264
+ // do not render images, we will scrape them out of the message and show on attachment card component
265
+ image: { match: () => null },
264
266
  link: { react: link },
265
267
  list: { react: list },
266
268
  // Truncate long text content in the message overlay
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.7.0"
2
+ "version": "5.7.1-beta.1"
3
3
  }