discourse/app/assets/javascripts/select-kit/components/toolbar-popup-menu-options.js.es6
Joffrey JAFFEUX 0431942f3d
DEV: select-kit 2 (#7998)
This new iteration of select-kit focuses on following best principales and disallowing mutations inside select-kit components. A best effort has been made to avoid breaking changes, however if you content was a flat array, eg: ["foo", "bar"] You will need to set valueProperty=null and nameProperty=null on the component.

Also almost every component should have an `onChange` handler now to decide what to do with the updated data. **select-kit will not mutate your data by itself anymore**
2020-02-03 14:22:14 +01:00

47 lines
1.1 KiB
JavaScript

import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
const HEADING_COLLECTION = "HEADING_COLLECTION";
export default DropdownSelectBoxComponent.extend({
pluginApiIdentifiers: ["toolbar-popup-menu-options"],
classNames: ["toolbar-popup-menu-options"],
init() {
this._super(...arguments);
this.prependCollection(HEADING_COLLECTION);
},
selectKitOptions: {
showFullTitle: false,
filterable: false,
autoFilterable: false
},
modifyContentForCollection(collection) {
if (collection === HEADING_COLLECTION) {
return { title: this.selectKit.options.popupTitle };
}
},
modifyComponentForCollection(collection) {
if (collection === HEADING_COLLECTION) {
return "toolbar-popup-menu-options/toolbar-popup-menu-options-heading";
}
},
modifyContent(contents) {
return contents
.map(content => {
if (content.condition) {
return {
icon: content.icon,
name: I18n.t(content.label),
id: content.action
};
}
})
.filter(Boolean);
}
});