fix: remove AdminLeaveClosedGroupDialog

added new leave group dialog strings
pull/2789/head
William Grant 2 years ago
parent de614109d0
commit 9cd95bbcf1

@ -102,7 +102,7 @@
"deleteMessages": "Delete Messages",
"deleteMessagesConfirmation": "Permanently delete the messages in this conversation?",
"deleteConversation": "Delete Conversation",
"deleteConversationConfirmation": "Are you sure you want to delete your conversation with $name$?",
"deleteConversationConfirmation": "Are you sure you want to delete your conversation with <b>$name$</b>?",
"deleteConversationFailed": "Failed to leave the Conversation!",
"leaving": "Leaving...",
"deleted": "$count$ deleted",
@ -257,10 +257,14 @@
"banUserAndDeleteAll": "Ban and Delete All",
"userBanned": "Banned successfully",
"userBanFailed": "Ban failed!",
"leave": "Leave",
"leaveGroup": "Leave Group",
"leaveAndRemoveForEveryone": "Leave Group and Remove for Everyone",
"leaveGroupConfirmation": "Are you sure you want to leave $name$?",
"leaveGroupConfirmation": "Are you sure you want to leave <b>$name$</b>?",
"leaveGroupConfirmationAdmin": "As you are the admin of this group, if you leave it it will be removed for every current members. Are you sure you want to leave this group?",
"leaveGroupConrirmationOnlyAdminLegacy": "Are you sure you want to leave <b>$name$</b>? This will deactivate the group for all members.",
"leaveGroupConfirmationOnlyAdmin": "You are the only admin in <b>$name$</b>",
"leaveGroupConfirmationOnlyAdminWarning": "Group settings and members cannot be changed without an admin",
"leaveGroupFailed": "Failed to leave Group!",
"leaveCommunity": "Leave Community",
"leaveCommunityFailed": "Failed to leave Community!",
@ -326,6 +330,7 @@
"editProfileModalTitle": "Profile",
"groupNamePlaceholder": "Group Name",
"inviteContacts": "Invite Contacts",
"addModerator": "Add Admin",
"addModerators": "Add Admins",
"removeModerators": "Remove Admins",
"addAsModerator": "Add as Admin",

@ -1,61 +0,0 @@
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
import styled from 'styled-components';
import { getConversationController } from '../../session/conversations';
import { adminLeaveClosedGroup } from '../../state/ducks/modalDialog';
import { SessionWrapperModal } from '../SessionWrapperModal';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
import { SpacerLG } from '../basic/Text';
import { SessionSpinner } from '../basic/SessionSpinner';
const StyledWarning = styled.p`
max-width: 500px;
line-height: 1.3333;
`;
export const AdminLeaveClosedGroupDialog = (props: { conversationId: string }) => {
const dispatch = useDispatch();
const convo = getConversationController().get(props.conversationId);
const [loading, setLoading] = useState(false);
const titleText = `${window.i18n('leaveGroup')} ${convo?.getRealSessionUsername() || ''}`;
const closeDialog = () => {
dispatch(adminLeaveClosedGroup(null));
};
const onClickOK = async () => {
if (loading) {
return;
}
setLoading(true);
// we know want to delete a closed group right after we've left it, so we can call the deleteContact which takes care of it all
await getConversationController().deleteClosedGroup(props.conversationId, {
fromSyncMessage: false,
sendLeaveMessage: true,
});
setLoading(false);
closeDialog();
};
return (
<SessionWrapperModal title={titleText} onClose={closeDialog}>
<SpacerLG />
<StyledWarning>{window.i18n('leaveGroupConfirmationAdmin')}</StyledWarning>
<SessionSpinner loading={loading} />
<div className="session-modal__button-group">
<SessionButton
text={window.i18n('leaveAndRemoveForEveryone')}
buttonColor={SessionButtonColor.Danger}
buttonType={SessionButtonType.Simple}
onClick={onClickOK}
/>
<SessionButton
text={window.i18n('cancel')}
buttonType={SessionButtonType.Simple}
onClick={closeDialog}
/>
</div>
</SessionWrapperModal>
);
};

@ -2,7 +2,6 @@ import React from 'react';
import { useSelector } from 'react-redux';
import {
getAddModeratorsModal,
getAdminLeaveClosedGroupDialog,
getBanOrUnbanUserModalState,
getChangeNickNameDialog,
getConfirmModal,
@ -19,7 +18,6 @@ import {
getUpdateGroupNameModal,
getUserDetailsModal,
} from '../../state/selectors/modal';
import { AdminLeaveClosedGroupDialog } from './AdminLeaveClosedGroupDialog';
import { InviteContactsDialog } from './InviteContactsDialog';
import { DeleteAccountModal } from './DeleteAccountModal';
import { EditProfileDialog } from './EditProfileDialog';
@ -49,7 +47,6 @@ export const ModalContainer = () => {
const editProfileModalState = useSelector(getEditProfileDialog);
const onionPathModalState = useSelector(getOnionPathDialog);
const recoveryPhraseModalState = useSelector(getRecoveryPhraseDialog);
const adminLeaveClosedGroupModalState = useSelector(getAdminLeaveClosedGroupDialog);
const sessionPasswordModalState = useSelector(getSessionPasswordDialog);
const deleteAccountModalState = useSelector(getDeleteAccountModalState);
const banOrUnbanUserModalState = useSelector(getBanOrUnbanUserModalState);
@ -71,9 +68,6 @@ export const ModalContainer = () => {
{editProfileModalState && <EditProfileDialog {...editProfileModalState} />}
{onionPathModalState && <OnionPathModal {...onionPathModalState} />}
{recoveryPhraseModalState && <SessionSeedModal {...recoveryPhraseModalState} />}
{adminLeaveClosedGroupModalState && (
<AdminLeaveClosedGroupDialog {...adminLeaveClosedGroupModalState} />
)}
{sessionPasswordModalState && <SessionPasswordDialog {...sessionPasswordModalState} />}
{deleteAccountModalState && <DeleteAccountModal {...deleteAccountModalState} />}
{confirmModalState && <SessionConfirm {...confirmModalState} />}

@ -15,7 +15,6 @@ export type RemoveModeratorsModalState = InviteContactModalState;
export type UpdateGroupMembersModalState = InviteContactModalState;
export type UpdateGroupNameModalState = InviteContactModalState;
export type ChangeNickNameModalState = InviteContactModalState;
export type AdminLeaveClosedGroupModalState = InviteContactModalState;
export type EditProfileModalState = {} | null;
export type OnionPathModalState = EditProfileModalState;
export type RecoveryPhraseModalState = EditProfileModalState;
@ -47,7 +46,6 @@ export type ModalState = {
editProfileModal: EditProfileModalState;
onionPathModal: OnionPathModalState;
recoveryPhraseModal: RecoveryPhraseModalState;
adminLeaveClosedGroup: AdminLeaveClosedGroupModalState;
sessionPasswordModal: SessionPasswordModalState;
deleteAccountModal: DeleteAccountModalState;
reactListModalState: ReactModalsState;
@ -67,7 +65,6 @@ export const initialModalState: ModalState = {
editProfileModal: null,
onionPathModal: null,
recoveryPhraseModal: null,
adminLeaveClosedGroup: null,
sessionPasswordModal: null,
deleteAccountModal: null,
reactListModalState: null,
@ -114,9 +111,6 @@ const ModalSlice = createSlice({
recoveryPhraseModal(state, action: PayloadAction<RecoveryPhraseModalState | null>) {
return { ...state, recoveryPhraseModal: action.payload };
},
adminLeaveClosedGroup(state, action: PayloadAction<AdminLeaveClosedGroupModalState | null>) {
return { ...state, adminLeaveClosedGroup: action.payload };
},
sessionPassword(state, action: PayloadAction<SessionPasswordModalState>) {
return { ...state, sessionPasswordModal: action.payload };
},
@ -145,7 +139,6 @@ export const {
editProfileModal,
onionPathModal,
recoveryPhraseModal,
adminLeaveClosedGroup,
sessionPassword,
updateDeleteAccountModal,
updateBanOrUnbanUserModal,

@ -3,7 +3,6 @@ import { createSelector } from '@reduxjs/toolkit';
import { StateType } from '../reducer';
import {
AddModeratorsModalState,
AdminLeaveClosedGroupModalState,
BanOrUnbanUserModalState,
ChangeNickNameModalState,
ConfirmModalState,
@ -85,11 +84,6 @@ export const getRecoveryPhraseDialog = createSelector(
(state: ModalState): RecoveryPhraseModalState => state.recoveryPhraseModal
);
export const getAdminLeaveClosedGroupDialog = createSelector(
getModal,
(state: ModalState): AdminLeaveClosedGroupModalState => state.adminLeaveClosedGroup
);
export const getSessionPasswordDialog = createSelector(
getModal,
(state: ModalState): SessionPasswordModalState => state.sessionPasswordModal

@ -257,10 +257,14 @@ export type LocalizerKeys =
| 'banUserAndDeleteAll'
| 'userBanned'
| 'userBanFailed'
| 'leave'
| 'leaveGroup'
| 'leaveAndRemoveForEveryone'
| 'leaveGroupConfirmation'
| 'leaveGroupConfirmationAdmin'
| 'leaveGroupConrirmationOnlyAdminLegacy'
| 'leaveGroupConfirmationOnlyAdmin'
| 'leaveGroupConfirmationOnlyAdminWarning'
| 'leaveGroupFailed'
| 'leaveCommunity'
| 'leaveCommunityFailed'
@ -326,6 +330,7 @@ export type LocalizerKeys =
| 'editProfileModalTitle'
| 'groupNamePlaceholder'
| 'inviteContacts'
| 'addModerator'
| 'addModerators'
| 'removeModerators'
| 'addAsModerator'

Loading…
Cancel
Save