From 360234d1bf1ea8b5c88a96d21156ea351f3e87c2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 3 Oct 2019 03:34:58 +0200 Subject: [Glitch] Fix audio attachments opening in video modal from media tab in web UI Port c9b8ba50f8ad46e2f7821bb36af0c85e4b9a29df to glitch-soc Signed-off-by: Thibaut Girka --- .../glitch/features/ui/components/audio_modal.js | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/javascript/flavours/glitch/features/ui/components/audio_modal.js (limited to 'app/javascript/flavours/glitch/features/ui/components/audio_modal.js') diff --git a/app/javascript/flavours/glitch/features/ui/components/audio_modal.js b/app/javascript/flavours/glitch/features/ui/components/audio_modal.js new file mode 100644 index 000000000..15d4591c9 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/audio_modal.js @@ -0,0 +1,76 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import PropTypes from 'prop-types'; +import Audio from 'flavours/glitch/features/audio'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { FormattedMessage } from 'react-intl'; +import { previewState } from './video_modal'; +import classNames from 'classnames'; +import Icon from 'flavours/glitch/components/icon'; + +export default class AudioModal extends ImmutablePureComponent { + + static propTypes = { + media: ImmutablePropTypes.map.isRequired, + status: ImmutablePropTypes.map, + onClose: PropTypes.func.isRequired, + }; + + static contextTypes = { + router: PropTypes.object, + }; + + componentDidMount () { + if (this.context.router) { + const history = this.context.router.history; + + history.push(history.location.pathname, previewState); + + this.unlistenHistory = history.listen(() => { + this.props.onClose(); + }); + } + } + + componentWillUnmount () { + if (this.context.router) { + this.unlistenHistory(); + + if (this.context.router.history.location.state === previewState) { + this.context.router.history.goBack(); + } + } + } + + handleStatusClick = e => { + if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { + e.preventDefault(); + this.context.router.history.push(`/statuses/${this.props.status.get('id')}`); + } + } + + render () { + const { media, status } = this.props; + + return ( +
+
+
+ + {status && ( +
+ +
+ )} +
+ ); + } + +} -- cgit From bc8543d9af0045fe2175f7e2234da9c77dc55023 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Fri, 4 Oct 2019 21:07:45 +0200 Subject: Fix audio modal closing immediately --- .../glitch/features/ui/components/audio_modal.js | 23 ---------------------- 1 file changed, 23 deletions(-) (limited to 'app/javascript/flavours/glitch/features/ui/components/audio_modal.js') diff --git a/app/javascript/flavours/glitch/features/ui/components/audio_modal.js b/app/javascript/flavours/glitch/features/ui/components/audio_modal.js index 15d4591c9..08fbddc91 100644 --- a/app/javascript/flavours/glitch/features/ui/components/audio_modal.js +++ b/app/javascript/flavours/glitch/features/ui/components/audio_modal.js @@ -4,7 +4,6 @@ import PropTypes from 'prop-types'; import Audio from 'flavours/glitch/features/audio'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { FormattedMessage } from 'react-intl'; -import { previewState } from './video_modal'; import classNames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; @@ -20,28 +19,6 @@ export default class AudioModal extends ImmutablePureComponent { router: PropTypes.object, }; - componentDidMount () { - if (this.context.router) { - const history = this.context.router.history; - - history.push(history.location.pathname, previewState); - - this.unlistenHistory = history.listen(() => { - this.props.onClose(); - }); - } - } - - componentWillUnmount () { - if (this.context.router) { - this.unlistenHistory(); - - if (this.context.router.history.location.state === previewState) { - this.context.router.history.goBack(); - } - } - } - handleStatusClick = e => { if (e.button === 0 && !(e.ctrlKey || e.metaKey)) { e.preventDefault(); -- cgit