[web] Remove SubscriptionFormatters, format subscription dates in the frontend (#36409) (#36476)

* Reapply "[web] Remove SubscriptionFormatters, format subscription dates in the…"

This reverts commit 2939e71e5b919529cbb8a602916d5f597d117792.

* Fixup after rename conflict: `nextPaymentDueDate`->`periodEnd`

GitOrigin-RevId: c024a3a2cd08c1f8f9d4c99f9ba6f018d334439e
This commit is contained in:
Antoine Clausse
2026-09-17 11:55:52 +00:00
committed by Copybot
parent a6792af5b1
commit b2139b170c
27 changed files with 154 additions and 205 deletions
@@ -1,20 +0,0 @@
import dateformat from 'dateformat'
function formatDateTime(date) {
if (!date) {
return null
}
return dateformat(date, 'mmmm dS, yyyy h:MM TT Z', true)
}
function formatDate(date) {
if (!date) {
return null
}
return dateformat(date, 'mmmm dS, yyyy', true)
}
export default {
formatDateTime,
formatDate,
}
@@ -5,7 +5,6 @@ import PlansLocator from './PlansLocator.mjs'
import { getLocalizedPlanPricing } from './PriceVersions.mjs'
import { isStandaloneAiAddOnPlanCode } from './AiHelper.mjs'
import PaymentProviderEntities from './PaymentProviderEntities.mjs'
import SubscriptionFormatters from './SubscriptionFormatters.mjs'
import SubscriptionLocator from './SubscriptionLocator.mjs'
import InstitutionsGetter from '../Institutions/InstitutionsGetter.mjs'
import InstitutionsManager from '../Institutions/InstitutionsManager.mjs'
@@ -257,9 +256,9 @@ async function buildUsersSubscriptionViewModel(user, locale = 'en') {
}
})
const totalLicenses = (plan.membersLimit || 0) + additionalLicenses
const isInTrial =
paymentRecord.subscription.trialPeriodEnd &&
paymentRecord.subscription.trialPeriodEnd.getTime() > Date.now()
const isInTrial = SubscriptionHelper.isInTrial(
paymentRecord.subscription.trialPeriodEnd
)
let isEligibleForPause = false
const commonPauseConditions =
@@ -302,18 +301,10 @@ async function buildUsersSubscriptionViewModel(user, locale = 'en') {
additionalLicenses,
addOns,
totalLicenses,
nextPaymentDueAt: SubscriptionFormatters.formatDateTime(
paymentRecord.subscription.periodEnd
),
nextPaymentDueDate: SubscriptionFormatters.formatDate(
paymentRecord.subscription.periodEnd
),
periodEnd: paymentRecord.subscription.periodEnd,
currency: paymentRecord.subscription.currency,
planPrice: paymentRecord.subscription.planPrice,
state: paymentRecord.subscription.state,
trialEndsAtFormatted: SubscriptionFormatters.formatDateTime(
paymentRecord.subscription.trialPeriodEnd
),
trialEndsAt: paymentRecord.subscription.trialPeriodEnd,
activeCoupons,
accountEmail: paymentRecord.account.email,