FIX: Debounce group name validation correctly (#13757)

This commit is contained in:
Osama Sayegh 2021-07-16 05:51:13 +03:00 committed by GitHub
parent 8bdec18d58
commit 7323c65d53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,52 +57,50 @@ export default Component.extend({
);
}
this.checkGroupName();
this.checkGroupNameDebounced();
return this._failedInputValidation(
I18n.t("admin.groups.new.name.checking")
);
},
checkGroupName() {
discourseDebounce(
this,
function () {
if (isEmpty(this.nameInput)) {
return;
checkGroupNameDebounced() {
discourseDebounce(this, this._checkGroupName, 500);
},
_checkGroupName() {
if (isEmpty(this.nameInput)) {
return;
}
Group.checkName(this.nameInput)
.then((response) => {
const validationName = "uniqueNameValidation";
if (response.available) {
this.set(
validationName,
EmberObject.create({
ok: true,
reason: I18n.t("admin.groups.new.name.available"),
})
);
this.set("disableSave", false);
this.set("model.name", this.nameInput);
} else {
let reason;
if (response.errors) {
reason = response.errors.join(" ");
} else {
reason = I18n.t("admin.groups.new.name.not_available");
}
this.set(validationName, this._failedInputValidation(reason));
}
Group.checkName(this.nameInput)
.then((response) => {
const validationName = "uniqueNameValidation";
if (response.available) {
this.set(
validationName,
EmberObject.create({
ok: true,
reason: I18n.t("admin.groups.new.name.available"),
})
);
this.set("disableSave", false);
this.set("model.name", this.nameInput);
} else {
let reason;
if (response.errors) {
reason = response.errors.join(" ");
} else {
reason = I18n.t("admin.groups.new.name.not_available");
}
this.set(validationName, this._failedInputValidation(reason));
}
})
.catch(popupAjaxError);
},
500
);
})
.catch(popupAjaxError);
},
_failedInputValidation(reason) {