QuotedStatus: use StatusMedia component

This commit is contained in:
Alex Gleason 2022-05-31 13:11:50 -05:00
parent e1a0759c3a
commit fb9acf4d64
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
2 changed files with 23 additions and 8 deletions

View File

@ -21,7 +21,7 @@ interface IStatusMedia {
/** Whether or not the media is concealed behind a NSFW banner. */
showMedia?: boolean,
/** Callback when visibility is toggled (eg clicked through NSFW). */
onToggleVisibility: () => void,
onToggleVisibility?: () => void,
}
/** Render media attachments for a status. */
@ -30,7 +30,7 @@ const StatusMedia: React.FC<IStatusMedia> = ({
muted = false,
onClick,
showMedia = true,
onToggleVisibility,
onToggleVisibility = () => {},
}) => {
const dispatch = useAppDispatch();
const [mediaWrapperWidth, setMediaWrapperWidth] = useState<number | undefined>(undefined);

View File

@ -6,6 +6,7 @@ import { defineMessages, injectIntl, FormattedMessage, IntlShape, FormattedList
import { withRouter } from 'react-router-dom';
import AttachmentThumbs from 'soapbox/components/attachment-thumbs';
import StatusMedia from 'soapbox/components/status-media';
import { Stack, Text } from 'soapbox/components/ui';
import AccountContainer from 'soapbox/containers/account_container';
@ -50,6 +51,25 @@ class QuotedStatus extends ImmutablePureComponent<IQuotedStatus> {
}
}
renderMedia = () => {
const { status } = this.props;
if (!status) return null;
const { size } = status.media_attachments;
if (size > 1) {
return (
<AttachmentThumbs
media={status.media_attachments}
sensitive={status.sensitive}
/>
);
}
return (
<StatusMedia status={status} />
);
}
renderReplyMentions = () => {
const { status } = this.props;
@ -147,12 +167,7 @@ class QuotedStatus extends ImmutablePureComponent<IQuotedStatus> {
dangerouslySetInnerHTML={{ __html: status.contentHtml }}
/>
{status.media_attachments.size > 0 && (
<AttachmentThumbs
media={status.media_attachments}
sensitive={status.sensitive}
/>
)}
{this.renderMedia()}
</Stack>
);