From 7b87424aebdea5dadec9633b390a899d248d0882 Mon Sep 17 00:00:00 2001 From: mashazyu <mariya.z@gmail.com> Date: Mon, 7 Jan 2019 18:55:06 +0100 Subject: [PATCH] Bug fix for showing irrelevant buttons on the password management page --- components/settings/password/delete.js | 1 + components/settings/password/index.js | 44 +++++++++++++++++++++----- components/settings/password/update.js | 1 + 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/components/settings/password/delete.js b/components/settings/password/delete.js index c80b397e..016cae43 100644 --- a/components/settings/password/delete.js +++ b/components/settings/password/delete.js @@ -14,6 +14,7 @@ export default class DeletePassword extends Component { startConfirmWithPassword = () => { this.setState({ enteringCurrentPassword: true }) + this.props.onStartDeletingPassword() } startDeletePassword = async () => { diff --git a/components/settings/password/index.js b/components/settings/password/index.js index fca09664..ccc24529 100644 --- a/components/settings/password/index.js +++ b/components/settings/password/index.js @@ -15,29 +15,57 @@ export default class PasswordSetting extends Component { super(props) this.state = { showUpdateAndDelete: hasEncryptionObservable.value, - showCreate: !hasEncryptionObservable.value + showCreate: !hasEncryptionObservable.value, + isChangingPassword: false, + isDeletingPassword: false } } + onChangingPassword = () => { + this.setState({ isChangingPassword: true }) + } + + onDeletingPassword = () => { + this.setState({ isDeletingPassword: true }) + } + render() { + + const { + showUpdateAndDelete, + isChangingPassword, + isDeletingPassword, + showCreate + } = this.state + return ( <ScrollView> <SettingsSegment title={labels.passwordSettings.title}> - {this.state.showUpdateAndDelete ? + {showUpdateAndDelete ? <AppText>{labels.passwordSettings.explainerEnabled}</AppText> : <AppText>{labels.passwordSettings.explainerDisabled}</AppText> } - {this.state.showUpdateAndDelete && - <View> - <ChangePassword/> - <DeletePassword/> - </View> + { + showUpdateAndDelete && ( + <View> + {(isChangingPassword + || !isChangingPassword && !isDeletingPassword) + && <ChangePassword + onStartChangingPassword = {this.onChangingPassword} + />} + {(isDeletingPassword + || !isChangingPassword && !isDeletingPassword) + && <DeletePassword + onStartDeletingPassword = {this.onDeletingPassword} + />} + </View> + ) } - {this.state.showCreate && + {showCreate && <CreatePassword/> } diff --git a/components/settings/password/update.js b/components/settings/password/update.js index 3879df49..81b2ba92 100644 --- a/components/settings/password/update.js +++ b/components/settings/password/update.js @@ -20,6 +20,7 @@ export default class ChangePassword extends Component { showBackUpReminder(() => { this.setState({ enteringCurrentPassword: true }) }) + this.props.onStartChangingPassword() } startEnteringNewPassword = () => { -- GitLab