Fix Web UI not displaying appropriate explanation when a user hides their follows/followers (#27791)
This commit is contained in:
		
							parent
							
								
									63c9102f8a
								
							
						
					
					
						commit
						9b06c0f24a
					
				| @ -42,4 +42,5 @@ export interface ApiAccountJSON { | ||||
|   suspended?: boolean; | ||||
|   limited?: boolean; | ||||
|   memorial?: boolean; | ||||
|   hide_collections: boolean; | ||||
| } | ||||
|  | ||||
| @ -45,6 +45,7 @@ const mapStateToProps = (state, { params: { acct, id } }) => { | ||||
|     hasMore: !!state.getIn(['user_lists', 'followers', accountId, 'next']), | ||||
|     isLoading: state.getIn(['user_lists', 'followers', accountId, 'isLoading'], true), | ||||
|     suspended: state.getIn(['accounts', accountId, 'suspended'], false), | ||||
|     hideCollections: state.getIn(['accounts', accountId, 'hide_collections'], false), | ||||
|     hidden: getAccountHidden(state, accountId), | ||||
|     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), | ||||
|   }; | ||||
| @ -111,7 +112,7 @@ class Followers extends ImmutablePureComponent { | ||||
|   }, 300, { leading: true }); | ||||
| 
 | ||||
|   render () { | ||||
|     const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props; | ||||
|     const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl, hideCollections } = this.props; | ||||
| 
 | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
| @ -137,6 +138,8 @@ class Followers extends ImmutablePureComponent { | ||||
|       emptyMessage = <LimitedAccountHint accountId={accountId} />; | ||||
|     } else if (blockedBy) { | ||||
|       emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />; | ||||
|     } else if (hideCollections && accountIds.isEmpty()) { | ||||
|       emptyMessage = <FormattedMessage id='empty_column.account_hides_collections' defaultMessage='This user has chosen to not make this information available' />; | ||||
|     } else if (remote && accountIds.isEmpty()) { | ||||
|       emptyMessage = <RemoteHint url={remoteUrl} />; | ||||
|     } else { | ||||
|  | ||||
| @ -45,6 +45,7 @@ const mapStateToProps = (state, { params: { acct, id } }) => { | ||||
|     hasMore: !!state.getIn(['user_lists', 'following', accountId, 'next']), | ||||
|     isLoading: state.getIn(['user_lists', 'following', accountId, 'isLoading'], true), | ||||
|     suspended: state.getIn(['accounts', accountId, 'suspended'], false), | ||||
|     hideCollections: state.getIn(['accounts', accountId, 'hide_collections'], false), | ||||
|     hidden: getAccountHidden(state, accountId), | ||||
|     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), | ||||
|   }; | ||||
| @ -111,7 +112,7 @@ class Following extends ImmutablePureComponent { | ||||
|   }, 300, { leading: true }); | ||||
| 
 | ||||
|   render () { | ||||
|     const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl } = this.props; | ||||
|     const { accountId, accountIds, hasMore, blockedBy, isAccount, multiColumn, isLoading, suspended, hidden, remote, remoteUrl, hideCollections } = this.props; | ||||
| 
 | ||||
|     if (!isAccount) { | ||||
|       return ( | ||||
| @ -137,6 +138,8 @@ class Following extends ImmutablePureComponent { | ||||
|       emptyMessage = <LimitedAccountHint accountId={accountId} />; | ||||
|     } else if (blockedBy) { | ||||
|       emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />; | ||||
|     } else if (hideCollections && accountIds.isEmpty()) { | ||||
|       emptyMessage = <FormattedMessage id='empty_column.account_hides_collections' defaultMessage='This user has chosen to not make this information available' />; | ||||
|     } else if (remote && accountIds.isEmpty()) { | ||||
|       emptyMessage = <RemoteHint url={remoteUrl} />; | ||||
|     } else { | ||||
|  | ||||
| @ -222,6 +222,7 @@ | ||||
|   "emoji_button.search_results": "Search results", | ||||
|   "emoji_button.symbols": "Symbols", | ||||
|   "emoji_button.travel": "Travel & Places", | ||||
|   "empty_column.account_hides_collections": "This user has chosen to not make this information available", | ||||
|   "empty_column.account_suspended": "Account suspended", | ||||
|   "empty_column.account_timeline": "No posts here!", | ||||
|   "empty_column.account_unavailable": "Profile unavailable", | ||||
|  | ||||
| @ -93,6 +93,7 @@ export const accountDefaultValues: AccountShape = { | ||||
|   memorial: false, | ||||
|   limited: false, | ||||
|   moved: null, | ||||
|   hide_collections: false, | ||||
| }; | ||||
| 
 | ||||
| const AccountFactory = ImmutableRecord<AccountShape>(accountDefaultValues); | ||||
|  | ||||
| @ -8,7 +8,7 @@ class REST::AccountSerializer < ActiveModel::Serializer | ||||
| 
 | ||||
|   attributes :id, :username, :acct, :display_name, :locked, :bot, :discoverable, :group, :created_at, | ||||
|              :note, :url, :uri, :avatar, :avatar_static, :header, :header_static, | ||||
|              :followers_count, :following_count, :statuses_count, :last_status_at | ||||
|              :followers_count, :following_count, :statuses_count, :last_status_at, :hide_collections | ||||
| 
 | ||||
|   has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested? | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user