session-desktop/ts/components/dialog/AdminLeaveClosedGroupDialog...

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>
);
};