Merge pull request #4012 from matrix-org/dbkr/just_one_zxcvbn_suggestion

Only display the first zxcvbn warning/suggestion
This commit is contained in:
David Baker 2020-01-31 11:05:54 +00:00 committed by GitHub
commit 630507304a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -453,14 +453,19 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) { if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) {
helpText = _t("Great! This passphrase looks strong enough."); helpText = _t("Great! This passphrase looks strong enough.");
} else { } else {
const suggestions = []; // We take the warning from zxcvbn or failing that, the first
for (let i = 0; i < this.state.zxcvbnResult.feedback.suggestions.length; ++i) { // suggestion. In practice The first is generally the most relevant
suggestions.push(<div key={i}>{this.state.zxcvbnResult.feedback.suggestions[i]}</div>); // and it's probably better to present the user with one thing to
} // improve about their password than a whole collection - it can
const suggestionBlock = <div>{suggestions.length > 0 ? suggestions : _t("Keep going...")}</div>; // spit out a warning and multiple suggestions which starts getting
// very information-dense.
const suggestion = (
this.state.zxcvbnResult.feedback.warning ||
this.state.zxcvbnResult.feedback.suggestions[0]
);
const suggestionBlock = <div>{suggestion || _t("Keep going...")}</div>;
helpText = <div> helpText = <div>
{this.state.zxcvbnResult.feedback.warning}
{suggestionBlock} {suggestionBlock}
</div>; </div>;
} }