mirror of
https://github.com/discourse/discourse.git
synced 2025-01-10 19:13:47 +08:00
324aa3eb61
* REFACTOR: reworks all the search-advanced-options panel This commit includes the following changes: - prevents any mutation of external (to the component) values - get rid of observers - uses @action - minor UI tweaks - dropped the unecessary debounce - drops all the legacy code for badges/groups which is not being used - replaces user-selector by user-chooser and improves multi-select to not show `search` if maximum has been reached Most importantly this refactor should fix multiple bugs due to _update() being called multiple times if searchTerm was empty and other various bugs where some changes in searchTerm was not applied to the sidebar.
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
import SelectKitHeaderComponent from "select-kit/components/select-kit/select-kit-header";
|
|
import { computed } from "@ember/object";
|
|
import { makeArray } from "discourse-common/lib/helpers";
|
|
import layout from "select-kit/templates/components/multi-select/multi-select-header";
|
|
|
|
export default SelectKitHeaderComponent.extend({
|
|
classNames: ["multi-select-header"],
|
|
layout,
|
|
|
|
selectedNames: computed("selectedContent", function () {
|
|
return makeArray(this.selectedContent).map((c) => this.getName(c));
|
|
}),
|
|
|
|
hasReachedMaximumSelection: computed("selectedValue", function () {
|
|
if (!this.selectKit.options.maximum) {
|
|
return false;
|
|
}
|
|
|
|
return this.selectedValue.length >= this.selectKit.options.maximum;
|
|
}),
|
|
|
|
selectedValue: computed("selectedContent", function () {
|
|
return makeArray(this.selectedContent)
|
|
.map((c) => {
|
|
if (this.getName(c) !== this.getName(this.selectKit.noneItem)) {
|
|
return this.getValue(c);
|
|
}
|
|
|
|
return null;
|
|
})
|
|
.filter(Boolean);
|
|
}),
|
|
});
|