mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 09:34:44 +08:00
fe588cc7f8
* DEV: Fix the function prototype observers deprecation DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details. * DEV: Fix the function prototype event listeners deprecation DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details. * DEV: Simplify `default as` imports Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
32 lines
901 B
JavaScript
32 lines
901 B
JavaScript
import SingleSelectComponent from "select-kit/components/single-select";
|
|
import discourseComputed, { on } from "discourse-common/utils/decorators";
|
|
|
|
export default SingleSelectComponent.extend({
|
|
pluginApiIdentifiers: ["combo-box"],
|
|
classNames: "combobox combo-box",
|
|
autoFilterable: true,
|
|
headerComponent: "combo-box/combo-box-header",
|
|
|
|
caretUpIcon: "caret-up",
|
|
caretDownIcon: "caret-down",
|
|
clearable: false,
|
|
|
|
computeHeaderContent() {
|
|
let content = this._super(...arguments);
|
|
content.hasSelection = this.hasSelection;
|
|
return content;
|
|
},
|
|
|
|
@discourseComputed("isExpanded", "caretUpIcon", "caretDownIcon")
|
|
caretIcon(isExpanded, caretUpIcon, caretDownIcon) {
|
|
return isExpanded ? caretUpIcon : caretDownIcon;
|
|
},
|
|
|
|
@on("didUpdateAttrs", "init")
|
|
_setComboBoxOptions() {
|
|
this.headerComponentOptions.setProperties({
|
|
clearable: this.clearable
|
|
});
|
|
}
|
|
});
|