mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-24 11:22:19 +03:00
f07940f0e7
no issue - find+replace to make service injection style consistent and take up much less space at the top of files that used multi-line syntax
52 lines
1.2 KiB
JavaScript
52 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;
|