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", "deleteMessages": "Delete Messages",
"deleteMessagesConfirmation": "Permanently delete the messages in this conversation?", "deleteMessagesConfirmation": "Permanently delete the messages in this conversation?",
"deleteConversation": "Delete 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!", "deleteConversationFailed": "Failed to leave the Conversation!",
"leaving": "Leaving...", "leaving": "Leaving...",
"deleted": "$count$ deleted", "deleted": "$count$ deleted",
@ -257,10 +257,14 @@
"banUserAndDeleteAll": "Ban and Delete All", "banUserAndDeleteAll": "Ban and Delete All",
"userBanned": "Banned successfully", "userBanned": "Banned successfully",
"userBanFailed": "Ban failed!", "userBanFailed": "Ban failed!",
"leave": "Leave",
"leaveGroup": "Leave Group", "leaveGroup": "Leave Group",
"leaveAndRemoveForEveryone": "Leave Group and Remove for Everyone", "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?", "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!", "leaveGroupFailed": "Failed to leave Group!",
"leaveCommunity": "Leave Community", "leaveCommunity": "Leave Community",
"leaveCommunityFailed": "Failed to leave Community!", "leaveCommunityFailed": "Failed to leave Community!",
@ -326,6 +330,7 @@
"editProfileModalTitle": "Profile", "editProfileModalTitle": "Profile",
"groupNamePlaceholder": "Group Name", "groupNamePlaceholder": "Group Name",
"inviteContacts": "Invite Contacts", "inviteContacts": "Invite Contacts",
"addModerator": "Add Admin",
"addModerators": "Add Admins", "addModerators": "Add Admins",
"removeModerators": "Remove Admins", "removeModerators": "Remove Admins",
"addAsModerator": "Add as Admin", "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 { useSelector } from 'react-redux';
import { import {
getAddModeratorsModal, getAddModeratorsModal,
getAdminLeaveClosedGroupDialog,
getBanOrUnbanUserModalState, getBanOrUnbanUserModalState,
getChangeNickNameDialog, getChangeNickNameDialog,
getConfirmModal, getConfirmModal,
@ -19,7 +18,6 @@ import {
getUpdateGroupNameModal, getUpdateGroupNameModal,
getUserDetailsModal, getUserDetailsModal,
} from '../../state/selectors/modal'; } from '../../state/selectors/modal';
import { AdminLeaveClosedGroupDialog } from './AdminLeaveClosedGroupDialog';
import { InviteContactsDialog } from './InviteContactsDialog'; import { InviteContactsDialog } from './InviteContactsDialog';
import { DeleteAccountModal } from './DeleteAccountModal'; import { DeleteAccountModal } from './DeleteAccountModal';
import { EditProfileDialog } from './EditProfileDialog'; import { EditProfileDialog } from './EditProfileDialog';
@ -49,7 +47,6 @@ export const ModalContainer = () => {
const editProfileModalState = useSelector(getEditProfileDialog); const editProfileModalState = useSelector(getEditProfileDialog);
const onionPathModalState = useSelector(getOnionPathDialog); const onionPathModalState = useSelector(getOnionPathDialog);
const recoveryPhraseModalState = useSelector(getRecoveryPhraseDialog); const recoveryPhraseModalState = useSelector(getRecoveryPhraseDialog);
const adminLeaveClosedGroupModalState = useSelector(getAdminLeaveClosedGroupDialog);
const sessionPasswordModalState = useSelector(getSessionPasswordDialog); const sessionPasswordModalState = useSelector(getSessionPasswordDialog);
const deleteAccountModalState = useSelector(getDeleteAccountModalState); const deleteAccountModalState = useSelector(getDeleteAccountModalState);
const banOrUnbanUserModalState = useSelector(getBanOrUnbanUserModalState); const banOrUnbanUserModalState = useSelector(getBanOrUnbanUserModalState);
@ -71,9 +68,6 @@ export const ModalContainer = () => {
{editProfileModalState && <EditProfileDialog {...editProfileModalState} />} {editProfileModalState && <EditProfileDialog {...editProfileModalState} />}
{onionPathModalState && <OnionPathModal {...onionPathModalState} />} {onionPathModalState && <OnionPathModal {...onionPathModalState} />}
{recoveryPhraseModalState && <SessionSeedModal {...recoveryPhraseModalState} />} {recoveryPhraseModalState && <SessionSeedModal {...recoveryPhraseModalState} />}
{adminLeaveClosedGroupModalState && (
<AdminLeaveClosedGroupDialog {...adminLeaveClosedGroupModalState} />
)}
{sessionPasswordModalState && <SessionPasswordDialog {...sessionPasswordModalState} />} {sessionPasswordModalState && <SessionPasswordDialog {...sessionPasswordModalState} />}
{deleteAccountModalState && <DeleteAccountModal {...deleteAccountModalState} />} {deleteAccountModalState && <DeleteAccountModal {...deleteAccountModalState} />}
{confirmModalState && <SessionConfirm {...confirmModalState} />} {confirmModalState && <SessionConfirm {...confirmModalState} />}

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

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

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

Loading…
Cancel
Save