mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 17:33:48 +08:00
0431942f3d
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**
47 lines
1.1 KiB
JavaScript
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);
|
|
}
|
|
});
|