lbry-desktop/ui/modal/modalWalletDecrypt/view.jsx
2019-11-11 13:27:29 -05:00

64 lines
1.5 KiB
JavaScript

// @flow
import React from 'react';
import { Modal } from 'modal/modal';
import Button from 'component/button';
import { deleteAuthToken } from 'util/saved-passwords';
type Props = {
closeModal: () => void,
decryptWallet: () => void,
updateWalletStatus: () => void,
walletDecryptSucceded: boolean,
};
type State = {
submitted: boolean,
};
class ModalWalletDecrypt extends React.PureComponent<Props, State> {
state = {
submitted: false, // Prior actions could be marked complete
};
componentDidUpdate() {
const { props, state } = this;
if (state.submitted && props.walletDecryptSucceded === true) {
deleteAuthToken();
props.closeModal();
props.updateWalletStatus();
}
}
submitDecryptForm() {
this.setState({ submitted: true });
this.props.decryptWallet();
}
render() {
const { closeModal } = this.props;
return (
<Modal
isOpen
title={__('Decrypt Wallet')}
contentLabel={__('Decrypt Wallet')}
type="confirm"
confirmButtonLabel={__('Decrypt Wallet')}
abortButtonLabel={__('Cancel')}
onConfirmed={() => this.submitDecryptForm()}
onAborted={closeModal}
>
<p>
{__(
'Your wallet has been encrypted with a local password, performing this action will remove this password.'
)}{' '}
<Button button="link" label={__('Learn more')} href="https://lbry.com/faq/wallet-encryption" />.
</p>
</Modal>
);
}
}
export default ModalWalletDecrypt;