forked from cybrespace/mastodon
Rename "publish" to "toot" in english locale, fix lightbox showing old image
before loading new one, cache notifications API, fix missing follow button on public profiles
This commit is contained in:
parent
9b53c7d353
commit
4bdb6a0eaf
|
@ -43,13 +43,15 @@ const Lightbox = React.createClass({
|
|||
render () {
|
||||
const { intl, isVisible, onOverlayClicked, onCloseClicked, children } = this.props;
|
||||
|
||||
const content = isVisible ? children : <div />;
|
||||
|
||||
return (
|
||||
<div className='lightbox' style={{...overlayStyle, display: isVisible ? 'flex' : 'none'}} onClick={onOverlayClicked}>
|
||||
<Motion defaultStyle={{ y: -200 }} style={{ y: spring(isVisible ? 0 : -200) }}>
|
||||
{({ y }) =>
|
||||
<div style={{...dialogStyle, transform: `translateY(${y}px)`}}>
|
||||
<IconButton title={intl.formatMessage({ id: 'lightbox.close', defaultMessage: 'Close' })} icon='times' onClick={onCloseClicked} size={16} style={closeStyle} />
|
||||
{children}
|
||||
{content}
|
||||
</div>
|
||||
}
|
||||
</Motion>
|
||||
|
|
|
@ -34,7 +34,7 @@ const en = {
|
|||
"tabs_bar.public": "Public",
|
||||
"tabs_bar.notifications": "Notifications",
|
||||
"compose_form.placeholder": "What is on your mind?",
|
||||
"compose_form.publish": "Publish",
|
||||
"compose_form.publish": "Toot",
|
||||
"navigation_bar.settings": "Settings",
|
||||
"navigation_bar.public_timeline": "Public timeline",
|
||||
"navigation_bar.logout": "Logout",
|
||||
|
|
|
@ -7,7 +7,8 @@ class Api::V1::NotificationsController < ApiController
|
|||
respond_to :json
|
||||
|
||||
def index
|
||||
@notifications = Notification.where(account: current_account).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
|
||||
@notifications = Notification.where(account: current_account).paginate_by_max_id(20, params[:max_id], params[:since_id])
|
||||
@notifications = cache(@notifications)
|
||||
statuses = @notifications.select { |n| !n.target_status.nil? }.map(&:target_status)
|
||||
|
||||
set_maps(statuses)
|
||||
|
@ -19,4 +20,25 @@ class Api::V1::NotificationsController < ApiController
|
|||
|
||||
set_pagination_headers(next_path, prev_path)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def cache(raw)
|
||||
uncached_ids = []
|
||||
cached_keys_with_value = Rails.cache.read_multi(*raw.map(&:cache_key))
|
||||
|
||||
raw.each do |notification|
|
||||
uncached_ids << notification.id unless cached_keys_with_value.key?(notification.cache_key)
|
||||
end
|
||||
|
||||
unless uncached_ids.empty?
|
||||
uncached = Notification.where(id: uncached_ids).with_includes.map { |n| [n.id, n] }.to_h
|
||||
|
||||
uncached.values.each do |notification|
|
||||
Rails.cache.write(notification.cache_key, notification)
|
||||
end
|
||||
end
|
||||
|
||||
raw.map { |notification| cached_keys_with_value[notification.cache_key] || uncached[notification.id] }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -59,11 +59,11 @@ class ApiController < ApplicationController
|
|||
end
|
||||
|
||||
def current_resource_owner
|
||||
@user ||= User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
|
||||
@current_user ||= User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
|
||||
end
|
||||
|
||||
def current_user
|
||||
@user ||= super || current_resource_owner
|
||||
super || current_resource_owner
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
nil
|
||||
end
|
||||
|
|
|
@ -51,6 +51,6 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def current_account
|
||||
@account ||= current_user.try(:account)
|
||||
@current_account ||= current_user.try(:account)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue