diff --git a/app/containers/markdown/NewMarkdown/index.js b/app/containers/markdown/NewMarkdown/index.js new file mode 100644 index 000000000..c44f488c6 --- /dev/null +++ b/app/containers/markdown/NewMarkdown/index.js @@ -0,0 +1,42 @@ +import React from 'react'; +import { Text, PropTypes } from 'react-native'; +import MarkdownLink from '../Link'; +import MarkdownList from '../List'; +import MarkdownListItem from '../ListItem'; +import MarkdownAtMention from '../AtMention'; +import MarkdownHashtag from '../Hashtag'; +import MarkdownBlockQuote from '../BlockQuote'; +import MarkdownEmoji from '../Emoji'; +import MarkdownTable from '../Table'; +import MarkdownTableRow from '../TableRow'; +import MarkdownTableCell from '../TableCell'; +import styles from '../styles'; +import { withTheme } from '../../../theme'; +import { themes } from '../../../constants/colors'; + + +const NewMarkdown = ({ md, theme }) => ( + <> + {md.map((block, index) => { + switch (block.type) { + case 'PARAGRAPH': + return ( + + {block.value?.value} + + ); + case 'LINK': + return ; + default: + return null; + } + })} + +); + +NewMarkdown.propTypes = { + md: PropTypes.array, + theme: PropTypes.string +}; + +export default withTheme(NewMarkdown); diff --git a/app/containers/message/Content.js b/app/containers/message/Content.js index 3d8151217..e6dafc06a 100644 --- a/app/containers/message/Content.js +++ b/app/containers/message/Content.js @@ -98,6 +98,9 @@ const Content = React.memo((props) => { if (prevProps.msg !== nextProps.msg) { return false; } + if (prevProps.md !== nextProps.md) { + return false; + } if (prevProps.type !== nextProps.type) { return false; } diff --git a/app/presentation/RoomItem/LastMessage.js b/app/presentation/RoomItem/LastMessage.js index 25fc2c08d..48e7c2b25 100644 --- a/app/presentation/RoomItem/LastMessage.js +++ b/app/presentation/RoomItem/LastMessage.js @@ -54,6 +54,7 @@ const LastMessage = React.memo(({ msg={formatMsg({ lastMessage, type, showLastMessage, username, useRealName })} + md={lastMessage?.md} style={[styles.markdownText, { color: alert ? themes[theme].bodyText : themes[theme].auxiliaryText }]} customEmojis={false} useRealName={useRealName}