2017-02-20 16:40:01 +01:00
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
import { observer } from 'mobx-react' ;
2017-07-17 18:37:33 +02:00
import React , { Component } from 'react' ;
import PropTypes from 'prop-types' ;
2017-02-20 16:40:01 +01:00
import { FormattedMessage } from 'react-intl' ;
import { connect } from 'react-redux' ;
import { bindActionCreators } from 'redux' ;
2017-05-09 12:01:44 +02:00
import { newError } from '@parity/shared/redux/actions' ;
2017-05-12 12:06:16 +02:00
import { ConfirmDialog , VaultCard } from '@parity/ui' ;
2017-02-20 16:40:01 +01:00
import styles from '../VaultUnlock/vaultUnlock.css' ;
@ observer
class VaultLock extends Component {
static propTypes = {
newError : PropTypes . func . isRequired ,
vaultStore : PropTypes . object . isRequired
}
render ( ) {
const { isBusyLock , isModalLockOpen , vault } = this . props . vaultStore ;
if ( ! isModalLockOpen ) {
return null ;
}
return (
< ConfirmDialog
busy = { isBusyLock }
disabledConfirm = { isBusyLock }
disabledDeny = { isBusyLock }
onConfirm = { this . onExecute }
onDeny = { this . onClose }
open
title = {
< FormattedMessage
id = 'vaults.confirmClose.title'
defaultMessage = 'Close Vault'
/ >
}
>
< div className = { styles . textbox } >
< FormattedMessage
id = 'vaults.confirmClose.info'
defaultMessage = "You are about to close a vault. Any accounts associated with the vault won't be visible after this operation concludes. To view the associated accounts, open the vault again."
/ >
< / d i v >
< VaultCard . Layout
withBorder
vault = { vault }
/ >
< / C o n f i r m D i a l o g >
) ;
}
onExecute = ( ) => {
return this . props . vaultStore
. closeVault ( )
. catch ( this . props . newError )
. then ( this . onClose ) ;
}
onClose = ( ) => {
this . props . vaultStore . closeLockModal ( ) ;
}
}
function mapDispatchToProps ( dispatch ) {
return bindActionCreators ( {
newError
} , dispatch ) ;
}
export default connect (
null ,
mapDispatchToProps
) ( VaultLock ) ;