discourse/app/assets/javascripts/select-kit/addon/components/topic-chooser.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.1 KiB
JavaScript
Raw Normal View History

import { isEmpty } from "@ember/utils";
import { searchForTerm } from "discourse/lib/search";
import ComboBoxComponent from "select-kit/components/combo-box";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["topic-chooser"],
classNames: ["topic-chooser"],
nameProperty: "fancy_title",
labelProperty: "title",
titleProperty: "title",
selectKitOptions: {
clearable: true,
filterable: true,
filterPlaceholder: "choose_topic.title.placeholder",
additionalFilters: "",
},
modifyComponentForRow() {
return "topic-row";
},
search(filter) {
if (isEmpty(filter) && isEmpty(this.selectKit.options.additionalFilters)) {
return [];
}
const searchParams = {};
if (!isEmpty(filter)) {
searchParams.typeFilter = "topic";
searchParams.restrictToArchetype = "regular";
searchParams.searchForId = true;
}
return searchForTerm(
`${filter} ${this.selectKit.options.additionalFilters}`,
searchParams
).then((results) => {
if (results?.posts?.length > 0) {
return results.posts.mapBy("topic");
}
});
},
});