import React from 'react';
import { SessionModal } from './SessionModal';
import { SessionButton } from './SessionButton';
import { ToastUtils, UserUtils } from '../../session/utils';
import { DefaultTheme, withTheme } from 'styled-components';
import { PasswordUtil } from '../../util';
import { getPasswordHash } from '../../data/data';
import { QRCode } from 'react-qr-svg';
import { mn_decode } from '../../session/crypto/mnemonic';
import { SessionWrapperModal } from './SessionWrapperModal';
import { SpacerLG, SpacerSM, SpacerXS } from '../basic/Text';
import autoBind from 'auto-bind';
import { recoveryPhraseModal } from '../../state/ducks/modalDialog';
interface State {
error: string;
loadingPassword: boolean;
loadingSeed: boolean;
recoveryPhrase: string;
hasPassword: boolean | null;
passwordHash: string;
passwordValid: boolean;
}
class SessionSeedModalInner extends React.Component<{}, State> {
constructor(props: any) {
super(props);
this.state = {
error: '',
loadingPassword: true,
loadingSeed: true,
recoveryPhrase: '',
hasPassword: null,
passwordHash: '',
passwordValid: false,
};
autoBind(this);
}
public componentDidMount() {
setTimeout(() => ($('#seed-input-password') as any).focus(), 100);
}
public render() {
const i18n = window.i18n;
void this.checkHasPassword();
void this.getRecoveryPhrase();
const { hasPassword, passwordValid } = this.state;
const loading = this.state.loadingPassword || this.state.loadingSeed;
const onClose = () => window.inboxStore?.dispatch(recoveryPhraseModal(null));
return (
<>
{!loading && (
{i18n('showRecoveryPhrasePasswordRequest')}
{error && ( <>{i18n('recoveryPhraseSavePromptMain')}