@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
JSX
"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)
};