diff --git a/app/javascript/mastodon/actions/statuses.js b/app/javascript/mastodon/actions/statuses.js index 54b2e02b2a0348..d74540863d017b 100644 --- a/app/javascript/mastodon/actions/statuses.js +++ b/app/javascript/mastodon/actions/statuses.js @@ -1,7 +1,9 @@ import { browserHistory } from 'mastodon/components/router'; +import { me } from 'mastodon/initial_state'; import api from '../api'; +import { fetchRelationships } from './accounts'; import { ensureComposeIsVisible, setComposeToStatus } from './compose'; import { importFetchedStatus, importFetchedStatuses, importFetchedAccount } from './importer'; import { deleteFromTimelines } from './timelines'; @@ -65,6 +67,12 @@ export function fetchStatus(id, forceFetch = false) { api().get(`/api/v1/statuses/${id}`).then(response => { dispatch(importFetchedStatus(response.data)); + + const accountId = response.data.account.id; + if (me && !getState().getIn(['relationships', accountId])) { + dispatch(fetchRelationships([accountId])); + } + dispatch(fetchStatusSuccess(skipLoading)); }).catch(error => { dispatch(fetchStatusFail(id, error, skipLoading)); diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index 1627661ac1cda5..471720c54bab35 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -478,8 +478,8 @@ class StatusActionBar extends ImmutablePureComponent { const emojiReactionAvailableServer = !isHideItem('emoji_reaction_unavailable_server') || account.getIn(['server_features', 'emoji_reaction']); const emojiReactionPolicy = account.getIn(['other_settings', 'emoji_reaction_policy']) || 'allow'; - const following = emojiReactionPolicy !== 'following_only' || (relationship && relationship.get('following')); - const followed = emojiReactionPolicy !== 'followers_only' || (relationship && relationship.get('followed_by')); + const following = emojiReactionPolicy !== 'followers_only' || (relationship && relationship.get('following')); + const followed = emojiReactionPolicy !== 'following_only' || (relationship && relationship.get('followed_by')); const mutual = emojiReactionPolicy !== 'mutuals_only' || (relationship && relationship.get('following') && relationship.get('followed_by')); const outside = emojiReactionPolicy !== 'outside_only' || (relationship && (relationship.get('following') || relationship.get('followed_by'))); const denyFromAll = emojiReactionPolicy !== 'block' && emojiReactionPolicy !== 'block'; diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index c555a8c8db695f..17d15edbe0bce7 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -394,8 +394,8 @@ class ActionBar extends PureComponent { const emojiReactionAvailableServer = !isHideItem('emoji_reaction_unavailable_server') || account.getIn(['server_features', 'emoji_reaction']); const emojiReactionPolicy = account.getIn(['other_settings', 'emoji_reaction_policy']) || 'allow'; - const following = emojiReactionPolicy !== 'following_only' || (relationship && relationship.get('following')); - const followed = emojiReactionPolicy !== 'followers_only' || (relationship && relationship.get('followed_by')); + const following = emojiReactionPolicy !== 'followers_only' || (relationship && relationship.get('following')); + const followed = emojiReactionPolicy !== 'following_only' || (relationship && relationship.get('followed_by')); const mutual = emojiReactionPolicy !== 'mutuals_only' || (relationship && relationship.get('following') && relationship.get('followed_by')); const outside = emojiReactionPolicy !== 'outside_only' || (relationship && (relationship.get('following') || relationship.get('followed_by'))); const denyFromAll = emojiReactionPolicy !== 'block' && emojiReactionPolicy !== 'block';