From 7f84cee940d816e3c94a318e6fad9ab63bb69753 Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Tue, 16 Feb 2021 12:07:53 -0600 Subject: [PATCH] UX: Improve usability of purchase page (#54) Commit does 3 things: Remove the duplicative currency abbreviation in favor of the currency symbol alone Reorders plans by the cost in ascending order. Fixes a flexbox button bug --- .../discourse/components/payment-options.js.es6 | 8 ++++++++ .../javascripts/discourse/helpers/format-currency.js.es6 | 2 +- .../discourse/templates/components/payment-options.hbs | 2 +- assets/stylesheets/common/subscribe.scss | 1 + test/javascripts/components/payment-plan-test.js.es6 | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/assets/javascripts/discourse/components/payment-options.js.es6 b/assets/javascripts/discourse/components/payment-options.js.es6 index b39beb3..d555752 100644 --- a/assets/javascripts/discourse/components/payment-options.js.es6 +++ b/assets/javascripts/discourse/components/payment-options.js.es6 @@ -1,6 +1,14 @@ import Component from "@ember/component"; +import discourseComputed from "discourse-common/utils/decorators"; export default Component.extend({ + @discourseComputed("plans") + orderedPlans(plans) { + if (plans) { + return plans.sort((a, b) => (a.unit_amount > b.unit_amount ? 1 : -1)); + } + }, + didInsertElement() { this._super(...arguments); if (this.plans && this.plans.length === 1) { diff --git a/assets/javascripts/discourse/helpers/format-currency.js.es6 b/assets/javascripts/discourse/helpers/format-currency.js.es6 index 1c0d2e6..a4b637c 100644 --- a/assets/javascripts/discourse/helpers/format-currency.js.es6 +++ b/assets/javascripts/discourse/helpers/format-currency.js.es6 @@ -24,5 +24,5 @@ export default Helper.helper(function (params) { currencySign = "$"; } - return currencySign + params.map((p) => p.toUpperCase()).join(" "); + return currencySign + params[1]; }); diff --git a/assets/javascripts/discourse/templates/components/payment-options.hbs b/assets/javascripts/discourse/templates/components/payment-options.hbs index 62552fa..8e2d6c2 100644 --- a/assets/javascripts/discourse/templates/components/payment-options.hbs +++ b/assets/javascripts/discourse/templates/components/payment-options.hbs @@ -3,7 +3,7 @@

- {{#each plans as |plan|}} + {{#each orderedPlans as |plan|}} {{payment-plan plan=plan selectedPlan=selectedPlan clickPlan=(action "clickPlan")}} {{/each}}
diff --git a/assets/stylesheets/common/subscribe.scss b/assets/stylesheets/common/subscribe.scss index c571235..82480a2 100644 --- a/assets/stylesheets/common/subscribe.scss +++ b/assets/stylesheets/common/subscribe.scss @@ -3,6 +3,7 @@ justify-content: space-around; .btn-discourse-subscriptions-subscribe { + flex-direction: column; padding: 10px 20px; div { margin-bottom: 5px; diff --git a/test/javascripts/components/payment-plan-test.js.es6 b/test/javascripts/components/payment-plan-test.js.es6 index 8da2f2c..0bd3973 100644 --- a/test/javascripts/components/payment-plan-test.js.es6 +++ b/test/javascripts/components/payment-plan-test.js.es6 @@ -36,7 +36,7 @@ componentTest("Payment plan subscription button rendered", { find(".btn-discourse-subscriptions-subscribe:first-child .amount") .text() .trim(), - "$AUD 44.99", + "$44.99", "The plan amount and currency is shown" ); },