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