import React, { useEffect, useState } from 'react'; import { Spinner } from 'react-bootstrap'; import { downloadAsFile } from 'utils/file'; import { getRecoveryKey } from 'utils/crypto'; import { setJustSignedUp } from 'utils/storage'; import constants from 'utils/strings/constants'; import MessageDialog from './MessageDialog'; interface Props { show: boolean; onHide: () => void; somethingWentWrong: any; } function RecoveryKeyModal({ somethingWentWrong, ...props }: Props) { const [recoveryKey, setRecoveryKey] = useState(null); useEffect(() => { if (!props.show) { return; } const main = async () => { const recoveryKey = await getRecoveryKey(); if (!recoveryKey) { somethingWentWrong(); props.onHide(); } setRecoveryKey(recoveryKey); }; main(); }, [props.show]); function onSaveClick() { downloadAsFile(constants.RECOVERY_KEY_FILENAME, recoveryKey); onClose(); } function onClose() { props.onHide(); setJustSignedUp(false); } return (

{constants.RECOVERY_KEY_DESCRIPTION}

{recoveryKey ? (
{recoveryKey}
) : ( )}

{constants.KEY_NOT_STORED_DISCLAIMER}

); } export default RecoveryKeyModal;