Add option to remove account from followers in web UI (#34488)
This commit is contained in:
		
					parent
					
						
							
								64d94f9e57
							
						
					
				
			
			
				commit
				
					
						bed614d44e
					
				
			
		
					 5 changed files with 74 additions and 1 deletions
				
			
		|  | @ -18,6 +18,7 @@ import { | |||
|   unmuteAccount, | ||||
|   pinAccount, | ||||
|   unpinAccount, | ||||
|   removeAccountFromFollowers, | ||||
| } from 'mastodon/actions/accounts'; | ||||
| import { initBlockModal } from 'mastodon/actions/blocks'; | ||||
| import { mentionCompose, directCompose } from 'mastodon/actions/compose'; | ||||
|  | @ -152,6 +153,23 @@ const messages = defineMessages({ | |||
|     id: 'account.open_original_page', | ||||
|     defaultMessage: 'Open original page', | ||||
|   }, | ||||
|   removeFromFollowers: { | ||||
|     id: 'account.remove_from_followers', | ||||
|     defaultMessage: 'Remove {name} from followers', | ||||
|   }, | ||||
|   confirmRemoveFromFollowersTitle: { | ||||
|     id: 'confirmations.remove_from_followers.title', | ||||
|     defaultMessage: 'Remove follower?', | ||||
|   }, | ||||
|   confirmRemoveFromFollowersMessage: { | ||||
|     id: 'confirmations.remove_from_followers.message', | ||||
|     defaultMessage: | ||||
|       '{name} will stop following you. Are you sure you want to proceed?', | ||||
|   }, | ||||
|   confirmRemoveFromFollowersButton: { | ||||
|     id: 'confirmations.remove_from_followers.confirm', | ||||
|     defaultMessage: 'Remove follower', | ||||
|   }, | ||||
| }); | ||||
| 
 | ||||
| const titleFromAccount = (account: Account) => { | ||||
|  | @ -494,6 +512,39 @@ export const AccountHeader: React.FC<{ | |||
|         arr.push(null); | ||||
|       } | ||||
| 
 | ||||
|       if (relationship?.followed_by) { | ||||
|         const handleRemoveFromFollowers = () => { | ||||
|           dispatch( | ||||
|             openModal({ | ||||
|               modalType: 'CONFIRM', | ||||
|               modalProps: { | ||||
|                 title: intl.formatMessage( | ||||
|                   messages.confirmRemoveFromFollowersTitle, | ||||
|                 ), | ||||
|                 message: intl.formatMessage( | ||||
|                   messages.confirmRemoveFromFollowersMessage, | ||||
|                   { name: <strong>{account.acct}</strong> }, | ||||
|                 ), | ||||
|                 confirm: intl.formatMessage( | ||||
|                   messages.confirmRemoveFromFollowersButton, | ||||
|                 ), | ||||
|                 onConfirm: () => { | ||||
|                   void dispatch(removeAccountFromFollowers({ accountId })); | ||||
|                 }, | ||||
|               }, | ||||
|             }), | ||||
|           ); | ||||
|         }; | ||||
| 
 | ||||
|         arr.push({ | ||||
|           text: intl.formatMessage(messages.removeFromFollowers, { | ||||
|             name: account.username, | ||||
|           }), | ||||
|           action: handleRemoveFromFollowers, | ||||
|           dangerous: true, | ||||
|         }); | ||||
|       } | ||||
| 
 | ||||
|       if (relationship?.muting) { | ||||
|         arr.push({ | ||||
|           text: intl.formatMessage(messages.unmute, { | ||||
|  | @ -592,6 +643,8 @@ export const AccountHeader: React.FC<{ | |||
| 
 | ||||
|     return arr; | ||||
|   }, [ | ||||
|     dispatch, | ||||
|     accountId, | ||||
|     account, | ||||
|     relationship, | ||||
|     permissions, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue