UNPKG

@financial-times/n-conversion-forms

Version:

Containing jsx components and styles for forms included on Accounts and Acquisition apps (next-signup, next-profile, next-retention, etc).

143 lines (142 loc) 11.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.AcceptTermsSubscription = AcceptTermsSubscription; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function AcceptTermsSubscription(_ref) { var _ref$hasError = _ref.hasError, hasError = _ref$hasError === void 0 ? false : _ref$hasError, _ref$isSignup = _ref.isSignup, isSignup = _ref$isSignup === void 0 ? false : _ref$isSignup, _ref$isEmbedded = _ref.isEmbedded, isEmbedded = _ref$isEmbedded === void 0 ? false : _ref$isEmbedded, _ref$isTrial = _ref.isTrial, isTrial = _ref$isTrial === void 0 ? false : _ref$isTrial, _ref$isPrintProduct = _ref.isPrintProduct, isPrintProduct = _ref$isPrintProduct === void 0 ? false : _ref$isPrintProduct, _ref$isSingleTerm = _ref.isSingleTerm, isSingleTerm = _ref$isSingleTerm === void 0 ? false : _ref$isSingleTerm, _ref$isNonRenewingSub = _ref.isNonRenewingSubscriptionTermType, isNonRenewingSubscriptionTermType = _ref$isNonRenewingSub === void 0 ? false : _ref$isNonRenewingSub, _ref$isTransition = _ref.isTransition, isTransition = _ref$isTransition === void 0 ? false : _ref$isTransition, _ref$transitionType = _ref.transitionType, transitionType = _ref$transitionType === void 0 ? null : _ref$transitionType, _ref$isDeferredBillin = _ref.isDeferredBilling, isDeferredBilling = _ref$isDeferredBillin === void 0 ? false : _ref$isDeferredBillin, _ref$additionalClassN = _ref.additionalClassNames, additionalClassNames = _ref$additionalClassN === void 0 ? [] : _ref$additionalClassN; var divProps = _objectSpread({ id: 'acceptTermsField', className: (0, _classnames["default"])(['o-forms-field', 'o-layout-typography', 'ncf__validation-error'].concat((0, _toConsumableArray2["default"])(additionalClassNames))), 'data-validate': 'required,checked' }, isSignup && { 'data-trackable': 'sign-up-terms' }); var labelClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--checkbox', { 'o-forms-input--invalid': hasError }]); var inputProps = { id: 'termsAcceptance', type: 'checkbox', name: 'termsAcceptance', value: 'true', 'data-trackable': 'field-terms', 'aria-required': 'true', required: true }; var autoRenewingTerms = !isSingleTerm && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-auto-renew o3-type-body-base" }, "I give consent for my chosen payment method to be charged automatically at the end of each subscription term until I cancel it by contacting", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: "https://help.ft.com/help/contact-us/", target: isEmbedded ? '_top' : '_blank', rel: "noopener noreferrer" }, "customer care through chat, phone or email"), ".")); if (isNonRenewingSubscriptionTermType) { return /*#__PURE__*/_react["default"].createElement("div", divProps, /*#__PURE__*/_react["default"].createElement("ul", { className: "o3-typography-ul ncf__accept-terms-list" }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition terms-transition--immediate" }, "I give consent for the chosen payment method to be charged automatically.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition terms-transition--immediate" }, "By placing your order subject to the Terms & Conditions (save for section 2) referred to below, you are waiving your statutory right to cancel our contract within 14 days of payment. Your payment is a one-time payment collected at the time of checkout, and unsubscribing or cancelling at any point (whether before or after the 14-day period) will not entitle you to a refund.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition o3-type-body-base" }, "Please see here for the complete", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: "http://help.ft.com/help/legal-privacy/terms-conditions/", target: "_blank", rel: "noopener noreferrer" }, "Terms & Conditions"), "."))), /*#__PURE__*/_react["default"].createElement("label", { className: labelClassName, htmlFor: "termsAcceptance" }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-input__label" }, "I agree to the above terms & conditions."), /*#__PURE__*/_react["default"].createElement("p", { className: "o-forms-input__error" }, "Please accept our terms & conditions"))); } var transitionTerms = isTransition && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, transitionType === 'immediate' ? /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition terms-transition--immediate" }, "By placing my order, my subscription will start immediately and I am aware and agree that I will therefore lose my statutory right to cancel my subscription within 14 days of acceptance of my order. Any notice of cancellation that I provide will only take effect at the end of my subscription period and previously paid amounts are non-refundable, except in the event that there is a fault in the provision of the services.")) : /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition terms-transition--other" }, "By placing my order, I acknowledge that my subscription will start", isSingleTerm ? ' and the chosen payment method will be charged ' : ' ', "on the date given above. Any cancellation notice received after that date will take effect at the end of my subscription term and previously paid amounts are non-refundable.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-transition o3-type-body-base" }, "Find out more about our cancellation policy in our", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: "http://help.ft.com/help/legal-privacy/terms-conditions/", target: "_blank", rel: "noopener noreferrer" }, "Terms & Conditions"), "."))); var deferredBillingTerms = isDeferredBilling && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-deferred" }, "Please note if you fail to make payment for your deferred billing plan within due date your subscription will be automatically cancelled.")); var printSignupTermText = isTrial ? 'Credits for delivery suspension or delivery failure are not available during introductory offer periods.' : 'Credit for delivery suspensions is only available for hand-delivered subscriptions and is limited to a maximum of 48 issues per yearly subscription terms (8 issues per yearly FT Weekend subscription term).'; var printTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-print" }, printSignupTermText)), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-print o3-type-body-base" }, "Find out more about your delivery start date in our", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: "http://help.ft.com/help/legal-privacy/terms-conditions/", target: isEmbedded ? '_top' : '_blank', rel: "noopener noreferrer" }, "Terms & Conditions"), "."))); var nonPrintTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-signup" }, "By placing my order, my subscription will start immediately and I am aware and agree that I will therefore lose my statutory right to cancel my subscription within 14 days of acceptance of my order. Any notice of cancellation that I provide will only take effect at the end of my subscription period and previously paid amounts are non-refundable, except in the event that there is a fault in the provision of the services.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", { className: "terms-signup o3-type-body-base" }, "Find out more about our cancellation policy in our", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: "https://help.ft.com/legal-privacy/terms-and-conditions/", target: isEmbedded ? '_top' : '_blank', rel: "noopener noreferrer" }, "Terms & Conditions"), "."))); var signupTerms = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isPrintProduct ? printTerms : nonPrintTerms); return /*#__PURE__*/_react["default"].createElement("div", divProps, /*#__PURE__*/_react["default"].createElement("ul", { className: "ncf__accept-terms-list" }, autoRenewingTerms, transitionTerms, signupTerms, deferredBillingTerms), /*#__PURE__*/_react["default"].createElement("label", { className: labelClassName, htmlFor: "termsAcceptance" }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-input__label" }, "I agree to the above terms & conditions."), /*#__PURE__*/_react["default"].createElement("p", { className: "o-forms-input__error" }, "Please accept our terms & conditions"))); } AcceptTermsSubscription.propTypes = { hasError: _propTypes["default"].bool, isSignup: _propTypes["default"].bool, isEmbedded: _propTypes["default"].bool, isTrial: _propTypes["default"].bool, isPrintProduct: _propTypes["default"].bool, isSingleTerm: _propTypes["default"].bool, isNonRenewingSubscriptionTermType: _propTypes["default"].bool, isTransition: _propTypes["default"].bool, transitionType: _propTypes["default"].string, isDeferredBilling: _propTypes["default"].bool, additionalClassNames: _propTypes["default"].arrayOf(_propTypes["default"].string) };