diff --git a/app/javascript/mastodon/containers/timeline_container.js b/app/javascript/mastodon/containers/timeline_container.js index ed8095f90..768169458 100644 --- a/app/javascript/mastodon/containers/timeline_container.js +++ b/app/javascript/mastodon/containers/timeline_container.js @@ -47,7 +47,9 @@ export default class TimelineContainer extends React.PureComponent { - {timeline} +
+ {timeline} +
{ReactDOM.createPortal( , diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 3eca8b092..9d16a9aa9 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -231,7 +231,7 @@ class DetailedStatus extends ImmutablePureComponent { if (quote_muted) { quote = ( -
+
@@ -239,7 +239,7 @@ class DetailedStatus extends ImmutablePureComponent { ); } else { quote = ( -
+
@@ -252,7 +252,7 @@ class DetailedStatus extends ImmutablePureComponent { } } else if (quote_muted) { quote = ( -
+
diff --git a/app/javascript/mastodon/features/status/containers/detailed_status_container.js b/app/javascript/mastodon/features/status/containers/detailed_status_container.js index bfed16620..8238f654d 100644 --- a/app/javascript/mastodon/features/status/containers/detailed_status_container.js +++ b/app/javascript/mastodon/features/status/containers/detailed_status_container.js @@ -20,6 +20,8 @@ import { deleteStatus, hideStatus, revealStatus, + hideQuote, + revealQuote, } from '../../../actions/statuses'; import { initMuteModal } from '../../../actions/mutes'; import { initBlockModal } from '../../../actions/blocks'; @@ -136,6 +138,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(openModal('VIDEO', { media, options })); }, + onOpenMediaQuote (media, index) { + dispatch(openModal('MEDIA', { media, index })); + }, + + onOpenVideoQuote (media, options) { + dispatch(openModal('VIDEO', { media, options })); + }, + onBlock (status) { const account = status.get('account'); dispatch(initBlockModal(account)); @@ -165,6 +175,13 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } }, + onQuoteToggleHidden (status) { + if (status.get('quote_hidden')) { + dispatch(revealQuote(status.get('id'))); + } else { + dispatch(hideQuote(status.get('id'))); + } + }, }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(DetailedStatus)); diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index f6acf706c..3a92d891a 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -303,6 +303,8 @@ function main() { let url = target.closest('.quote-status').getAttribute('dataurl'); if (target.closest('.status__display-name')) { url = target.closest('.status__display-name').getAttribute('href'); + } else if (target.closest('.detailed-status__display-name')) { + url = target.closest('.detailed-status__display-name').getAttribute('href'); } else if (target.closest('.status-card')) { url = target.closest('.status-card').getAttribute('href'); } diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss index ab91b3123..47dde12fd 100644 --- a/app/javascript/styles/mastodon/statuses.scss +++ b/app/javascript/styles/mastodon/statuses.scss @@ -99,6 +99,10 @@ } } +.standalone-timeline .quote-status { + cursor: pointer; +} + .button.logo-button { flex: 0 auto; font-size: 14px;