diff --git a/app/assets/javascripts/components/actions/notifications.jsx b/app/assets/javascripts/components/actions/notifications.jsx index a03f88af1..6a8b1b05b 100644 --- a/app/assets/javascripts/components/actions/notifications.jsx +++ b/app/assets/javascripts/components/actions/notifications.jsx @@ -76,7 +76,7 @@ export function refreshNotificationsSuccess(notifications, next) { type: NOTIFICATIONS_REFRESH_SUCCESS, notifications, accounts: notifications.map(item => item.account), - statuses: notifications.map(item => item.status), + statuses: notifications.map(item => item.status).filter(status => !!status), next }; }; @@ -120,7 +120,7 @@ export function expandNotificationsSuccess(notifications, next) { type: NOTIFICATIONS_EXPAND_SUCCESS, notifications, accounts: notifications.map(item => item.account), - statuses: notifications.map(item => item.status), + statuses: notifications.map(item => item.status).filter(status => !!status), next }; }; diff --git a/app/assets/javascripts/components/reducers/accounts.jsx b/app/assets/javascripts/components/reducers/accounts.jsx index 52be648b3..982e63073 100644 --- a/app/assets/javascripts/components/reducers/accounts.jsx +++ b/app/assets/javascripts/components/reducers/accounts.jsx @@ -78,9 +78,10 @@ export default function accounts(state = initialState, action) { case FAVOURITES_FETCH_SUCCESS: case COMPOSE_SUGGESTIONS_READY: case SEARCH_SUGGESTIONS_READY: + return normalizeAccounts(state, action.accounts); case NOTIFICATIONS_REFRESH_SUCCESS: case NOTIFICATIONS_EXPAND_SUCCESS: - return normalizeAccounts(state, action.accounts); + return normalizeAccountsFromStatuses(normalizeAccounts(state, action.accounts), action.statuses); case TIMELINE_REFRESH_SUCCESS: case TIMELINE_EXPAND_SUCCESS: case ACCOUNT_TIMELINE_FETCH_SUCCESS: diff --git a/app/models/favourite.rb b/app/models/favourite.rb index 541ca0831..2fc3d18cd 100644 --- a/app/models/favourite.rb +++ b/app/models/favourite.rb @@ -28,4 +28,8 @@ class Favourite < ApplicationRecord def target thread end + + before_validation do + self.status = status.reblog if status.reblog? + end end diff --git a/app/models/status.rb b/app/models/status.rb index 603f3b7a2..1e6298a0e 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -168,6 +168,7 @@ class Status < ApplicationRecord before_validation do text.strip! + self.reblog = reblog.reblog if reblog? && reblog.reblog? self.in_reply_to_account_id = thread.account_id if reply? self.visibility = :public if visibility.nil? end