diff --git a/app/soapbox/features/admin/components/report.js b/app/soapbox/features/admin/components/report.js
index d08059837..a1e7d82bb 100644
--- a/app/soapbox/features/admin/components/report.js
+++ b/app/soapbox/features/admin/components/report.js
@@ -125,7 +125,7 @@ class Report extends ImmutablePureComponent {
expanded={accordionExpanded}
onToggle={this.handleAccordionToggle}
>
- {statuses.map(status => )}
+ {statuses.map(status => )}
)}
diff --git a/app/soapbox/features/admin/components/report_status.js b/app/soapbox/features/admin/components/report_status.js
index f02e36598..d98e9c755 100644
--- a/app/soapbox/features/admin/components/report_status.js
+++ b/app/soapbox/features/admin/components/report_status.js
@@ -8,6 +8,9 @@ import DropdownMenu from 'soapbox/containers/dropdown_menu_container';
import { deleteStatus } from 'soapbox/actions/admin';
import snackbar from 'soapbox/actions/snackbar';
import { openModal } from 'soapbox/actions/modal';
+import noop from 'lodash/noop';
+import { MediaGallery, Video, Audio } from 'soapbox/features/ui/util/async-components';
+import Bundle from 'soapbox/features/ui/components/bundle';
const messages = defineMessages({
viewStatus: { id: 'admin.reports.actions.view_status', defaultMessage: 'View post' },
@@ -39,6 +42,66 @@ class ReportStatus extends ImmutablePureComponent {
}];
}
+ getMedia = () => {
+ const { status } = this.props;
+
+ if (status.get('media_attachments').size > 0) {
+ if (status.get('media_attachments').some(item => item.get('type') === 'unknown')) {
+
+ } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
+ const video = status.getIn(['media_attachments', 0]);
+
+ return (
+
+ {Component => (
+
+ )}
+
+ );
+ } else if (status.getIn(['media_attachments', 0, 'type']) === 'audio') {
+ const audio = status.getIn(['media_attachments', 0]);
+
+ return (
+
+ {Component => (
+
+ )}
+
+ );
+ } else {
+ return (
+
+ {Component => }
+
+ );
+ }
+ }
+
+ return null;
+ }
+
+ handleOpenMedia = (media, index) => {
+ const { dispatch } = this.props;
+ dispatch(openModal('MEDIA', { media, index }));
+ }
+
handleDeleteStatus = () => {
const { intl, dispatch, status } = this.props;
const nickname = status.getIn(['account', 'acct']);
@@ -58,11 +121,15 @@ class ReportStatus extends ImmutablePureComponent {
render() {
const { status } = this.props;
+ const media = this.getMedia();
const menu = this.makeMenu();
return (
-
+
+
+ {media}
+
diff --git a/app/soapbox/features/admin/reports.js b/app/soapbox/features/admin/reports.js
index 55c638b64..50c7c33a7 100644
--- a/app/soapbox/features/admin/reports.js
+++ b/app/soapbox/features/admin/reports.js
@@ -20,7 +20,7 @@ const mapStateToProps = state => {
const ids = state.getIn(['admin', 'openReports']);
return {
- reports: ids.map(id => getReport(state, id)),
+ reports: ids.toList().map(id => getReport(state, id)),
};
};
@@ -57,7 +57,7 @@ class Reports extends ImmutablePureComponent {
scrollKey='admin-reports'
emptyMessage={intl.formatMessage(messages.emptyMessage)}
>
- {reports.map(report =>
)}
+ {reports.map(report =>
)}
);
diff --git a/app/soapbox/features/ui/components/accordion.js b/app/soapbox/features/ui/components/accordion.js
index 628c2912a..c38e5de14 100644
--- a/app/soapbox/features/ui/components/accordion.js
+++ b/app/soapbox/features/ui/components/accordion.js
@@ -12,7 +12,7 @@ export default @injectIntl class Accordion extends React.PureComponent {
static propTypes = {
headline: PropTypes.node.isRequired,
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
+ children: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.node]),
expanded: PropTypes.bool,
onToggle: PropTypes.func,
intl: PropTypes.object.isRequired,