don't show "This alias is available to use" if an alias is not provided

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2020-02-29 00:31:56 +00:00
parent 0c4897a875
commit 86a1327259
2 changed files with 9 additions and 1 deletions

View File

@ -92,6 +92,7 @@ export default class RoomAliasField extends React.PureComponent {
invalid: () => _t("Please provide a room alias"),
}, {
key: "taken",
skip: ({value}) => !value,
test: async ({value}) => {
if (!value) {
return true;

View File

@ -51,9 +51,16 @@ export default function withValidation({ description, rules }) {
if (!rule.key || !rule.test) {
continue;
}
const data = { value, allowEmpty };
if (rule.skip && rule.skip.call(this, data)) {
continue;
}
// We're setting `this` to whichever component holds the validation
// function. That allows rules to access the state of the component.
const ruleValid = await rule.test.call(this, { value, allowEmpty });
const ruleValid = await rule.test.call(this, data);
valid = valid && ruleValid;
if (ruleValid && rule.valid) {
// If the rule's result is valid and has text to show for