Update mediaGallery component's width when opening CWs

master
Thibaut Girka 6 years ago committed by ThibG
parent e4c3ea1809
commit dfa5b0576f
  1. 10
      app/javascript/flavours/glitch/components/media_gallery.js
  2. 1
      app/javascript/flavours/glitch/components/status.js

@ -215,6 +215,7 @@ export default class MediaGallery extends React.PureComponent {
standalone: PropTypes.bool, standalone: PropTypes.bool,
letterbox: PropTypes.bool, letterbox: PropTypes.bool,
fullwidth: PropTypes.bool, fullwidth: PropTypes.bool,
hidden: PropTypes.bool,
media: ImmutablePropTypes.list.isRequired, media: ImmutablePropTypes.list.isRequired,
size: PropTypes.object, size: PropTypes.object,
onOpenMedia: PropTypes.func.isRequired, onOpenMedia: PropTypes.func.isRequired,
@ -235,6 +236,14 @@ export default class MediaGallery extends React.PureComponent {
} }
} }
componentDidUpdate (prevProps) {
if (this.node && this.node.offsetWidth) {
this.setState({
width: this.node.offsetWidth,
});
}
}
handleOpen = () => { handleOpen = () => {
this.setState({ visible: !this.state.visible }); this.setState({ visible: !this.state.visible });
} }
@ -244,6 +253,7 @@ export default class MediaGallery extends React.PureComponent {
} }
handleRef = (node) => { handleRef = (node) => {
this.node = node;
if (node /*&& this.isStandaloneEligible()*/) { if (node /*&& this.isStandaloneEligible()*/) {
// offsetWidth triggers a layout, so only calculate when we need to // offsetWidth triggers a layout, so only calculate when we need to
this.setState({ this.setState({

@ -465,6 +465,7 @@ export default class Status extends ImmutablePureComponent {
sensitive={status.get('sensitive')} sensitive={status.get('sensitive')}
letterbox={settings.getIn(['media', 'letterbox'])} letterbox={settings.getIn(['media', 'letterbox'])}
fullwidth={settings.getIn(['media', 'fullwidth'])} fullwidth={settings.getIn(['media', 'fullwidth'])}
hidden={isCollapsed || !isExpanded}
onOpenMedia={this.props.onOpenMedia} onOpenMedia={this.props.onOpenMedia}
/> />
)} )}

Loading…
Cancel
Save