diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2017-06-28 10:30:02 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-06-28 07:30:02 -0700 |
commit | 2dea567dcfcdfcd016c0da55a120c6e854760fb0 (patch) | |
tree | ae718a1d36b8a6f48eb3684ff7b57c3b7b2eac6d /webapp/components | |
parent | 0f6992034229f542d823f73cf740002ad0ac48e3 (diff) | |
download | chat-2dea567dcfcdfcd016c0da55a120c6e854760fb0.tar.gz chat-2dea567dcfcdfcd016c0da55a120c6e854760fb0.tar.bz2 chat-2dea567dcfcdfcd016c0da55a120c6e854760fb0.zip |
Added MarkdownImage component (#6774)
* Added MarkdownImage component
* Fixed unit tests
Diffstat (limited to 'webapp/components')
-rw-r--r-- | webapp/components/markdown_image.jsx | 19 | ||||
-rw-r--r-- | webapp/components/post_view/post_message_view/post_message_view.jsx | 17 |
2 files changed, 36 insertions, 0 deletions
diff --git a/webapp/components/markdown_image.jsx b/webapp/components/markdown_image.jsx new file mode 100644 index 000000000..75a6ce9ea --- /dev/null +++ b/webapp/components/markdown_image.jsx @@ -0,0 +1,19 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React, {PureComponent} from 'react'; + +import {postListScrollChange} from 'actions/global_actions.jsx'; + +export default class MarkdownImage extends PureComponent { + handleLoad = () => { + postListScrollChange(); + } + + render() { + const props = {...this.props}; + props.onLoad = this.handleLoad; + + return <img {...props}/>; + } +} diff --git a/webapp/components/post_view/post_message_view/post_message_view.jsx b/webapp/components/post_view/post_message_view/post_message_view.jsx index d066183ff..76037741f 100644 --- a/webapp/components/post_view/post_message_view/post_message_view.jsx +++ b/webapp/components/post_view/post_message_view/post_message_view.jsx @@ -7,6 +7,7 @@ import React from 'react'; import {FormattedMessage} from 'react-intl'; import AtMention from 'components/at_mention'; +import MarkdownImage from 'components/markdown_image'; import store from 'stores/redux_store.jsx'; @@ -114,6 +115,22 @@ export default class PostMessageView extends React.PureComponent { } }, { + shouldProcessNode: (node) => node.type === 'tag' && node.name === 'img', + processNode: (node) => { + const { + class: className, + ...attribs + } = node.attribs; + + return ( + <MarkdownImage + className={className} + {...attribs} + /> + ); + } + }, + { shouldProcessNode: () => true, processNode: processNodeDefinitions.processDefaultNode } |