support-frontend/app/views/subscriptionCheckout.scala.html (86 lines of code) (raw):

@import admin.settings.{AllSettings, On} @import assets.AssetsResolver @import com.gu.identity.model.{User => IdUser} @import com.gu.support.config._ @import services.pricing.ProductPrices @import views.ViewHelpers._ @import com.gu.support.encoding.CustomCodecs._ @import assets.RefPath @import views.ReactDiv @import com.gu.support.promotions.PromotionCopy @import io.circe.JsonObject @( title: String, mainElement: ReactDiv, js: String, css: String, csrf: Option[String], idUser: Option[IdUser], testMode: Boolean, productPrices: ProductPrices, maybePromotionCopy: Option[PromotionCopy] = None, defaultStripeConfig: StripePublicConfig, testStripeConfig: StripePublicConfig, defaultPayPalConfig: PayPalConfig, testPayPalConfig: PayPalConfig, v2recaptchaConfigPublicKey: String, orderIsAGift: Boolean = false, homeDeliveryPostcodes: Option[List[String]] = None, productCatalog: JsonObject, noIndex: Boolean, )(implicit assets: AssetsResolver, requestHeader: RequestHeader, settings: AllSettings) @main(title = title, mainJsBundle = RefPath(js), mainElement = mainElement, mainStyleBundle = Some(RefPath(css)), csrf = csrf, noindex = noIndex) { <script type="text/javascript"> window.guardian = window.guardian || {}; window.guardian.productPrices = @{Html(outputJson(productPrices))} window.guardian.promotionCopy = @{Html(outputJson(maybePromotionCopy))} window.guardian.orderIsAGift = @orderIsAGift @idUser.map { user => window.guardian.user = { id: "@user.id", email: "@user.primaryEmailAddress", @user.publicFields.displayName.map { displayName => displayName: "@displayName", } @for(firstName <- user.privateFields.firstName; lastName <- user.privateFields.secondName) { firstName: "@firstName", lastName: "@lastName", } @for(address4 <- user.privateFields.address4) { address4: "@address4", } @for(country <- user.privateFields.country) { country: "@country", } }; } window.guardian.stripeKeyDefaultCurrencies = { REGULAR: { default: "@defaultStripeConfig.defaultAccount.rawPublicKey", test: "@testStripeConfig.defaultAccount.rawPublicKey" } }; window.guardian.stripeKeyAustralia = { REGULAR: { default: "@defaultStripeConfig.australiaAccount.rawPublicKey", test: "@testStripeConfig.australiaAccount.rawPublicKey" } }; window.guardian.stripeKeyUnitedStates = window.guardian.stripeKeyDefaultCurrencies; window.guardian.payPalEnvironment = { default: "@defaultPayPalConfig.payPalEnvironment", test: "@testPayPalConfig.payPalEnvironment" }; window.guardian.checkoutPostcodeLookup = @settings.switches.subscriptionsSwitches.checkoutPostcodeLookup.contains(On) window.guardian.v2recaptchaPublicKey = "@v2recaptchaConfigPublicKey" window.guardian.recaptchaEnabled = @settings.switches.recaptchaSwitches.enableRecaptchaFrontend.contains(On) window.guardian.isTestUser = @testMode window.guardian.productCatalog = @Html(outputJson(productCatalog)) </script> @homeDeliveryPostcodes.map { postcodes => <script type="text/javascript"> window.guardian.homeDeliveryPostcodes = @Html(outputJson(postcodes)) </script> } <script defer id="stripe-js" src="https://js.stripe.com/v3/"></script> }