diff --git a/web/settings/password-change-modal.css b/web/settings/password-change-modal.css --- a/web/settings/password-change-modal.css +++ b/web/settings/password-change-modal.css @@ -1,26 +1,25 @@ -.modal-body { - padding: 24px 40px 32px; -} -.form-footer { - display: flex; - flex-direction: row-reverse; - justify-content: space-between; - padding-top: 8px; -} .modal-form-error { font-size: var(--xs-font-12); color: var(--text-background-danger-default); font-style: italic; - padding-left: 6px; - align-self: center; + height: 24px; + display: flex; + justify-content: center; + align-items: flex-end; } + +.errorPlaceholder { + height: 24px; +} + .form-content { display: flex; flex-direction: column; } -.form-content input { +.form-content input:not(:last-child) { margin-bottom: 16px; } + .form-content input[type='password'] { width: auto; } diff --git a/web/settings/password-change-modal.js b/web/settings/password-change-modal.js --- a/web/settings/password-change-modal.js +++ b/web/settings/password-change-modal.js @@ -59,71 +59,75 @@ } render(): React.Node { - let errorMsg; + const { inputDisabled } = this.props; + + let errorMsg =
; if (this.state.errorMessage) { errorMsg = (
{this.state.errorMessage}
); } - const { inputDisabled } = this.props; + const buttonIsDisabled = + inputDisabled || + this.state.currentPassword.length === 0 || + this.state.newPassword.length === 0 || + this.state.confirmNewPassword.length === 0; + + const changePasswordButton = ( + + ); + return ( - -
-
-
-

- {'Logged in as '} - - {this.props.stringForUser} - -

-
- -
- - -
-
- - {errorMsg} -
-
-
+ +
+
+

+ {'Logged in as '} + + {this.props.stringForUser} + +

+ + + +
+ {errorMsg} +
); }