[Glitch] Display AttachmentList in notifications

Port 77406d3a09 to glitch-soc
This commit is contained in:
Thibaut Girka 2018-03-27 15:50:05 +02:00
parent 3bc5452449
commit 88790b91de
2 changed files with 20 additions and 14 deletions

View File

@ -19,11 +19,15 @@ export default class AttachmentList extends ImmutablePureComponent {
return (
<div className='attachment-list compact'>
<ul className='attachment-list__list'>
{media.map(attachment => (
{media.map(attachment => {
const displayUrl = attachment.get('remote_url') || attachment.get('url');
return (
<li key={attachment.get('id')}>
<a href={attachment.get('remote_url')} target='_blank' rel='noopener'><i className='fa fa-link' /> {filename(attachment.get('remote_url'))}</a>
<a href={displayUrl} target='_blank' rel='noopener'><i className='fa fa-link' /> {filename(displayUrl)}</a>
</li>
))}
);
})}
</ul>
</div>
);
@ -36,11 +40,13 @@ export default class AttachmentList extends ImmutablePureComponent {
</div>
<ul className='attachment-list__list'>
{media.map(attachment =>
(<li key={attachment.get('id')}>
<a href={attachment.get('remote_url')} target='_blank' rel='noopener'>{filename(attachment.get('remote_url'))}</a>
const displayUrl = attachment.get('remote_url') || attachment.get('url');
{media.map(attachment => {
return (<li key={attachment.get('id')}>
<a href={displayUrl} target='_blank' rel='noopener'>{filename(displayUrl)}</a>
</li>)
)}
})}
</ul>
</div>
);

View File

@ -302,16 +302,16 @@ export default class Status extends ImmutablePureComponent {
background = status.getIn(['account', 'header']);
}
// This handles our media attachments. Note that we don't show media on
// muted (notification) statuses. If the media type is unknown, then we
// simply ignore it.
// This handles our media attachments.
// If a media file is of unknwon type or if the status is muted
// (notification), we show a list of links instead of embedded media.
// After we have generated our appropriate media element and stored it in
// `media`, we snatch the thumbnail to use as our `background` if media
// backgrounds for collapsed statuses are enabled.
attachments = status.get('media_attachments');
if (attachments.size > 0 && !muted) {
if (attachments.some(item => item.get('type') === 'unknown')) { // Media type is 'unknown'
if (attachments.size > 0) {
if (muted || attachments.some(item => item.get('type') === 'unknown')) {
media = (
<AttachmentList
compact