@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).
207 lines (206 loc) • 16.4 kB
JSX
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AcceptTerms = AcceptTerms;
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; }
var DEFAULT_AGE_RESTRICTION = '16';
var DEFAULT_PRIVACY_POLICIES_POSITION = 'top';
function AcceptTerms(_ref) {
var _ref$withPrivacyPolic = _ref.withPrivacyPolicyTerms,
withPrivacyPolicyTerms = _ref$withPrivacyPolic === void 0 ? false : _ref$withPrivacyPolic,
_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$isChecked = _ref.isChecked,
isChecked = _ref$isChecked === void 0 ? false : _ref$isChecked,
_ref$isB2b = _ref.isB2b,
isB2b = _ref$isB2b === void 0 ? false : _ref$isB2b,
_ref$isB2cPartnership = _ref.isB2cPartnership,
isB2cPartnership = _ref$isB2cPartnership === void 0 ? false : _ref$isB2cPartnership,
_ref$ageRestriction = _ref.ageRestriction,
ageRestriction = _ref$ageRestriction === void 0 ? DEFAULT_AGE_RESTRICTION : _ref$ageRestriction,
_ref$isEmbedded = _ref.isEmbedded,
isEmbedded = _ref$isEmbedded === void 0 ? false : _ref$isEmbedded,
_ref$isCorpSignup = _ref.isCorpSignup,
isCorpSignup = _ref$isCorpSignup === void 0 ? false : _ref$isCorpSignup,
_ref$isTrial = _ref.isTrial,
isTrial = _ref$isTrial === void 0 ? false : _ref$isTrial,
_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$isPrintProduct = _ref.isPrintProduct,
isPrintProduct = _ref$isPrintProduct === void 0 ? false : _ref$isPrintProduct,
_ref$isSingleTerm = _ref.isSingleTerm,
isSingleTerm = _ref$isSingleTerm === void 0 ? false : _ref$isSingleTerm,
_ref$isDeferredBillin = _ref.isDeferredBilling,
isDeferredBilling = _ref$isDeferredBillin === void 0 ? false : _ref$isDeferredBillin,
_ref$hideConfirmTerms = _ref.hideConfirmTermsAndConditions,
hideConfirmTermsAndConditions = _ref$hideConfirmTerms === void 0 ? false : _ref$hideConfirmTerms,
children = _ref.children,
_ref$privacyPoliciesP = _ref.privacyPoliciesPosition,
privacyPoliciesPosition = _ref$privacyPoliciesP === void 0 ? DEFAULT_PRIVACY_POLICIES_POSITION : _ref$privacyPoliciesP;
var divProps = _objectSpread({
id: 'acceptTermsField',
className: 'o-forms-field o-layout-typography ncf__validation-error',
'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 = _objectSpread({
id: 'termsAcceptance',
type: 'checkbox',
name: 'termsAcceptance',
value: 'true',
'data-trackable': 'field-terms',
'aria-required': 'true',
required: true
}, isChecked && {
defaultChecked: true
});
var privacyPolicyTerms = /*#__PURE__*/_react["default"].createElement("div", {
className: "privacy-policy-terms"
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o3-type-body-base consent-text--".concat(privacyPoliciesPosition)
}, "For more information about how we use your data, please refer to our", ' ', /*#__PURE__*/_react["default"].createElement("a", {
href: "https://help.ft.com/legal-privacy/privacy-policy/",
target: "_blank",
rel: "noopener noreferrer",
"data-trackable": "privacy-policy-info"
}, "privacy"), ' ', "and\xA0", /*#__PURE__*/_react["default"].createElement("a", {
href: "https://help.ft.com/legal-privacy/cookies/",
target: "_blank",
rel: "noopener noreferrer",
"data-trackable": "cookies-info"
}, "cookie"), ' ', "policies."), !hideConfirmTermsAndConditions && /*#__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 o3-type-body-base"
}, "I confirm that I am ", ageRestriction, " years or older and agree to the full", ' ', /*#__PURE__*/_react["default"].createElement("a", {
href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
target: isEmbedded ? '_top' : '_blank',
rel: "noopener noreferrer",
"data-trackable": "terms-and-conditions"
}, "Terms & Conditions"), "."), /*#__PURE__*/_react["default"].createElement("p", {
className: "o-forms-input__error"
}, "Please accept our terms & conditions")), children && /*#__PURE__*/_react["default"].createElement("div", {
className: "children-container"
}, children));
var b2bTerms = isB2b ? /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-b2b"
}, "By submitting this form, you indicate your consent to also being contacted by Financial Times by email, post, or phone about our other products, services or special offers unless you untick this box.")) : /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-default o3-type-body-base"
}, "I confirm I am ", ageRestriction, " years or older and have read and agree to the", ' ', /*#__PURE__*/_react["default"].createElement("a", {
href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
target: isEmbedded ? '_top' : '_blank',
rel: "noopener noreferrer",
"data-trackable": "terms-and-conditions"
}, "Terms & Conditions"), "."));
var corpSignupTerms = isCorpSignup && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-corp-signup"
}, "Your organisation\u2019s administrator(s) may view basic usage and profile data about your account and have the ability to set up myFT topic follows on your behalf.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-corp-signup"
}, "Basic usage and profile data about your account can include; for example, your job title and profile information, the date you last visited, volume of content consumed, etc.")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-corp-signup"
}, "myFT topics may be selected on your behalf by your company administrator or FT representative for you to follow. You can unfollow these topics or unsubscribe from the myFT digest through the Contact preferences section on myFT.")), isTrial && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-corp-signup"
}, "This trial is to demonstrate the value of a group subscription and we\u2019ll contact you during your trial.")));
var transitionTerms = isTransition && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isSingleTerm && /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-transition 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: "_blank",
rel: "noopener noreferrer"
}, "customer care through chat, phone or email"), ".")), 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 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 signupTerms = isSignup && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isPrintProduct ? /*#__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"), "."))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("span", {
className: "terms-signup 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"), ".")), /*#__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 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 b2cPartnershipTerms = /*#__PURE__*/_react["default"].createElement("label", {
className: [labelClassName, 'checkbox-two-lines'].join(' ')
}, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-input__label o3-type-body-base"
}, "I confirm I am ", ageRestriction, " years or older and have read and agree to the", ' ', /*#__PURE__*/_react["default"].createElement("a", {
href: "http://help.ft.com/help/legal-privacy/terms-conditions/",
target: isEmbedded ? '_top' : '_blank',
rel: "noopener noreferrer",
"data-trackable": "terms-and-conditions"
}, "Terms & Conditions"), "."), /*#__PURE__*/_react["default"].createElement("p", {
className: "o-forms-input__error"
}, "Please accept our terms & conditions"));
return /*#__PURE__*/_react["default"].createElement("div", divProps, isB2cPartnership ? b2cPartnershipTerms : withPrivacyPolicyTerms ? privacyPolicyTerms : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("ul", {
className: "ncf__accept-terms-list"
}, b2bTerms, corpSignupTerms, 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"))));
}
AcceptTerms.propTypes = {
withPrivacyPolicyTerms: _propTypes["default"].bool,
hasError: _propTypes["default"].bool,
isSignup: _propTypes["default"].bool,
isChecked: _propTypes["default"].bool,
isB2b: _propTypes["default"].bool,
isB2cPartnership: _propTypes["default"].bool,
ageRestriction: _propTypes["default"].string,
isEmbedded: _propTypes["default"].bool,
isCorpSignup: _propTypes["default"].bool,
isTrial: _propTypes["default"].bool,
isTransition: _propTypes["default"].bool,
transitionType: _propTypes["default"].string,
isPrintProduct: _propTypes["default"].bool,
isSingleTerm: _propTypes["default"].bool,
isDeferredBilling: _propTypes["default"].bool,
hideConfirmTermsAndConditions: _propTypes["default"].bool,
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
privacyPoliciesPosition: _propTypes["default"].oneOf(['top', 'bottom'])
};