commit: 4b357ecf98f373f5ed31c71ecc1a79d23572cd00
parent: d427df4a8ae16809b068aca8c65006de2ccbd27e
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed, 2 Nov 2016 22:29:19 +0100
Fix subtle bugs, new icon button
Diffstat:
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/app/assets/javascripts/components/components/icon_button.jsx b/app/assets/javascripts/components/components/icon_button.jsx
@@ -28,15 +28,19 @@ const IconButton = React.createClass({
render () {
const style = {
display: 'inline-block',
+ border: 'none',
+ padding: '0',
+ background: 'transparent',
fontSize: `${this.props.size}px`,
- width: `${this.props.size}px`,
+ width: `${this.props.size * 1.28571429}px`,
height: `${this.props.size}px`,
- lineHeight: `${this.props.size}px`
+ lineHeight: `${this.props.size}px`,
+ cursor: 'pointer'
};
return (
<button aria-label={this.props.title} title={this.props.title} className={`icon-button ${this.props.active ? 'active' : ''}`} onClick={this.handleClick} style={style}>
- <i className={`fa fa-fw fa-${this.props.icon}`} aria-hidden='true'></i>
+ <i className={`fa fa-fw fa-${this.props.icon}`} aria-hidden='true' />
</button>
);
}
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
@@ -61,7 +61,7 @@ class FeedManager
# Filter status out of the home feed if it is a reply to someone the user doesn't follow
def filter_from_home?(status, receiver)
- replied_to_user = status.reply? ? status.thread.account : nil
+ replied_to_user = status.reply? ? status.thread.try(:account) : nil
(status.reply? && !(receiver.id == replied_to_user.id || replied_to_user.id == status.account_id || receiver.following?(replied_to_user))) || (status.reblog? && receiver.blocking?(status.reblog.account))
end
diff --git a/app/services/precompute_feed_service.rb b/app/services/precompute_feed_service.rb
@@ -6,7 +6,7 @@ class PrecomputeFeedService < BaseService
def call(type, account, limit)
instant_return = []
- Status.send("as_#{type}_timeline", account).order('created_at desc').limit(FeedManager::MAX_ITEMS).find_each do |status|
+ Status.send("as_#{type}_timeline", account).order('id desc').limit(FeedManager::MAX_ITEMS).find_each do |status|
next if FeedManager.instance.filter?(type, status, account)
redis.zadd(FeedManager.instance.key(type, account.id), status.id, status.id)
instant_return << status unless instant_return.size > limit