@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).
70 lines (69 loc) • 2.7 kB
JSX
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DeliveryCity = DeliveryCity;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _supportedCountries = require("../helpers/supportedCountries");
function DeliveryCity(_ref) {
var _ref$hasError = _ref.hasError,
hasError = _ref$hasError === void 0 ? false : _ref$hasError,
_ref$value = _ref.value,
value = _ref$value === void 0 ? '' : _ref$value,
_ref$isDisabled = _ref.isDisabled,
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
_ref$country = _ref.country,
country = _ref$country === void 0 ? 'GBR' : _ref$country;
var inputWrapperClassName = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--text', {
'o-forms-input--invalid': hasError
}]);
var inputPlaceholder = {
GBR: 'e.g. Bath',
USA: 'e.g. Los Angeles',
CAN: 'e.g. Montreal',
ARE: 'e.g. Dubai'
};
var shippingZone = (0, _supportedCountries.identifyShippingZone)(country);
var labelMapping = {
ARE: 'Emirate or City',
APAC: 'City/Prefecture',
DEFAULT: 'City'
};
var inputLabel = labelMapping[shippingZone] ? labelMapping[shippingZone] : labelMapping['DEFAULT'];
return /*#__PURE__*/_react["default"].createElement("label", {
id: "deliveryCityField",
className: "o-forms-field ncf__validation-error",
"data-validate": "required",
htmlFor: "deliveryCity"
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title"
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title__main"
}, inputLabel)), /*#__PURE__*/_react["default"].createElement("span", {
className: inputWrapperClassName
}, /*#__PURE__*/_react["default"].createElement("input", {
type: "text",
id: "deliveryCity",
name: "deliveryCity",
"data-trackable": "field-deliveryCity",
autoComplete: "address-level2",
placeholder: inputPlaceholder[country] || '',
maxLength: 40,
"aria-required": "true",
required: true,
disabled: isDisabled,
defaultValue: value
}), /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-input__error"
}, "Please enter a valid city or town")));
}
DeliveryCity.propTypes = {
hasError: _propTypes["default"].bool,
value: _propTypes["default"].string,
isDisabled: _propTypes["default"].bool,
maxlength: _propTypes["default"].number,
country: _propTypes["default"].string
};