// @flow import React from 'react'; import { Form, FormField } from 'component/common/form'; import { Modal } from 'modal/modal'; import Button from 'component/button'; import { getSavedPassword, setSavedPassword } from 'util/saved-passwords'; type Props = { quit: () => void, closeModal: () => void, unlockWallet: (?string) => void, walletUnlockSucceded: boolean, shouldTryWithBlankPassword: boolean, }; type State = { password: string, rememberPassword: boolean, }; class ModalWalletUnlock extends React.PureComponent { state = { password: '', rememberPassword: false, }; componentDidMount() { const { unlockWallet, shouldTryWithBlankPassword } = this.props; getSavedPassword().then(p => { if (p !== null) { this.setState({ password: p, rememberPassword: true }); unlockWallet(p); } else if (shouldTryWithBlankPassword) { unlockWallet(''); } }); } componentDidUpdate() { const { props } = this; if (props.walletUnlockSucceded === true) { setSavedPassword(this.state.password, this.state.rememberPassword); props.closeModal(); } } onChangePassword(event: SyntheticInputEvent<*>) { this.setState({ password: event.target.value }); } onChangeRememberPassword(event: SyntheticInputEvent<>) { this.setState({ rememberPassword: event.target.checked }); } render() { const { quit, unlockWallet, walletUnlockSucceded } = this.props; const { password, rememberPassword } = this.state; return ( unlockWallet(password)} onAborted={quit} >

{__('Your wallet has been encrypted with a local password. Please enter your wallet password to proceed.')}{' '}