Ghost/ghost/admin/app/components/gh-feature-flag.js
Elena Baidakova ca46308abe
Added logic for showing feedback form in Labs (#16831)
refs TryGhost/Team#3247
- The feedback form UI is hidden by default
- Enabling “Lexical editor” doesn’t show the feedback form
- Disabling “Lexical editor” shows the feedback form below this lab item
and user can send the feedback
- Refreshing the page or navigating to some other page and then back to
Labs → the form is hidden again
2023-05-19 13:15:25 +04:00

56 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}]`;
}
get testKey() {
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;