@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).
80 lines (79 loc) • 3.33 kB
JSX
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Province = Province;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _nCommonStaticData = require("n-common-static-data");
var defaultProvinces = _nCommonStaticData.canadianProvinces.provinces;
function Province(_ref) {
var value = _ref.value,
_ref$fieldId = _ref.fieldId,
fieldId = _ref$fieldId === void 0 ? 'provinceField' : _ref$fieldId,
_ref$selectId = _ref.selectId,
selectId = _ref$selectId === void 0 ? 'province' : _ref$selectId,
_ref$hasError = _ref.hasError,
hasError = _ref$hasError === void 0 ? false : _ref$hasError,
_ref$isHidden = _ref.isHidden,
isHidden = _ref$isHidden === void 0 ? false : _ref$isHidden,
_ref$isBillingProvinc = _ref.isBillingProvince,
isBillingProvince = _ref$isBillingProvinc === void 0 ? false : _ref$isBillingProvinc,
_ref$isDisabled = _ref.isDisabled,
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
_ref$provinces = _ref.provinces,
provinces = _ref$provinces === void 0 ? defaultProvinces : _ref$provinces;
var fieldClassNames = (0, _classnames["default"])(['o-forms-field', {
ncf__hidden: isHidden
}]);
var inputWrapperClassNames = (0, _classnames["default"])(['o-forms-input', 'o-forms-input--select', {
'o-forms-input--invalid': hasError
}]);
return /*#__PURE__*/_react["default"].createElement("label", {
id: fieldId,
className: fieldClassNames,
"data-validate": "required",
htmlFor: selectId
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title"
}, /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-title__main"
}, isBillingProvince ? 'Billing ' : '', "Province")), /*#__PURE__*/_react["default"].createElement("span", {
className: inputWrapperClassNames
}, /*#__PURE__*/_react["default"].createElement("select", {
id: selectId,
"aria-required": "true",
required: true,
name: isBillingProvince ? 'billingProvince' : 'province',
"data-trackable": "field-province",
disabled: isDisabled,
defaultValue: value
}, /*#__PURE__*/_react["default"].createElement("option", {
disabled: true,
value: ""
}, "Please select a province"), provinces.map(function (_ref2) {
var code = _ref2.code,
name = _ref2.name;
return /*#__PURE__*/_react["default"].createElement("option", {
key: code,
value: code
}, name);
})), /*#__PURE__*/_react["default"].createElement("span", {
className: "o-forms-input__error"
}, "Please select your province.")));
}
Province.propTypes = {
value: _propTypes["default"].string,
fieldId: _propTypes["default"].string,
selectId: _propTypes["default"].string,
hasError: _propTypes["default"].bool,
isHidden: _propTypes["default"].bool,
isBillingProvince: _propTypes["default"].bool,
isDisabled: _propTypes["default"].bool,
provinces: _propTypes["default"].arrayOf(_propTypes["default"].shape({
code: _propTypes["default"].string,
name: _propTypes["default"].string
}))
};