diff options
Diffstat (limited to 'webapp/components')
-rw-r--r-- | webapp/components/post_view/post_body_additional_content.jsx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/webapp/components/post_view/post_body_additional_content.jsx b/webapp/components/post_view/post_body_additional_content.jsx index bd7574949..ddc73d554 100644 --- a/webapp/components/post_view/post_body_additional_content.jsx +++ b/webapp/components/post_view/post_body_additional_content.jsx @@ -8,6 +8,7 @@ import YoutubeVideo from 'components/youtube_video'; import Constants from 'utils/constants.jsx'; import * as Utils from 'utils/utils.jsx'; +import BrowserStore from 'stores/browser_store.jsx'; import React from 'react'; import PropTypes from 'prop-types'; @@ -47,7 +48,7 @@ export default class PostBodyAdditionalContent extends React.PureComponent { this.handleLinkLoaded = this.handleLinkLoaded.bind(this); this.state = { - embedVisible: props.previewCollapsed.startsWith('false'), + embedVisible: PostBodyAdditionalContent.isEmbedVisible(props), link: Utils.extractFirstLink(props.post.message), linkLoadError: false, linkLoaded: false @@ -62,7 +63,7 @@ export default class PostBodyAdditionalContent extends React.PureComponent { componentWillReceiveProps(nextProps) { if (nextProps.previewCollapsed !== this.props.previewCollapsed || nextProps.post.message !== this.props.post.message) { this.setState({ - embedVisible: nextProps.previewCollapsed.startsWith('false'), + embedVisible: PostBodyAdditionalContent.isEmbedVisible(nextProps), link: Utils.extractFirstLink(nextProps.post.message) }, () => { // check the availability of the image link @@ -72,6 +73,9 @@ export default class PostBodyAdditionalContent extends React.PureComponent { } toggleEmbedVisibility() { + // save the taggle info in the localstorage + BrowserStore.setItem(`isVisible-${this.props.post.id}`, !this.state.embedVisible); + this.setState((prevState) => { return {embedVisible: !prevState.embedVisible}; }); @@ -260,4 +264,9 @@ export default class PostBodyAdditionalContent extends React.PureComponent { return this.props.message; } + + static isEmbedVisible(props) { + // check first in localstorage, if not present, consider previewCollapsed from the parent component + return BrowserStore.getItem(`isVisible-${props.post.id}`, props.previewCollapsed.startsWith('false')); + } } |