This commit also moves more logic in dropdown-select-box instead of duplicating it for notifications-options and pinned-options
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
import computed from 'ember-addons/ember-computed-decorators';
|
|
import { iconHTML } from "discourse-common/lib/icon-library";
|
|
|
|
export default Ember.Component.extend({
|
|
layoutName: "components/select-box/select-box-row",
|
|
|
|
classNames: "select-box-row",
|
|
|
|
tagName: "li",
|
|
|
|
attributeBindings: ["title"],
|
|
|
|
classNameBindings: ["isHighlighted:is-highlighted", "isSelected:is-selected"],
|
|
|
|
@computed("titleForRow")
|
|
title(titleForRow) {
|
|
return titleForRow(this);
|
|
},
|
|
|
|
@computed("templateForRow")
|
|
template(templateForRow) {
|
|
return templateForRow(this);
|
|
},
|
|
|
|
@computed("shouldHighlightRow", "highlightedValue")
|
|
isHighlighted(shouldHighlightRow) {
|
|
return shouldHighlightRow(this);
|
|
},
|
|
|
|
@computed("shouldSelectRow", "value")
|
|
isSelected(shouldSelectRow) {
|
|
return shouldSelectRow(this);
|
|
},
|
|
|
|
icon() {
|
|
if (this.get("content.icon")) {
|
|
const iconName = this.get("content.icon");
|
|
const iconClass = this.get("content.iconClass");
|
|
return iconHTML(iconName, { class: iconClass });
|
|
}
|
|
|
|
return null;
|
|
},
|
|
|
|
mouseEnter() {
|
|
this.sendAction("onHover", this.get("content"));
|
|
},
|
|
|
|
click() {
|
|
this.sendAction("onSelect", this.get("content"));
|
|
}
|
|
});
|