mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-14 09:52:09 +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
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import Component from '@glimmer/component';
|
|
import {action} from '@ember/object';
|
|
import {getSymbol} from 'ghost-admin/utils/currency';
|
|
import {inject as service} from '@ember/service';
|
|
import {tracked} from '@glimmer/tracking';
|
|
|
|
export default class extends Component {
|
|
@service membersUtils;
|
|
@service ghostPaths;
|
|
@service ajax;
|
|
@service store;
|
|
@service config;
|
|
|
|
@tracked showProductModal = false;
|
|
@tracked productModel = null;
|
|
|
|
get product() {
|
|
return this.args.product;
|
|
}
|
|
|
|
get productCurrency() {
|
|
if (this.isFreeProduct) {
|
|
const firstPaidProduct = this.args.products.find((product) => {
|
|
return product.type === 'paid';
|
|
});
|
|
return firstPaidProduct?.monthlyPrice?.currency || 'usd';
|
|
} else {
|
|
return this.product?.monthlyPrice?.currency;
|
|
}
|
|
}
|
|
|
|
get isPaidProduct() {
|
|
return this.product.type === 'paid';
|
|
}
|
|
|
|
get hasCurrencySymbol() {
|
|
const currencySymbol = getSymbol(this.product?.monthlyPrice?.currency);
|
|
return currencySymbol?.length !== 3;
|
|
}
|
|
|
|
get isFreeProduct() {
|
|
return this.product.type === 'free';
|
|
}
|
|
|
|
@action
|
|
async openEditProduct(product) {
|
|
this.args.openEditProduct(product);
|
|
}
|
|
}
|