diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 0c7928003..72d933528 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -430,7 +430,6 @@ "recoveryPasswordHidePermanentlyDescription2": "Are you sure you want to permanently hide your recovery password on this device? This cannot be undone.", "recoveryPasswordHideRecoveryPasswordDescription": "Permanently hide your recover password on this device.", "recoveryPasswordWarningSendDescription": "This is your recovery password. If you send it to someone they'll have full access to your account.", - "recoveryPhraseSavePromptMain": "Your recovery password is the master key to your Account ID — you can use it to restore your Account ID if you lose access to your device. Store your recovery password in a safe place, and don't give it to anyone.", "remove": "Remove", "removeAccountPasswordDescription": "Remove the password required to unlock Session.", "removeAccountPasswordTitle": "Remove Password", diff --git a/ts/components/dialog/ModalContainer.tsx b/ts/components/dialog/ModalContainer.tsx index 4293d4305..11ab250f4 100644 --- a/ts/components/dialog/ModalContainer.tsx +++ b/ts/components/dialog/ModalContainer.tsx @@ -13,7 +13,6 @@ import { getOnionPathDialog, getReactClearAllDialog, getReactListDialog, - getRecoveryPhraseDialog, getRemoveModeratorsModal, getSessionPasswordDialog, getUpdateGroupMembersModal, @@ -34,7 +33,6 @@ import { ReactClearAllModal } from './ReactClearAllModal'; import { ReactListModal } from './ReactListModal'; import { SessionConfirm } from './SessionConfirm'; import { SessionNicknameDialog } from './SessionNicknameDialog'; -import { SessionSeedModal } from './SessionSeedModal'; import { SessionSetPasswordDialog } from './SessionSetPasswordDialog'; import { UpdateGroupMembersDialog } from './UpdateGroupMembersDialog'; import { UpdateGroupNameDialog } from './UpdateGroupNameDialog'; @@ -51,7 +49,6 @@ export const ModalContainer = () => { const changeNicknameModal = useSelector(getChangeNickNameDialog); const editProfileModalState = useSelector(getEditProfileDialog); const onionPathModalState = useSelector(getOnionPathDialog); - const recoveryPhraseModalState = useSelector(getRecoveryPhraseDialog); const enterPasswordModalState = useSelector(getEnterPasswordModalState); const sessionPasswordModalState = useSelector(getSessionPasswordDialog); const deleteAccountModalState = useSelector(getDeleteAccountModalState); @@ -75,7 +72,6 @@ export const ModalContainer = () => { {changeNicknameModal && } {editProfileModalState && } {onionPathModalState && } - {recoveryPhraseModalState && } {enterPasswordModalState && } {sessionPasswordModalState && } {deleteAccountModalState && } diff --git a/ts/components/dialog/SessionSeedModal.tsx b/ts/components/dialog/SessionSeedModal.tsx deleted file mode 100644 index e1cbdc709..000000000 --- a/ts/components/dialog/SessionSeedModal.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { useState } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; -import styled from 'styled-components'; - -import { ToastUtils } from '../../session/utils'; - -import { mnDecode } from '../../session/crypto/mnemonic'; -import { recoveryPhraseModal } from '../../state/ducks/modalDialog'; -import { SpacerSM } from '../basic/Text'; - -import { usePasswordModal } from '../../hooks/usePasswordModal'; -import { getTheme } from '../../state/selectors/theme'; -import { getThemeValue } from '../../themes/globals'; -import { getCurrentRecoveryPhrase } from '../../util/storage'; -import { SessionQRCode } from '../SessionQRCode'; -import { SessionWrapperModal } from '../SessionWrapperModal'; -import { SessionButton, SessionButtonType } from '../basic/SessionButton'; - -interface SeedProps { - recoveryPhrase: string; - onClickCopy?: () => any; -} - -const StyledRecoveryPhrase = styled.i``; - -const Seed = (props: SeedProps) => { - const { recoveryPhrase, onClickCopy } = props; - const dispatch = useDispatch(); - const theme = useSelector(getTheme); - - const hexEncodedSeed = mnDecode(recoveryPhrase, 'english'); - - const copyRecoveryPhrase = (recoveryPhraseToCopy: string) => { - window.clipboard.writeText(recoveryPhraseToCopy); - ToastUtils.pushCopiedToClipBoard(); - if (onClickCopy) { - onClickCopy(); - } - dispatch(recoveryPhraseModal(null)); - }; - - return ( - <> -
-

- {window.i18n('recoveryPhraseSavePromptMain')} -

- - - - - {recoveryPhrase} - -
-
- { - copyRecoveryPhrase(recoveryPhrase); - }} - /> -
- - ); -}; - -const StyledSeedModalContainer = styled.div` - margin: var(--margins-md) var(--margins-sm); -`; - -interface ModalInnerProps { - onClickOk?: () => any; -} - -const SessionSeedModalInner = (props: ModalInnerProps) => { - const { onClickOk } = props; - const [loadingSeed, setLoadingSeed] = useState(true); - const [recoveryPhrase, setRecoveryPhrase] = useState(''); - const dispatch = useDispatch(); - - const onClose = () => dispatch(recoveryPhraseModal(null)); - - usePasswordModal({ - onSuccess: () => { - const newRecoveryPhrase = getCurrentRecoveryPhrase(); - setRecoveryPhrase(newRecoveryPhrase); - setLoadingSeed(false); - }, - onClose, - title: window.i18n('sessionRecoveryPassword'), - }); - - if (loadingSeed) { - return null; - } - - return ( - - - - - - - ); -}; - -export const SessionSeedModal = SessionSeedModalInner; diff --git a/ts/state/ducks/modalDialog.tsx b/ts/state/ducks/modalDialog.tsx index c4fbffa1c..cb27d97b7 100644 --- a/ts/state/ducks/modalDialog.tsx +++ b/ts/state/ducks/modalDialog.tsx @@ -20,7 +20,6 @@ export type UpdateGroupNameModalState = InviteContactModalState; export type ChangeNickNameModalState = InviteContactModalState; export type EditProfileModalState = object | null; export type OnionPathModalState = EditProfileModalState; -export type RecoveryPhraseModalState = EditProfileModalState; export type EnterPasswordModalState = EnterPasswordModalProps | null; export type DeleteAccountModalState = EditProfileModalState; @@ -53,7 +52,6 @@ export type ModalState = { nickNameModal: ChangeNickNameModalState; editProfileModal: EditProfileModalState; onionPathModal: OnionPathModalState; - recoveryPhraseModal: RecoveryPhraseModalState; enterPasswordModal: EnterPasswordModalState; sessionPasswordModal: SessionPasswordModalState; deleteAccountModal: DeleteAccountModalState; @@ -75,7 +73,6 @@ export const initialModalState: ModalState = { nickNameModal: null, editProfileModal: null, onionPathModal: null, - recoveryPhraseModal: null, enterPasswordModal: null, sessionPasswordModal: null, deleteAccountModal: null, @@ -122,9 +119,6 @@ const ModalSlice = createSlice({ onionPathModal(state, action: PayloadAction) { return { ...state, onionPathModal: action.payload }; }, - recoveryPhraseModal(state, action: PayloadAction) { - return { ...state, recoveryPhraseModal: action.payload }; - }, updateEnterPasswordModal(state, action: PayloadAction) { return { ...state, enterPasswordModal: action.payload }; }, @@ -161,7 +155,6 @@ export const { changeNickNameModal, editProfileModal, onionPathModal, - recoveryPhraseModal, updateEnterPasswordModal, sessionPassword, updateDeleteAccountModal, diff --git a/ts/state/selectors/modal.ts b/ts/state/selectors/modal.ts index c09681a12..1e22a7498 100644 --- a/ts/state/selectors/modal.ts +++ b/ts/state/selectors/modal.ts @@ -14,7 +14,6 @@ import { ModalState, OnionPathModalState, ReactModalsState, - RecoveryPhraseModalState, RemoveModeratorsModalState, SessionPasswordModalState, UpdateGroupMembersModalState, @@ -82,11 +81,6 @@ export const getOnionPathDialog = createSelector( (state: ModalState): OnionPathModalState => state.onionPathModal ); -export const getRecoveryPhraseDialog = createSelector( - getModal, - (state: ModalState): RecoveryPhraseModalState => state.recoveryPhraseModal -); - export const getEnterPasswordModalState = createSelector( getModal, (state: ModalState): EnterPasswordModalState => state.enterPasswordModal diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts index e2ccdbc4e..3e6175aa5 100644 --- a/ts/types/LocalizerKeys.ts +++ b/ts/types/LocalizerKeys.ts @@ -430,7 +430,6 @@ export type LocalizerKeys = | 'recoveryPasswordHidePermanentlyDescription2' | 'recoveryPasswordHideRecoveryPasswordDescription' | 'recoveryPasswordWarningSendDescription' - | 'recoveryPhraseSavePromptMain' | 'remove' | 'removeAccountPasswordDescription' | 'removeAccountPasswordTitle'