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.
		
		
		
		
		
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
| import React, { useState } from 'react';
 | |
| 
 | |
| import { SessionButton, SessionButtonColor } from '../session/SessionButton';
 | |
| import { SessionWrapperModal } from '../session/SessionWrapperModal';
 | |
| import { SpacerLG } from '../basic/Text';
 | |
| import { getConversationController } from '../../session/conversations';
 | |
| import { adminLeaveClosedGroup } from '../../state/ducks/modalDialog';
 | |
| 
 | |
| type Props = {
 | |
|   conversationId: string;
 | |
| };
 | |
| 
 | |
| export const AdminLeaveClosedGroupDialog = (props: Props) => {
 | |
|   const convo = getConversationController().get(props.conversationId);
 | |
|   const titleText = `${window.i18n('leaveGroup')} ${convo.getName()}`;
 | |
|   const warningAsAdmin = `${window.i18n('leaveGroupConfirmationAdmin')}`;
 | |
|   const okText = window.i18n('leaveAndRemoveForEveryone');
 | |
|   const cancelText = window.i18n('cancel');
 | |
|   const [isLoading, setIsLoading] = useState(false);
 | |
| 
 | |
|   const onClickOK = async () => {
 | |
|     setIsLoading(true);
 | |
|     await getConversationController()
 | |
|       .get(props.conversationId)
 | |
|       .leaveClosedGroup();
 | |
|     setIsLoading(false);
 | |
| 
 | |
|     closeDialog();
 | |
|   };
 | |
| 
 | |
|   const closeDialog = () => {
 | |
|     window.inboxStore?.dispatch(adminLeaveClosedGroup(null));
 | |
|   };
 | |
| 
 | |
|   return (
 | |
|     <SessionWrapperModal title={titleText} onClose={closeDialog}>
 | |
|       <SpacerLG />
 | |
|       <p>{warningAsAdmin}</p>
 | |
| 
 | |
|       <div className="session-modal__button-group">
 | |
|         <SessionButton text={okText} onClick={onClickOK} buttonColor={SessionButtonColor.Danger} />
 | |
|         <SessionButton text={cancelText} onClick={closeDialog} />
 | |
|       </div>
 | |
|     </SessionWrapperModal>
 | |
|   );
 | |
| };
 |