74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
import React, { Component } from 'react'
|
|
import settings from '../../../i18n/en/settings'
|
|
import EnterNewPassword from './enter-new-password'
|
|
import SettingsButton from '../settings-button'
|
|
import showBackUpReminder from './show-backup-reminder'
|
|
import ConfirmWithPassword from '../common/confirm-with-password'
|
|
|
|
|
|
export default class ChangePassword extends Component {
|
|
constructor() {
|
|
super()
|
|
this.state = {
|
|
currentPassword: null,
|
|
enteringCurrentPassword: false,
|
|
enteringNewPassword: false
|
|
}
|
|
}
|
|
|
|
startChangingPassword = () => {
|
|
showBackUpReminder(() => {
|
|
this.setState({ enteringCurrentPassword: true })
|
|
})
|
|
this.props.onStartChangingPassword()
|
|
}
|
|
|
|
startEnteringNewPassword = () => {
|
|
this.setState({
|
|
currentPassword: null,
|
|
enteringNewPassword: true,
|
|
enteringCurrentPassword: false
|
|
})
|
|
}
|
|
|
|
cancelConfirmationWithPassword = () => {
|
|
this.setState({
|
|
currentPassword: null,
|
|
enteringNewPassword: false,
|
|
enteringCurrentPassword: false
|
|
})
|
|
}
|
|
|
|
render() {
|
|
|
|
const {
|
|
enteringCurrentPassword,
|
|
enteringNewPassword,
|
|
currentPassword
|
|
} = this.state
|
|
|
|
const labels = settings.passwordSettings
|
|
|
|
if (enteringCurrentPassword) {
|
|
return (
|
|
<ConfirmWithPassword
|
|
onSuccess={this.startEnteringNewPassword}
|
|
onCancel={this.cancelConfirmationWithPassword}
|
|
/>
|
|
)
|
|
}
|
|
|
|
if (enteringNewPassword) {
|
|
return <EnterNewPassword />
|
|
}
|
|
|
|
return (
|
|
<SettingsButton
|
|
onPress={this.startChangingPassword}
|
|
disabled={currentPassword}
|
|
>
|
|
{labels.changePassword}
|
|
</SettingsButton>
|
|
)
|
|
}
|
|
} |