renderLink () {
const { card, maxDescription } = this.props;
+ const { width } = this.state;
+ const horizontal = card.get('width') > card.get('height') && (card.get('width') + 100 >= width);
let image = '';
let provider = card.get('provider_name');
provider = decodeIDNA(getHostname(card.get('url')));
}
- const className = classnames('status-card', {
- 'horizontal': card.get('width') > card.get('height'),
- });
+ const className = classnames('status-card', { horizontal });
return (
- <a href={card.get('url')} className={className} target='_blank' rel='noopener'>
+ <a href={card.get('url')} className={className} target='_blank' rel='noopener' ref={this.setRef}>
{image}
<div className='status-card__content'>
<strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>
- <p className='status-card__description'>{(card.get('description') || '').substring(0, maxDescription)}</p>
+ {!horizontal && <p className='status-card__description'>{(card.get('description') || '').substring(0, maxDescription)}</p>}
<span className='status-card__host'>{provider}</span>
</div>
</a>
.status-card__image-image {
border-radius: 4px 4px 0 0;
}
+
+ .status-card__title {
+ white-space: inherit;
+ }
}
.status-card__image-image {
border-radius: 4px 0 0 4px;
display: block;
- height: auto;
margin: 0;
width: 100%;
+ height: 100%;
+ object-fit: cover;
}
.load-more {
has_and_belongs_to_many :statuses
- has_attached_file :image, styles: { original: '280x280>' }, convert_options: { all: '-quality 80 -strip' }
+ has_attached_file :image, styles: { original: '400x400>' }, convert_options: { all: '-quality 80 -strip' }
include Attachmentable
include Remotable