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; |   suspended?: boolean; | ||||||
|   limited?: boolean; |   limited?: boolean; | ||||||
|   memorial?: boolean; |   memorial?: boolean; | ||||||
|  |   hide_collections: boolean; | ||||||
| } | } | ||||||
|  | |||||||
| @ -45,6 +45,7 @@ const mapStateToProps = (state, { params: { acct, id } }) => { | |||||||
|     hasMore: !!state.getIn(['user_lists', 'followers', accountId, 'next']), |     hasMore: !!state.getIn(['user_lists', 'followers', accountId, 'next']), | ||||||
|     isLoading: state.getIn(['user_lists', 'followers', accountId, 'isLoading'], true), |     isLoading: state.getIn(['user_lists', 'followers', accountId, 'isLoading'], true), | ||||||
|     suspended: state.getIn(['accounts', accountId, 'suspended'], false), |     suspended: state.getIn(['accounts', accountId, 'suspended'], false), | ||||||
|  |     hideCollections: state.getIn(['accounts', accountId, 'hide_collections'], false), | ||||||
|     hidden: getAccountHidden(state, accountId), |     hidden: getAccountHidden(state, accountId), | ||||||
|     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), |     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), | ||||||
|   }; |   }; | ||||||
| @ -111,7 +112,7 @@ class Followers extends ImmutablePureComponent { | |||||||
|   }, 300, { leading: true }); |   }, 300, { leading: true }); | ||||||
| 
 | 
 | ||||||
|   render () { |   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) { |     if (!isAccount) { | ||||||
|       return ( |       return ( | ||||||
| @ -137,6 +138,8 @@ class Followers extends ImmutablePureComponent { | |||||||
|       emptyMessage = <LimitedAccountHint accountId={accountId} />; |       emptyMessage = <LimitedAccountHint accountId={accountId} />; | ||||||
|     } else if (blockedBy) { |     } else if (blockedBy) { | ||||||
|       emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />; |       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()) { |     } else if (remote && accountIds.isEmpty()) { | ||||||
|       emptyMessage = <RemoteHint url={remoteUrl} />; |       emptyMessage = <RemoteHint url={remoteUrl} />; | ||||||
|     } else { |     } else { | ||||||
|  | |||||||
| @ -45,6 +45,7 @@ const mapStateToProps = (state, { params: { acct, id } }) => { | |||||||
|     hasMore: !!state.getIn(['user_lists', 'following', accountId, 'next']), |     hasMore: !!state.getIn(['user_lists', 'following', accountId, 'next']), | ||||||
|     isLoading: state.getIn(['user_lists', 'following', accountId, 'isLoading'], true), |     isLoading: state.getIn(['user_lists', 'following', accountId, 'isLoading'], true), | ||||||
|     suspended: state.getIn(['accounts', accountId, 'suspended'], false), |     suspended: state.getIn(['accounts', accountId, 'suspended'], false), | ||||||
|  |     hideCollections: state.getIn(['accounts', accountId, 'hide_collections'], false), | ||||||
|     hidden: getAccountHidden(state, accountId), |     hidden: getAccountHidden(state, accountId), | ||||||
|     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), |     blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), | ||||||
|   }; |   }; | ||||||
| @ -111,7 +112,7 @@ class Following extends ImmutablePureComponent { | |||||||
|   }, 300, { leading: true }); |   }, 300, { leading: true }); | ||||||
| 
 | 
 | ||||||
|   render () { |   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) { |     if (!isAccount) { | ||||||
|       return ( |       return ( | ||||||
| @ -137,6 +138,8 @@ class Following extends ImmutablePureComponent { | |||||||
|       emptyMessage = <LimitedAccountHint accountId={accountId} />; |       emptyMessage = <LimitedAccountHint accountId={accountId} />; | ||||||
|     } else if (blockedBy) { |     } else if (blockedBy) { | ||||||
|       emptyMessage = <FormattedMessage id='empty_column.account_unavailable' defaultMessage='Profile unavailable' />; |       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()) { |     } else if (remote && accountIds.isEmpty()) { | ||||||
|       emptyMessage = <RemoteHint url={remoteUrl} />; |       emptyMessage = <RemoteHint url={remoteUrl} />; | ||||||
|     } else { |     } else { | ||||||
|  | |||||||
| @ -222,6 +222,7 @@ | |||||||
|   "emoji_button.search_results": "Search results", |   "emoji_button.search_results": "Search results", | ||||||
|   "emoji_button.symbols": "Symbols", |   "emoji_button.symbols": "Symbols", | ||||||
|   "emoji_button.travel": "Travel & Places", |   "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_suspended": "Account suspended", | ||||||
|   "empty_column.account_timeline": "No posts here!", |   "empty_column.account_timeline": "No posts here!", | ||||||
|   "empty_column.account_unavailable": "Profile unavailable", |   "empty_column.account_unavailable": "Profile unavailable", | ||||||
|  | |||||||
| @ -93,6 +93,7 @@ export const accountDefaultValues: AccountShape = { | |||||||
|   memorial: false, |   memorial: false, | ||||||
|   limited: false, |   limited: false, | ||||||
|   moved: null, |   moved: null, | ||||||
|  |   hide_collections: false, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const AccountFactory = ImmutableRecord<AccountShape>(accountDefaultValues); | 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, |   attributes :id, :username, :acct, :display_name, :locked, :bot, :discoverable, :group, :created_at, | ||||||
|              :note, :url, :uri, :avatar, :avatar_static, :header, :header_static, |              :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? |   has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested? | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user