UNPKG

@financial-times/n-conversion-forms

Version:

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

77 lines (76 loc) 4.01 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.DeliveryStartDate = DeliveryStartDate; 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 DeliveryStartDate(_ref) { var _ref$hasError = _ref.hasError, hasError = _ref$hasError === void 0 ? false : _ref$hasError, _ref$date = _ref.date, date = _ref$date === void 0 ? '' : _ref$date, _ref$value = _ref.value, value = _ref$value === void 0 ? '' : _ref$value, _ref$min = _ref.min, min = _ref$min === void 0 ? null : _ref$min, _ref$max = _ref.max, max = _ref$max === void 0 ? null : _ref$max, _ref$isDisabled = _ref.isDisabled, isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled, _ref$isAddressUpdate = _ref.isAddressUpdate, isAddressUpdate = _ref$isAddressUpdate === void 0 ? false : _ref$isAddressUpdate; var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', { 'o-forms-input--invalid': hasError }]); var inputProps = _objectSpread(_objectSpread(_objectSpread({ type: 'date', id: 'deliveryStartDate', name: 'deliveryStartDate' }, min && { min: min }), max && { max: max }), {}, { 'data-trackable': 'field-deliveryStartDate', 'aria-required': 'true', required: true, disabled: isDisabled, defaultValue: value }); var startMessage = isAddressUpdate ? 'We’ll start delivering to this address from:' : 'Your print subscription will start from:'; return /*#__PURE__*/_react["default"].createElement("label", { id: "deliveryStartDateField", className: "o-forms-field ncf__validation-error", "data-validate": "required", htmlFor: inputProps.id }, /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-title" }, /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-title__main", id: "start-date-picker-title-span" }, "Delivery start date"), /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-title__prompt" }, "Earliest available delivery date: ", date)), /*#__PURE__*/_react["default"].createElement("span", { className: inputWrapperClassNames }, /*#__PURE__*/_react["default"].createElement("input", inputProps), /*#__PURE__*/_react["default"].createElement("span", { className: "o-forms-input__error" }, "Please select a valid start date")), /*#__PURE__*/_react["default"].createElement("p", null, startMessage, " ", /*#__PURE__*/_react["default"].createElement("strong", { className: "js-start-date-text" }, date))); } DeliveryStartDate.propTypes = { hasError: _propTypes["default"].bool, date: _propTypes["default"].node, // could be a string or a component that formats the string value: _propTypes["default"].string, min: _propTypes["default"].string, max: _propTypes["default"].string, isDisabled: _propTypes["default"].bool, isAddressUpdate: _propTypes["default"].bool };