mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Use native element.closest()
(#17482)
This commit is contained in:
parent
abe9b41ddf
commit
3ada82f713
@ -15,10 +15,10 @@ export default Component.extend({
|
|||||||
this._clearFlash();
|
this._clearFlash();
|
||||||
}
|
}
|
||||||
|
|
||||||
let fixedParent = $(this.element).closest(".d-modal.fixed-modal");
|
let fixedParent = this.element.closest(".d-modal.fixed-modal");
|
||||||
if (fixedParent.length) {
|
if (fixedParent) {
|
||||||
this.set("fixed", true);
|
this.set("fixed", true);
|
||||||
fixedParent.modal("show");
|
$(fixedParent).modal("show");
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleOnce("afterRender", this, this._afterFirstRender);
|
scheduleOnce("afterRender", this, this._afterFirstRender);
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import Component from "@ember/component";
|
import Component from "@ember/component";
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
classNameBindings: [":featured-topic"],
|
classNameBindings: [":featured-topic"],
|
||||||
attributeBindings: ["topic.id:data-topic-id"],
|
attributeBindings: ["topic.id:data-topic-id"],
|
||||||
|
|
||||||
click(e) {
|
click(e) {
|
||||||
const $target = $(e.target);
|
if (e.target.closest(".last-posted-at")) {
|
||||||
if ($target.closest(".last-posted-at").length) {
|
|
||||||
this.appEvents.trigger("topic-entrance:show", {
|
this.appEvents.trigger("topic-entrance:show", {
|
||||||
topic: this.topic,
|
topic: this.topic,
|
||||||
position: $target.offset(),
|
position: $(e.target).offset(),
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -164,10 +164,10 @@ export default Component.extend(LoadMore, {
|
|||||||
|
|
||||||
click(e) {
|
click(e) {
|
||||||
const onClick = (sel, callback) => {
|
const onClick = (sel, callback) => {
|
||||||
let target = $(e.target).closest(sel);
|
let target = e.target.closest(sel);
|
||||||
|
|
||||||
if (target.length === 1) {
|
if (target) {
|
||||||
callback.apply(this, [target]);
|
callback.call(this, target);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -186,8 +186,8 @@ export default Component.extend(LoadMore, {
|
|||||||
$("input.bulk-select:checked").click();
|
$("input.bulk-select:checked").click();
|
||||||
});
|
});
|
||||||
|
|
||||||
onClick("th.sortable", function (e2) {
|
onClick("th.sortable", function (element) {
|
||||||
this.changeSort(e2.data("sort-order"));
|
this.changeSort(element.dataset.sortOrder);
|
||||||
this.rerender();
|
this.rerender();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -210,15 +210,15 @@ export default Component.extend(LoadMore, {
|
|||||||
keyDown(e) {
|
keyDown(e) {
|
||||||
if (e.key === "Enter" || e.key === " ") {
|
if (e.key === "Enter" || e.key === " ") {
|
||||||
let onKeyDown = (sel, callback) => {
|
let onKeyDown = (sel, callback) => {
|
||||||
let target = $(e.target).closest(sel);
|
let target = e.target.closest(sel);
|
||||||
|
|
||||||
if (target.length === 1) {
|
if (target) {
|
||||||
callback.apply(this, [target]);
|
callback.call(this, target);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
onKeyDown("th.sortable", (e2) => {
|
onKeyDown("th.sortable", (element) => {
|
||||||
this.changeSort(e2.data("sort-order"));
|
this.changeSort(element.dataset.sortOrder);
|
||||||
this.rerender();
|
this.rerender();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -345,11 +345,12 @@ export default Mixin.create({
|
|||||||
@bind
|
@bind
|
||||||
_clickOutsideHandler(event) {
|
_clickOutsideHandler(event) {
|
||||||
if (this.visible) {
|
if (this.visible) {
|
||||||
const $target = $(event.target);
|
|
||||||
if (
|
if (
|
||||||
$target.closest(`[data-${this.elementId}]`).data(this.elementId) ||
|
event.target
|
||||||
$target.closest(`a.${this.triggeringLinkClass}`).length > 0 ||
|
.closest(`[data-${this.elementId}]`)
|
||||||
$target.closest(`#${this.elementId}`).length > 0
|
?.getAttribute(`data-${this.elementId}`) ||
|
||||||
|
event.target.closest(`a.${this.triggeringLinkClass}`) ||
|
||||||
|
event.target.closest(`#${this.elementId}`)
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ export default createWidget("home-logo", {
|
|||||||
}
|
}
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
DiscourseURL.routeToTag($(e.target).closest("a")[0]);
|
DiscourseURL.routeToTag(e.target.closest("a"));
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -131,6 +131,6 @@ export default createWidget("link", {
|
|||||||
this.sendWidgetEvent("linkClicked", this.attrs);
|
this.sendWidgetEvent("linkClicked", this.attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DiscourseURL.routeToTag($(e.target).closest("a")[0]);
|
return DiscourseURL.routeToTag(e.target.closest("a"));
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -81,7 +81,7 @@ createWidget("topic-admin-menu-button", {
|
|||||||
if (e === undefined) {
|
if (e === undefined) {
|
||||||
$button = $(".keyboard-target-admin-menu");
|
$button = $(".keyboard-target-admin-menu");
|
||||||
} else {
|
} else {
|
||||||
$button = $(e.target).closest("button");
|
$button = $(e.target.closest("button"));
|
||||||
}
|
}
|
||||||
|
|
||||||
const position = $button.position(),
|
const position = $button.position(),
|
||||||
|
@ -70,7 +70,7 @@ createWidget("discourse-poll-option", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
click(e) {
|
click(e) {
|
||||||
if ($(e.target).closest("a").length === 0) {
|
if (!e.target.closest("a")) {
|
||||||
this.sendWidgetAction("toggleOption", this.attrs.option);
|
this.sendWidgetAction("toggleOption", this.attrs.option);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user