mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 07:03:43 +08:00
fe588cc7f8
* DEV: Fix the function prototype observers deprecation DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details. * DEV: Fix the function prototype event listeners deprecation DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details. * DEV: Simplify `default as` imports Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
42 lines
832 B
JavaScript
42 lines
832 B
JavaScript
import Component from "@ember/component";
|
|
import discourseComputed, { observes } from "discourse-common/utils/decorators";
|
|
|
|
export default Component.extend({
|
|
classNames: ["inline-edit"],
|
|
|
|
checked: null,
|
|
checkedInternal: null,
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
this.set("checkedInternal", this.checked);
|
|
},
|
|
|
|
@observes("checked")
|
|
checkedChanged() {
|
|
this.set("checkedInternal", this.checked);
|
|
},
|
|
|
|
@discourseComputed("labelKey")
|
|
label(key) {
|
|
return I18n.t(key);
|
|
},
|
|
|
|
@discourseComputed("checked", "checkedInternal")
|
|
changed(checked, checkedInternal) {
|
|
return !!checked !== !!checkedInternal;
|
|
},
|
|
|
|
actions: {
|
|
cancelled() {
|
|
this.set("checkedInternal", this.checked);
|
|
},
|
|
|
|
finished() {
|
|
this.set("checked", this.checkedInternal);
|
|
this.action();
|
|
}
|
|
}
|
|
});
|