From 3a1bb8f19bec645aaaa8c1d81745933eca0883d7 Mon Sep 17 00:00:00 2001 From: Sean King Date: Thu, 29 Oct 2020 08:41:43 -0600 Subject: [PATCH 1/2] Make display media option work properly --- app/soapbox/components/status.js | 1 + app/soapbox/features/status/index.js | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js index 9e8a2d684..0c0f6be42 100644 --- a/app/soapbox/components/status.js +++ b/app/soapbox/components/status.js @@ -112,6 +112,7 @@ class Status extends ImmutablePureComponent { // Track height changes we know about to compensate scrolling componentDidMount() { this.didShowCard = !this.props.muted && !this.props.hidden && this.props.status && this.props.status.get('card'); + this.setState({ showMedia: defaultMediaVisibility(this.props.status, this.props.displayMedia) }); } getSnapshotBeforeUpdate() { diff --git a/app/soapbox/features/status/index.js b/app/soapbox/features/status/index.js index 4f1fe6084..9febc716a 100644 --- a/app/soapbox/features/status/index.js +++ b/app/soapbox/features/status/index.js @@ -110,6 +110,7 @@ const makeMapStateToProps = () => { askReplyConfirmation: state.getIn(['compose', 'text']).trim().length !== 0, domain: state.getIn(['meta', 'domain']), me: state.get('me'), + displayMedia: getSettings(state).get('displayMedia'), }; }; @@ -133,17 +134,19 @@ class Status extends ImmutablePureComponent { intl: PropTypes.object.isRequired, askReplyConfirmation: PropTypes.bool, domain: PropTypes.string, + displayMedia: PropTypes.string, }; state = { fullscreen: false, - showMedia: defaultMediaVisibility(this.props.status), + showMedia: defaultMediaVisibility(this.props.status, this.props.displayMedia), loadedStatusId: undefined, }; componentDidMount() { this.props.dispatch(fetchStatus(this.props.params.statusId)); attachFullscreenListener(this.onFullScreenChange); + this.setState({ showMedia: defaultMediaVisibility(this.props.status, this.props.displayMedia) }); } handleToggleMediaVisibility = () => { From df85d707bb3f8b52e9b141b6d6c6e0309e1c3ffb Mon Sep 17 00:00:00 2001 From: Sean King Date: Thu, 29 Oct 2020 09:30:08 -0600 Subject: [PATCH 2/2] Alternative fix without setState in ComponentDidMount --- app/soapbox/components/status.js | 3 +-- app/soapbox/features/status/index.js | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js index 0c0f6be42..c93ccac22 100644 --- a/app/soapbox/components/status.js +++ b/app/soapbox/components/status.js @@ -112,7 +112,6 @@ class Status extends ImmutablePureComponent { // Track height changes we know about to compensate scrolling componentDidMount() { this.didShowCard = !this.props.muted && !this.props.hidden && this.props.status && this.props.status.get('card'); - this.setState({ showMedia: defaultMediaVisibility(this.props.status, this.props.displayMedia) }); } getSnapshotBeforeUpdate() { @@ -126,7 +125,7 @@ class Status extends ImmutablePureComponent { static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { return { - showMedia: defaultMediaVisibility(nextProps.status), + showMedia: defaultMediaVisibility(nextProps.status, nextProps.displayMedia), statusId: nextProps.status.get('id'), }; } else { diff --git a/app/soapbox/features/status/index.js b/app/soapbox/features/status/index.js index 9febc716a..c4b7590af 100644 --- a/app/soapbox/features/status/index.js +++ b/app/soapbox/features/status/index.js @@ -146,7 +146,6 @@ class Status extends ImmutablePureComponent { componentDidMount() { this.props.dispatch(fetchStatus(this.props.params.statusId)); attachFullscreenListener(this.onFullScreenChange); - this.setState({ showMedia: defaultMediaVisibility(this.props.status, this.props.displayMedia) }); } handleToggleMediaVisibility = () => {