You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
| 
											4 years ago
										 | import React from 'react'; | ||
|  | import { useSelector } from 'react-redux'; | ||
| 
											4 years ago
										 | import { unblockConvoById } from '../../interactions/conversationInteractions'; | ||
|  | import { getConversationController } from '../../session/conversations'; | ||
|  | import { getBlockedPubkeys } from '../../state/selectors/conversations'; | ||
|  | import { SessionButtonColor } from '../basic/SessionButton'; | ||
|  | 
 | ||
| 
											4 years ago
										 | import { SessionSettingButtonItem, SessionSettingsItemWrapper } from './SessionSettingListItem'; | ||
|  | 
 | ||
|  | export const BlockedUserSettings = () => { | ||
|  |   const blockedNumbers = useSelector(getBlockedPubkeys); | ||
|  | 
 | ||
|  |   if (!blockedNumbers || blockedNumbers.length === 0) { | ||
|  |     return ( | ||
|  |       <SessionSettingsItemWrapper | ||
|  |         inline={true} | ||
|  |         description={window.i18n('noBlockedContacts')} | ||
|  |         title={''} | ||
|  |       > | ||
|  |         {' '} | ||
|  |       </SessionSettingsItemWrapper> | ||
|  |     ); | ||
|  |   } | ||
|  |   const blockedEntries = blockedNumbers.map(blockedEntry => { | ||
|  |     const currentModel = getConversationController().get(blockedEntry); | ||
|  |     let title: string; | ||
|  | 
 | ||
|  |     if (currentModel) { | ||
|  |       title = currentModel.getProfileName() || currentModel.getName() || window.i18n('anonymous'); | ||
|  |     } else { | ||
|  |       title = window.i18n('anonymous'); | ||
|  |     } | ||
|  |     return ( | ||
|  |       <SessionSettingButtonItem | ||
|  |         key={blockedEntry} | ||
|  |         buttonColor={SessionButtonColor.Danger} | ||
|  |         buttonText={window.i18n('unblockUser')} | ||
|  |         title={title} | ||
|  |         onClick={async () => { | ||
|  |           await unblockConvoById(blockedEntry); | ||
|  |         }} | ||
|  |       /> | ||
|  |     ); | ||
|  |   }); | ||
|  | 
 | ||
|  |   return <>{blockedEntries}</>; | ||
|  | }; |