mirror of
https://github.com/discourse/discourse.git
synced 2025-09-07 12:02:53 +08:00
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
import { on, observes } from "ember-addons/ember-computed-decorators";
|
|
|
|
export default Ember.Component.extend({
|
|
@on("init")
|
|
_init() {
|
|
if (!this.get("site.mobileView")) {
|
|
var classes = this.desktopClass;
|
|
if (classes) {
|
|
classes = classes.split(" ");
|
|
this.set("classNames", classes);
|
|
}
|
|
}
|
|
},
|
|
|
|
tagName: "ul",
|
|
selectedHtml: null,
|
|
|
|
classNames: ["mobile-nav"],
|
|
|
|
@observes("currentPath")
|
|
currentPathChanged() {
|
|
this.set("expanded", false);
|
|
Ember.run.next(() => this._updateSelectedHtml());
|
|
},
|
|
|
|
_updateSelectedHtml() {
|
|
const active = this.element.querySelector(".active");
|
|
if (active && active.innerHTML) {
|
|
this.set("selectedHtml", active.innerHTML);
|
|
}
|
|
},
|
|
|
|
didInsertElement() {
|
|
this._updateSelectedHtml();
|
|
},
|
|
|
|
actions: {
|
|
toggleExpanded() {
|
|
this.toggleProperty("expanded");
|
|
|
|
Ember.run.next(() => {
|
|
if (this.expanded) {
|
|
$(window)
|
|
.off("click.mobile-nav")
|
|
.on("click.mobile-nav", e => {
|
|
let expander = $(this.element.querySelector(".expander"));
|
|
expander = expander && expander[0];
|
|
if ($(e.target)[0] !== expander) {
|
|
this.set("expanded", false);
|
|
$(window).off("click.mobile-nav");
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|