mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 12:23:38 +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**
33 lines
920 B
JavaScript
33 lines
920 B
JavaScript
import NotificationsButtonComponent from "select-kit/components/notifications-button";
|
|
import { topicLevels } from "discourse/lib/notification-levels";
|
|
import { computed } from "@ember/object";
|
|
|
|
export default NotificationsButtonComponent.extend({
|
|
pluginApiIdentifiers: ["topic-notifications-options"],
|
|
classNames: ["topic-notifications-options"],
|
|
content: topicLevels,
|
|
|
|
selectKitOptions: {
|
|
i18nPrefix: "i18nPrefix",
|
|
i18nPostfix: "i18nPostfix"
|
|
},
|
|
|
|
i18nPrefix: "topic.notifications",
|
|
|
|
i18nPostfix: computed("topic.archetype", function() {
|
|
return this.topic.archetype === "private_message" ? "_pm" : "";
|
|
}),
|
|
|
|
didInsertElement() {
|
|
this._super(...arguments);
|
|
|
|
this.appEvents.on("topic-notifications-button:changed", this, "onSelect");
|
|
},
|
|
|
|
willDestroyElement() {
|
|
this._super(...arguments);
|
|
|
|
this.appEvents.off("topic-notifications-button:changed", this, "onSelect");
|
|
}
|
|
});
|