DEV: Clean up helpers (#279)

* remove an unused helper
* move a single-use helper to its call-site as a getter
* convert `format-currency` to a pure function helper
This commit is contained in:
Jarek Radosz 2025-06-20 21:36:54 +02:00 committed by GitHub
parent 7107966af6
commit fe53f2cbc0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 19 additions and 31 deletions

View File

@ -1,15 +1,25 @@
import Component from "@ember/component"; import Component from "@ember/component";
import { LinkTo } from "@ember/routing"; import { LinkTo } from "@ember/routing";
import { service } from "@ember/service";
import { classNames, tagName } from "@ember-decorators/component"; import { classNames, tagName } from "@ember-decorators/component";
import icon from "discourse/helpers/d-icon"; import icon from "discourse/helpers/d-icon";
import { i18n } from "discourse-i18n"; import { i18n } from "discourse-i18n";
import userViewingSelf from "../../helpers/user-viewing-self";
@tagName("li") @tagName("li")
@classNames("user-main-nav-outlet", "billing") @classNames("user-main-nav-outlet", "billing")
export default class Billing extends Component { export default class Billing extends Component {
@service currentUser;
get viewingSelf() {
return (
this.currentUser &&
this.currentUser.username.toLowerCase() ===
this.model.username.toLowerCase()
);
}
<template> <template>
{{#if (userViewingSelf this.model)}} {{#if this.viewingSelf}}
<LinkTo @route="user.billing"> <LinkTo @route="user.billing">
{{icon "far-credit-card"}} {{icon "far-credit-card"}}
{{i18n "discourse_subscriptions.navigation.billing"}} {{i18n "discourse_subscriptions.navigation.billing"}}

View File

@ -1,6 +1,4 @@
import { helper } from "@ember/component/helper"; export default function formatCurrency(currency, amount) {
export function formatCurrency([currency, amount]) {
let currencySign; let currencySign;
switch (currency.toUpperCase()) { switch (currency.toUpperCase()) {
@ -38,8 +36,6 @@ export function formatCurrency([currency, amount]) {
currencySign = "$"; currencySign = "$";
} }
let formattedAmount = parseFloat(amount).toFixed(2); const formattedAmount = parseFloat(amount).toFixed(2);
return currencySign + formattedAmount; return currencySign + formattedAmount;
} }
export default helper(formatCurrency);

View File

@ -1,7 +0,0 @@
import Helper from "@ember/component/helper";
export default Helper.helper(function (params) {
const payment = params[0];
return `<a href=\"${payment.url}\">${payment.payment_intent_id}</a>`;
});

View File

@ -1,11 +0,0 @@
import User from "discourse/models/user";
export default function userViewingSelf(model) {
if (User.current()) {
return (
User.current().username.toLowerCase() === model.username.toLowerCase()
);
}
return false;
}

View File

@ -1,17 +1,17 @@
import { setupTest } from "ember-qunit"; import { setupTest } from "ember-qunit";
import { module, test } from "qunit"; import { module, test } from "qunit";
import { formatCurrency } from "discourse/plugins/discourse-subscriptions/discourse/helpers/format-currency"; import formatCurrency from "discourse/plugins/discourse-subscriptions/discourse/helpers/format-currency";
module("Subscriptions | Unit | Helper | format-currency", function (hooks) { module("Subscriptions | Unit | Helper | format-currency", function (hooks) {
setupTest(hooks); setupTest(hooks);
test("it formats USD correctly", function (assert) { test("formats USD correctly", function (assert) {
let result = formatCurrency(["USD", 338.2]); const result = formatCurrency("USD", 338.2);
assert.equal(result, "$338.20", "Formats USD correctly"); assert.equal(result, "$338.20", "Formats USD correctly");
}); });
test("it rounds correctly", function (assert) { test("rounds correctly", function (assert) {
let result = formatCurrency(["USD", 338.289]); const result = formatCurrency("USD", 338.289);
assert.equal(result, "$338.29", "Rounds correctly"); assert.equal(result, "$338.29", "Rounds correctly");
}); });
}); });