mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-02 08:13:34 +03:00
8d01fb5556
no issue - ran [ember-native-class-codemod](https://github.com/ember-codemods/ember-native-class-codemod) to convert the majority of remaining EmberObject based controllers and components to native class syntax using the `@classic` decorator - skipped older style modal components (`components/modal-*.js`) due to observed incompatibilities in some cases
53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
import Component from '@ember/component';
|
|
import classic from 'ember-classic-decorator';
|
|
import {attributeBindings, classNames, tagName} from '@ember-decorators/component';
|
|
import {computed, defineProperty} from '@ember/object';
|
|
import {readOnly} from '@ember/object/computed';
|
|
import {inject as service} from '@ember/service';
|
|
|
|
@classic
|
|
@tagName('label')
|
|
@classNames('switch')
|
|
@attributeBindings('for', 'disabled')
|
|
class FeatureFlagComponent extends Component {
|
|
@service
|
|
feature;
|
|
|
|
@computed('_disabled')
|
|
get disabled() {
|
|
if (this._disabled) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@computed('_flagValue')
|
|
get value() {
|
|
return this._flagValue;
|
|
}
|
|
|
|
set value(value) {
|
|
this.set(`feature.${this.flag}`, value);
|
|
}
|
|
|
|
@computed('flag')
|
|
get for() {
|
|
return `labs-${this.flag}`;
|
|
}
|
|
|
|
@computed('flag')
|
|
get name() {
|
|
return `labs[${this.flag}]`;
|
|
}
|
|
|
|
init() {
|
|
super.init(...arguments);
|
|
|
|
defineProperty(this, '_flagValue', readOnly(`feature.${this.flag}`), function () {
|
|
return this.get(`feature.${this.flag}`);
|
|
});
|
|
}
|
|
}
|
|
|
|
export default FeatureFlagComponent;
|