@nuskin/shipping-address-form 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -27,6 +27,20 @@ const getFieldLabel = (fieldName, labels, phoneLabelOverride) => {
|
|
|
27
27
|
}
|
|
28
28
|
return labels[`${fieldName}Label`] || ((_labels$formStrings = labels.formStrings) === null || _labels$formStrings === void 0 ? void 0 : _labels$formStrings[fieldName]) || getDefaultFieldLabel(fieldName);
|
|
29
29
|
};
|
|
30
|
+
const CONTROL_TEST_IDS = {
|
|
31
|
+
country: 'qa-address-country',
|
|
32
|
+
saveToAccount: 'qa-address-save-to-account',
|
|
33
|
+
saveAsDefault: 'qa-address-save-as-default',
|
|
34
|
+
submit: 'qa-address-submit',
|
|
35
|
+
cancel: 'qa-address-cancel'
|
|
36
|
+
};
|
|
37
|
+
const CONTROL_IDS = {
|
|
38
|
+
country: 'address-country',
|
|
39
|
+
saveToAccount: 'address-save-to-account',
|
|
40
|
+
saveAsDefault: 'address-save-as-default',
|
|
41
|
+
submit: 'address-submit',
|
|
42
|
+
cancel: 'address-cancel'
|
|
43
|
+
};
|
|
30
44
|
const ShippingAddressForm = ({
|
|
31
45
|
country = 'US',
|
|
32
46
|
language,
|
|
@@ -220,11 +234,12 @@ const ShippingAddressForm = ({
|
|
|
220
234
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
221
235
|
className: "ns-shipping-address-form__field ns-shipping-address-form__field--country-selector",
|
|
222
236
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
223
|
-
htmlFor:
|
|
237
|
+
htmlFor: CONTROL_IDS.country,
|
|
224
238
|
className: "ns-shipping-address-form__label",
|
|
225
239
|
children: labels.countryLabel
|
|
226
240
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("select", {
|
|
227
|
-
id:
|
|
241
|
+
id: CONTROL_IDS.country,
|
|
242
|
+
"data-testid": CONTROL_TEST_IDS.country,
|
|
228
243
|
value: selectedCountry,
|
|
229
244
|
onChange: event => setSelectedCountry(event.target.value),
|
|
230
245
|
className: "ns-shipping-address-form__input",
|
|
@@ -274,6 +289,8 @@ const ShippingAddressForm = ({
|
|
|
274
289
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("label", {
|
|
275
290
|
className: "ns-shipping-address-form__checkbox-label ns-shipping-address-form__checkbox-label--spaced",
|
|
276
291
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
292
|
+
id: CONTROL_IDS.saveToAccount,
|
|
293
|
+
"data-testid": CONTROL_TEST_IDS.saveToAccount,
|
|
277
294
|
type: "checkbox",
|
|
278
295
|
checked: values.saveToAccount,
|
|
279
296
|
onChange: e => setFieldValue('saveToAccount', e.target.checked),
|
|
@@ -284,6 +301,8 @@ const ShippingAddressForm = ({
|
|
|
284
301
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("label", {
|
|
285
302
|
className: "ns-shipping-address-form__checkbox-label",
|
|
286
303
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
304
|
+
id: CONTROL_IDS.saveAsDefault,
|
|
305
|
+
"data-testid": CONTROL_TEST_IDS.saveAsDefault,
|
|
287
306
|
type: "checkbox",
|
|
288
307
|
checked: values.saveAsDefault,
|
|
289
308
|
onChange: e => setFieldValue('saveAsDefault', e.target.checked),
|
|
@@ -297,11 +316,15 @@ const ShippingAddressForm = ({
|
|
|
297
316
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
298
317
|
className: "ns-shipping-address-form__actions",
|
|
299
318
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_foundationUiComponents.NsButton, {
|
|
319
|
+
id: CONTROL_IDS.submit,
|
|
320
|
+
"data-testid": CONTROL_TEST_IDS.submit,
|
|
300
321
|
variant: "contained",
|
|
301
322
|
color: "primary",
|
|
302
323
|
onClick: handleSaveAddress,
|
|
303
324
|
children: showContinueButton ? labels.continueLabel : labels.saveAddressButtonLabel
|
|
304
325
|
}), showCancelButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_foundationUiComponents.NsButton, {
|
|
326
|
+
id: CONTROL_IDS.cancel,
|
|
327
|
+
"data-testid": CONTROL_TEST_IDS.cancel,
|
|
305
328
|
variant: "outlined",
|
|
306
329
|
color: "primary",
|
|
307
330
|
onClick: handleCancel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShippingAddressForm.js","names":["_propTypes","_interopRequireDefault","require","_react","_addressLookup","_interopRequireWildcard","_foundationUiComponents","_useAddressFieldLabels","_useShippingAddressForm","_useShippingFormState","_ShippingField","_shippingStrings","_emailVerify","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getDefaultFieldLabel","fieldName","replace","character","toUpperCase","trim","getFieldLabel","labels","phoneLabelOverride","_labels$formStrings","mobilePhoneLabel","formStrings","ShippingAddressForm","country","language","onAction","address","showSaveCheckbox","showDefaultCheckbox","showCancelButton","showContinueButton","selectedCountry","setSelectedCountry","useState","useAddressFieldLabels","shippingAddressForm","useShippingAddressForm","shippingFields","useMemo","preAddressFields","postAddressFields","isSavePending","setIsSavePending","validationRequestId","setValidationRequestId","phoneCountry","setPhoneCountry","mobilePhoneCountry","hasUserSelectedPhoneCountry","setHasUserSelectedPhoneCountry","setMobilePhoneLabel","emailValidationError","setEmailValidationError","values","setFieldValue","touchField","markAllTouched","resetValidationState","getFieldError","getValidationErrors","getPhoneValidationStatus","useShippingFormState","defaultPhoneCountry","showCheckboxSection","useEffect","availableCountries","countries","length","hasLoggedInCountry","some","countryOption","code","nextSelectedCountry","currentValue","isMounted","getShippingLabels","then","resolvedLabels","saveToAccount","saveAsDefault","validateEmailValue","email","trimmedEmail","isEmailSyntaxValid","_labels$formStrings2","invalidEmail","emailInfo","getEmailInfo","hasInvalidEmail","isFormatValid","isDomainValid","_labels$formStrings3","handleAddressSelect","data","_data$status","type","shippingValidationErrors","isAddressLookupComplete","status","completeness","isShippingComplete","emailValue","isEmailValid","phoneValidationStatus","reduce","acc","fieldConfig","field","validationStatus","phone","handlePhoneCountryChange","nextCountry","resolvedCountry","handleSaveAddress","handleCancel","handleFieldBlur","renderLayoutItem","layoutItem","index","component","jsx","className","children","strings","formDefinition","addressForm","deferFormLookup","onAddressSelect","showManualValidateButton","jsxs","htmlFor","countryLabel","id","value","onChange","event","target","map","name","find","label","error","SUPPORTED_COUNTRIES","nextValue","onBlur","onPhoneCountryChange","layout","filter","Fragment","checked","agreeToSaveAddressLabel","disabled","setDefaultLabel","NsButton","variant","color","onClick","continueLabel","saveAddressButtonLabel","cancelLabel","propTypes","PropTypes","string","func","bool","shape","_default","exports"],"sources":["../src/ShippingAddressForm.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useEffect, useMemo, useState } from 'react';\nimport AddressLookup, { SUPPORTED_COUNTRIES } from '@nuskin/address-lookup'\nimport { NsButton } from '@nuskin/foundation-ui-components';\nimport 'react-phone-number-input/style.css'\nimport './styles/shippingAddressForm.css'\nimport useAddressFieldLabels from './hooks/useAddressFieldLabels';\nimport useShippingAddressForm from './hooks/useShippingAddressForm';\nimport useShippingFormState from './hooks/useShippingFormState';\nimport ShippingField from './components/ShippingField';\nimport { getShippingLabels } from './utils/shippingStrings.js';\nimport { getEmailInfo, isEmailSyntaxValid } from './utils/emailVerify';\n\nconst getDefaultFieldLabel = (fieldName = '') =>\n fieldName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (character) => character.toUpperCase())\n .trim();\n\nconst getFieldLabel = (fieldName, labels, phoneLabelOverride) => {\n if (fieldName === 'mobilePhone') {\n return phoneLabelOverride || labels.mobilePhoneLabel;\n }\n\n return labels[`${fieldName}Label`] || labels.formStrings?.[fieldName] || getDefaultFieldLabel(fieldName);\n};\n\nconst ShippingAddressForm = ({\n country = 'US',\n language,\n onAction,\n address = null,\n showSaveCheckbox = true,\n showDefaultCheckbox = true,\n showCancelButton = true,\n showContinueButton = false\n}) => {\n const [selectedCountry, setSelectedCountry] = useState(country)\n const labels = useAddressFieldLabels(selectedCountry, language)\n const { shippingAddressForm } = useShippingAddressForm(country)\n const shippingFields = useMemo(\n () => [\n ...(shippingAddressForm.preAddressFields || []),\n ...(shippingAddressForm.postAddressFields || [])\n ],\n [shippingAddressForm.postAddressFields, shippingAddressForm.preAddressFields]\n )\n const [isSavePending, setIsSavePending] = useState(false)\n const [validationRequestId, setValidationRequestId] = useState(0)\n const [phoneCountry, setPhoneCountry] = useState(address?.mobilePhoneCountry || country)\n const [hasUserSelectedPhoneCountry, setHasUserSelectedPhoneCountry] = useState(false)\n const [mobilePhoneLabel, setMobilePhoneLabel] = useState('')\n const [emailValidationError, setEmailValidationError] = useState('')\n const {\n values,\n setFieldValue,\n touchField,\n markAllTouched,\n resetValidationState,\n getFieldError,\n getValidationErrors,\n getPhoneValidationStatus\n } = useShippingFormState({\n address,\n shippingFields,\n labels,\n defaultPhoneCountry: address?.mobilePhoneCountry || selectedCountry || country\n });\n const showCheckboxSection = showSaveCheckbox || showDefaultCheckbox;\n\n useEffect(() => {\n setSelectedCountry(country)\n setHasUserSelectedPhoneCountry(false)\n }, [address, country])\n\n useEffect(() => {\n const availableCountries = shippingAddressForm.countries || [];\n\n if (availableCountries.length === 0) {\n setSelectedCountry(country);\n return;\n }\n\n const hasLoggedInCountry = availableCountries.some((countryOption) => countryOption.code === country);\n const nextSelectedCountry = hasLoggedInCountry ? country : availableCountries[0].code;\n\n setSelectedCountry((currentValue) => (\n availableCountries.some((countryOption) => countryOption.code === currentValue) ? currentValue : nextSelectedCountry\n ));\n }, [country, shippingAddressForm.countries])\n\n useEffect(() => {\n if (address?.mobilePhoneCountry) {\n setPhoneCountry(address.mobilePhoneCountry);\n return;\n }\n\n if (!hasUserSelectedPhoneCountry) {\n setPhoneCountry(selectedCountry || country);\n }\n }, [address?.mobilePhoneCountry, country, hasUserSelectedPhoneCountry, selectedCountry])\n\n useEffect(() => {\n let isMounted = true;\n\n getShippingLabels({ country: phoneCountry || country, language }).then((resolvedLabels) => {\n if (isMounted) {\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, language, phoneCountry])\n\n useEffect(() => {\n if (!values.saveToAccount && values.saveAsDefault) {\n setFieldValue('saveAsDefault', false);\n }\n }, [setFieldValue, values.saveAsDefault, values.saveToAccount])\n\n const validateEmailValue = async (email) => {\n const trimmedEmail = typeof email === 'string' ? email.trim() : '';\n\n if (!trimmedEmail) {\n setEmailValidationError('');\n return true;\n }\n\n if (!isEmailSyntaxValid(trimmedEmail)) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n const emailInfo = await getEmailInfo(trimmedEmail);\n const hasInvalidEmail =\n emailInfo &&\n (!emailInfo.isFormatValid || !emailInfo.isDomainValid);\n\n if (hasInvalidEmail) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n setEmailValidationError('');\n return true;\n };\n\n const handleAddressSelect = async (data) => {\n if (!isSavePending || data?.type !== 'validation-request') {\n return;\n }\n\n setIsSavePending(false);\n\n const shippingValidationErrors = getValidationErrors();\n const isAddressLookupComplete = data?.status?.completeness === 'complete';\n const isShippingComplete = shippingValidationErrors.length === 0;\n\n if (!isAddressLookupComplete || !isShippingComplete) {\n return;\n }\n\n const emailValue = typeof values.email === 'string' ? values.email.trim() : '';\n\n if (emailValue) {\n const isEmailValid = await validateEmailValue(emailValue);\n\n if (!isEmailValid) {\n return;\n }\n }\n\n const phoneValidationStatus = getPhoneValidationStatus();\n\n onAction?.({\n type: 'save',\n data: {\n ...data.address,\n ...shippingFields.reduce((acc, fieldConfig) => {\n acc[fieldConfig.field] = values[fieldConfig.field];\n return acc;\n }, {}),\n mobilePhoneCountry: phoneCountry,\n country: selectedCountry,\n saveToAccount: values.saveToAccount,\n saveAsDefault: values.saveAsDefault\n },\n validationStatus: {\n ...data.status,\n ...(phoneValidationStatus ? { phone: phoneValidationStatus } : {})\n }\n });\n }\n\n const handlePhoneCountryChange = async (nextCountry) => {\n const resolvedCountry = nextCountry || selectedCountry || country;\n\n setHasUserSelectedPhoneCountry(true);\n setPhoneCountry(resolvedCountry);\n\n const resolvedLabels = await getShippingLabels({\n country: resolvedCountry,\n language\n });\n\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n };\n\n const handleSaveAddress = () => {\n setEmailValidationError('');\n markAllTouched();\n setIsSavePending(true);\n setValidationRequestId((currentValue) => currentValue + 1);\n };\n\n const handleCancel = () => {\n setIsSavePending(false);\n setEmailValidationError('');\n resetValidationState();\n onAction?.({ type: 'cancel' });\n };\n\n const handleFieldBlur = async (fieldName) => {\n touchField(fieldName);\n\n if (fieldName === 'email') {\n await validateEmailValue(values.email);\n }\n };\n\n const renderLayoutItem = (layoutItem, index) => {\n if (layoutItem.type === 'component' && layoutItem.component === 'addressLookup') {\n return (\n <div\n className='ns-shipping-address-form__component ns-shipping-address-form__component--full'\n key={`addressLookup-${index}`}\n >\n <AddressLookup\n country={selectedCountry}\n language={language}\n strings={labels.formStrings}\n formDefinition={shippingAddressForm.addressForm}\n deferFormLookup={true}\n validationRequestId={validationRequestId}\n onAddressSelect={handleAddressSelect}\n address={address}\n showManualValidateButton={true}\n />\n </div>\n );\n }\n\n if (layoutItem.type === 'component' && layoutItem.component === 'countrySelector') {\n return (\n <div\n className='ns-shipping-address-form__field ns-shipping-address-form__field--country-selector'\n key='country-selector'\n >\n <label\n htmlFor='shippingAddressCountry'\n className='ns-shipping-address-form__label'\n >\n {labels.countryLabel}\n </label>\n <select\n id='shippingAddressCountry'\n value={selectedCountry}\n onChange={(event) => setSelectedCountry(event.target.value)}\n className='ns-shipping-address-form__input'\n >\n {shippingAddressForm.countries.map((countryOption) => (\n <option key={countryOption.code} value={countryOption.code}>\n {countryOption.name}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n if (layoutItem.type === 'field') {\n const fieldConfig = shippingFields.find((field) => field.field === layoutItem.field);\n\n if (!fieldConfig) {\n return null;\n }\n\n return (\n <ShippingField\n key={fieldConfig.field}\n fieldConfig={fieldConfig}\n label={getFieldLabel(fieldConfig.field, labels, mobilePhoneLabel)}\n value={values[fieldConfig.field]}\n error={fieldConfig.field === 'email' ? (emailValidationError || getFieldError(fieldConfig)) : getFieldError(fieldConfig)}\n country={phoneCountry}\n countries={SUPPORTED_COUNTRIES}\n onChange={(nextValue) => {\n if (fieldConfig.field === 'email' && emailValidationError) {\n setEmailValidationError('');\n }\n\n setFieldValue(fieldConfig.field, nextValue);\n }}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onPhoneCountryChange={handlePhoneCountryChange}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className='ns-shipping-address-form'>\n {shippingAddressForm.layout.some(\n (layoutItem) => layoutItem.type === 'component' && layoutItem.component === 'countrySelector'\n ) && renderLayoutItem({ type: 'component', component: 'countrySelector' }, 'country-selector')}\n <div className='ns-shipping-address-form__layout'>\n {shippingAddressForm.layout\n .filter((layoutItem) => !(layoutItem.type === 'component' && layoutItem.component === 'countrySelector'))\n .map(renderLayoutItem)}\n </div>\n {showCheckboxSection && (\n <>\n <hr className='ns-shipping-address-form__separator' />\n {showSaveCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label ns-shipping-address-form__checkbox-label--spaced'>\n <input\n type=\"checkbox\"\n checked={values.saveToAccount}\n onChange={(e) => setFieldValue('saveToAccount', e.target.checked)}\n className='ns-shipping-address-form__checkbox'\n />\n {labels.agreeToSaveAddressLabel}\n </label>\n </div>\n )}\n {showDefaultCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label'>\n <input\n type=\"checkbox\"\n checked={values.saveAsDefault}\n onChange={(e) => setFieldValue('saveAsDefault', e.target.checked)}\n className='ns-shipping-address-form__checkbox'\n disabled={!values.saveToAccount}\n />\n {labels.setDefaultLabel}\n </label>\n </div>\n )}\n <hr className='ns-shipping-address-form__separator' />\n </>\n )}\n <div className='ns-shipping-address-form__actions'>\n <NsButton\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSaveAddress}\n >\n {showContinueButton ? labels.continueLabel : labels.saveAddressButtonLabel}\n </NsButton>\n {showCancelButton && (\n <NsButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={handleCancel}\n >\n {labels.cancelLabel}\n </NsButton>\n )}\n </div>\n </div>\n );\n};\n\nShippingAddressForm.propTypes = {\n country: PropTypes.string,\n language: PropTypes.string,\n onAction: PropTypes.func,\n showSaveCheckbox: PropTypes.bool,\n showDefaultCheckbox: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n showContinueButton: PropTypes.bool,\n address: PropTypes.shape({\n mobilePhoneCountry: PropTypes.string,\n saveToAccount: PropTypes.bool,\n saveAsDefault: PropTypes.bool\n })\n};\n\nexport default ShippingAddressForm;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ShippingAddressForm.js","names":["_propTypes","_interopRequireDefault","require","_react","_addressLookup","_interopRequireWildcard","_foundationUiComponents","_useAddressFieldLabels","_useShippingAddressForm","_useShippingFormState","_ShippingField","_shippingStrings","_emailVerify","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getDefaultFieldLabel","fieldName","replace","character","toUpperCase","trim","getFieldLabel","labels","phoneLabelOverride","_labels$formStrings","mobilePhoneLabel","formStrings","CONTROL_TEST_IDS","country","saveToAccount","saveAsDefault","submit","cancel","CONTROL_IDS","ShippingAddressForm","language","onAction","address","showSaveCheckbox","showDefaultCheckbox","showCancelButton","showContinueButton","selectedCountry","setSelectedCountry","useState","useAddressFieldLabels","shippingAddressForm","useShippingAddressForm","shippingFields","useMemo","preAddressFields","postAddressFields","isSavePending","setIsSavePending","validationRequestId","setValidationRequestId","phoneCountry","setPhoneCountry","mobilePhoneCountry","hasUserSelectedPhoneCountry","setHasUserSelectedPhoneCountry","setMobilePhoneLabel","emailValidationError","setEmailValidationError","values","setFieldValue","touchField","markAllTouched","resetValidationState","getFieldError","getValidationErrors","getPhoneValidationStatus","useShippingFormState","defaultPhoneCountry","showCheckboxSection","useEffect","availableCountries","countries","length","hasLoggedInCountry","some","countryOption","code","nextSelectedCountry","currentValue","isMounted","getShippingLabels","then","resolvedLabels","validateEmailValue","email","trimmedEmail","isEmailSyntaxValid","_labels$formStrings2","invalidEmail","emailInfo","getEmailInfo","hasInvalidEmail","isFormatValid","isDomainValid","_labels$formStrings3","handleAddressSelect","data","_data$status","type","shippingValidationErrors","isAddressLookupComplete","status","completeness","isShippingComplete","emailValue","isEmailValid","phoneValidationStatus","reduce","acc","fieldConfig","field","validationStatus","phone","handlePhoneCountryChange","nextCountry","resolvedCountry","handleSaveAddress","handleCancel","handleFieldBlur","renderLayoutItem","layoutItem","index","component","jsx","className","children","strings","formDefinition","addressForm","deferFormLookup","onAddressSelect","showManualValidateButton","jsxs","htmlFor","countryLabel","id","value","onChange","event","target","map","name","find","label","error","SUPPORTED_COUNTRIES","nextValue","onBlur","onPhoneCountryChange","layout","filter","Fragment","checked","agreeToSaveAddressLabel","disabled","setDefaultLabel","NsButton","variant","color","onClick","continueLabel","saveAddressButtonLabel","cancelLabel","propTypes","PropTypes","string","func","bool","shape","_default","exports"],"sources":["../src/ShippingAddressForm.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useEffect, useMemo, useState } from 'react';\nimport AddressLookup, { SUPPORTED_COUNTRIES } from '@nuskin/address-lookup'\nimport { NsButton } from '@nuskin/foundation-ui-components';\nimport 'react-phone-number-input/style.css'\nimport './styles/shippingAddressForm.css'\nimport useAddressFieldLabels from './hooks/useAddressFieldLabels';\nimport useShippingAddressForm from './hooks/useShippingAddressForm';\nimport useShippingFormState from './hooks/useShippingFormState';\nimport ShippingField from './components/ShippingField';\nimport { getShippingLabels } from './utils/shippingStrings.js';\nimport { getEmailInfo, isEmailSyntaxValid } from './utils/emailVerify';\n\nconst getDefaultFieldLabel = (fieldName = '') =>\n fieldName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (character) => character.toUpperCase())\n .trim();\n\nconst getFieldLabel = (fieldName, labels, phoneLabelOverride) => {\n if (fieldName === 'mobilePhone') {\n return phoneLabelOverride || labels.mobilePhoneLabel;\n }\n\n return labels[`${fieldName}Label`] || labels.formStrings?.[fieldName] || getDefaultFieldLabel(fieldName);\n};\n\nconst CONTROL_TEST_IDS = {\n country: 'qa-address-country',\n saveToAccount: 'qa-address-save-to-account',\n saveAsDefault: 'qa-address-save-as-default',\n submit: 'qa-address-submit',\n cancel: 'qa-address-cancel'\n};\n\nconst CONTROL_IDS = {\n country: 'address-country',\n saveToAccount: 'address-save-to-account',\n saveAsDefault: 'address-save-as-default',\n submit: 'address-submit',\n cancel: 'address-cancel'\n};\n\nconst ShippingAddressForm = ({\n country = 'US',\n language,\n onAction,\n address = null,\n showSaveCheckbox = true,\n showDefaultCheckbox = true,\n showCancelButton = true,\n showContinueButton = false\n}) => {\n const [selectedCountry, setSelectedCountry] = useState(country)\n const labels = useAddressFieldLabels(selectedCountry, language)\n const { shippingAddressForm } = useShippingAddressForm(country)\n const shippingFields = useMemo(\n () => [\n ...(shippingAddressForm.preAddressFields || []),\n ...(shippingAddressForm.postAddressFields || [])\n ],\n [shippingAddressForm.postAddressFields, shippingAddressForm.preAddressFields]\n )\n const [isSavePending, setIsSavePending] = useState(false)\n const [validationRequestId, setValidationRequestId] = useState(0)\n const [phoneCountry, setPhoneCountry] = useState(address?.mobilePhoneCountry || country)\n const [hasUserSelectedPhoneCountry, setHasUserSelectedPhoneCountry] = useState(false)\n const [mobilePhoneLabel, setMobilePhoneLabel] = useState('')\n const [emailValidationError, setEmailValidationError] = useState('')\n const {\n values,\n setFieldValue,\n touchField,\n markAllTouched,\n resetValidationState,\n getFieldError,\n getValidationErrors,\n getPhoneValidationStatus\n } = useShippingFormState({\n address,\n shippingFields,\n labels,\n defaultPhoneCountry: address?.mobilePhoneCountry || selectedCountry || country\n });\n const showCheckboxSection = showSaveCheckbox || showDefaultCheckbox;\n\n useEffect(() => {\n setSelectedCountry(country)\n setHasUserSelectedPhoneCountry(false)\n }, [address, country])\n\n useEffect(() => {\n const availableCountries = shippingAddressForm.countries || [];\n\n if (availableCountries.length === 0) {\n setSelectedCountry(country);\n return;\n }\n\n const hasLoggedInCountry = availableCountries.some((countryOption) => countryOption.code === country);\n const nextSelectedCountry = hasLoggedInCountry ? country : availableCountries[0].code;\n\n setSelectedCountry((currentValue) => (\n availableCountries.some((countryOption) => countryOption.code === currentValue) ? currentValue : nextSelectedCountry\n ));\n }, [country, shippingAddressForm.countries])\n\n useEffect(() => {\n if (address?.mobilePhoneCountry) {\n setPhoneCountry(address.mobilePhoneCountry);\n return;\n }\n\n if (!hasUserSelectedPhoneCountry) {\n setPhoneCountry(selectedCountry || country);\n }\n }, [address?.mobilePhoneCountry, country, hasUserSelectedPhoneCountry, selectedCountry])\n\n useEffect(() => {\n let isMounted = true;\n\n getShippingLabels({ country: phoneCountry || country, language }).then((resolvedLabels) => {\n if (isMounted) {\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, language, phoneCountry])\n\n useEffect(() => {\n if (!values.saveToAccount && values.saveAsDefault) {\n setFieldValue('saveAsDefault', false);\n }\n }, [setFieldValue, values.saveAsDefault, values.saveToAccount])\n\n const validateEmailValue = async (email) => {\n const trimmedEmail = typeof email === 'string' ? email.trim() : '';\n\n if (!trimmedEmail) {\n setEmailValidationError('');\n return true;\n }\n\n if (!isEmailSyntaxValid(trimmedEmail)) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n const emailInfo = await getEmailInfo(trimmedEmail);\n const hasInvalidEmail =\n emailInfo &&\n (!emailInfo.isFormatValid || !emailInfo.isDomainValid);\n\n if (hasInvalidEmail) {\n setEmailValidationError(labels.formStrings?.invalidEmail || 'Invalid email address.');\n return false;\n }\n\n setEmailValidationError('');\n return true;\n };\n\n const handleAddressSelect = async (data) => {\n if (!isSavePending || data?.type !== 'validation-request') {\n return;\n }\n\n setIsSavePending(false);\n\n const shippingValidationErrors = getValidationErrors();\n const isAddressLookupComplete = data?.status?.completeness === 'complete';\n const isShippingComplete = shippingValidationErrors.length === 0;\n\n if (!isAddressLookupComplete || !isShippingComplete) {\n return;\n }\n\n const emailValue = typeof values.email === 'string' ? values.email.trim() : '';\n\n if (emailValue) {\n const isEmailValid = await validateEmailValue(emailValue);\n\n if (!isEmailValid) {\n return;\n }\n }\n\n const phoneValidationStatus = getPhoneValidationStatus();\n\n onAction?.({\n type: 'save',\n data: {\n ...data.address,\n ...shippingFields.reduce((acc, fieldConfig) => {\n acc[fieldConfig.field] = values[fieldConfig.field];\n return acc;\n }, {}),\n mobilePhoneCountry: phoneCountry,\n country: selectedCountry,\n saveToAccount: values.saveToAccount,\n saveAsDefault: values.saveAsDefault\n },\n validationStatus: {\n ...data.status,\n ...(phoneValidationStatus ? { phone: phoneValidationStatus } : {})\n }\n });\n }\n\n const handlePhoneCountryChange = async (nextCountry) => {\n const resolvedCountry = nextCountry || selectedCountry || country;\n\n setHasUserSelectedPhoneCountry(true);\n setPhoneCountry(resolvedCountry);\n\n const resolvedLabels = await getShippingLabels({\n country: resolvedCountry,\n language\n });\n\n setMobilePhoneLabel(resolvedLabels.mobilePhoneLabel);\n };\n\n const handleSaveAddress = () => {\n setEmailValidationError('');\n markAllTouched();\n setIsSavePending(true);\n setValidationRequestId((currentValue) => currentValue + 1);\n };\n\n const handleCancel = () => {\n setIsSavePending(false);\n setEmailValidationError('');\n resetValidationState();\n onAction?.({ type: 'cancel' });\n };\n\n const handleFieldBlur = async (fieldName) => {\n touchField(fieldName);\n\n if (fieldName === 'email') {\n await validateEmailValue(values.email);\n }\n };\n\n const renderLayoutItem = (layoutItem, index) => {\n if (layoutItem.type === 'component' && layoutItem.component === 'addressLookup') {\n return (\n <div\n className='ns-shipping-address-form__component ns-shipping-address-form__component--full'\n key={`addressLookup-${index}`}\n >\n <AddressLookup\n country={selectedCountry}\n language={language}\n strings={labels.formStrings}\n formDefinition={shippingAddressForm.addressForm}\n deferFormLookup={true}\n validationRequestId={validationRequestId}\n onAddressSelect={handleAddressSelect}\n address={address}\n showManualValidateButton={true}\n />\n </div>\n );\n }\n\n if (layoutItem.type === 'component' && layoutItem.component === 'countrySelector') {\n return (\n <div\n className='ns-shipping-address-form__field ns-shipping-address-form__field--country-selector'\n key='country-selector'\n >\n <label\n htmlFor={CONTROL_IDS.country}\n className='ns-shipping-address-form__label'\n >\n {labels.countryLabel}\n </label>\n <select\n id={CONTROL_IDS.country}\n data-testid={CONTROL_TEST_IDS.country}\n value={selectedCountry}\n onChange={(event) => setSelectedCountry(event.target.value)}\n className='ns-shipping-address-form__input'\n >\n {shippingAddressForm.countries.map((countryOption) => (\n <option key={countryOption.code} value={countryOption.code}>\n {countryOption.name}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n if (layoutItem.type === 'field') {\n const fieldConfig = shippingFields.find((field) => field.field === layoutItem.field);\n\n if (!fieldConfig) {\n return null;\n }\n\n return (\n <ShippingField\n key={fieldConfig.field}\n fieldConfig={fieldConfig}\n label={getFieldLabel(fieldConfig.field, labels, mobilePhoneLabel)}\n value={values[fieldConfig.field]}\n error={fieldConfig.field === 'email' ? (emailValidationError || getFieldError(fieldConfig)) : getFieldError(fieldConfig)}\n country={phoneCountry}\n countries={SUPPORTED_COUNTRIES}\n onChange={(nextValue) => {\n if (fieldConfig.field === 'email' && emailValidationError) {\n setEmailValidationError('');\n }\n\n setFieldValue(fieldConfig.field, nextValue);\n }}\n onBlur={() => handleFieldBlur(fieldConfig.field)}\n onPhoneCountryChange={handlePhoneCountryChange}\n />\n );\n }\n\n return null;\n };\n\n return (\n <div className='ns-shipping-address-form'>\n {shippingAddressForm.layout.some(\n (layoutItem) => layoutItem.type === 'component' && layoutItem.component === 'countrySelector'\n ) && renderLayoutItem({ type: 'component', component: 'countrySelector' }, 'country-selector')}\n <div className='ns-shipping-address-form__layout'>\n {shippingAddressForm.layout\n .filter((layoutItem) => !(layoutItem.type === 'component' && layoutItem.component === 'countrySelector'))\n .map(renderLayoutItem)}\n </div>\n {showCheckboxSection && (\n <>\n <hr className='ns-shipping-address-form__separator' />\n {showSaveCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label ns-shipping-address-form__checkbox-label--spaced'>\n <input\n id={CONTROL_IDS.saveToAccount}\n data-testid={CONTROL_TEST_IDS.saveToAccount}\n type=\"checkbox\"\n checked={values.saveToAccount}\n onChange={(e) => setFieldValue('saveToAccount', e.target.checked)}\n className='ns-shipping-address-form__checkbox'\n />\n {labels.agreeToSaveAddressLabel}\n </label>\n </div>\n )}\n {showDefaultCheckbox && (\n <div>\n <label className='ns-shipping-address-form__checkbox-label'>\n <input\n id={CONTROL_IDS.saveAsDefault}\n data-testid={CONTROL_TEST_IDS.saveAsDefault}\n type=\"checkbox\"\n checked={values.saveAsDefault}\n onChange={(e) => setFieldValue('saveAsDefault', e.target.checked)}\n className='ns-shipping-address-form__checkbox'\n disabled={!values.saveToAccount}\n />\n {labels.setDefaultLabel}\n </label>\n </div>\n )}\n <hr className='ns-shipping-address-form__separator' />\n </>\n )}\n <div className='ns-shipping-address-form__actions'>\n <NsButton\n id={CONTROL_IDS.submit}\n data-testid={CONTROL_TEST_IDS.submit}\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSaveAddress}\n >\n {showContinueButton ? labels.continueLabel : labels.saveAddressButtonLabel}\n </NsButton>\n {showCancelButton && (\n <NsButton\n id={CONTROL_IDS.cancel}\n data-testid={CONTROL_TEST_IDS.cancel}\n variant=\"outlined\"\n color=\"primary\"\n onClick={handleCancel}\n >\n {labels.cancelLabel}\n </NsButton>\n )}\n </div>\n </div>\n );\n};\n\nShippingAddressForm.propTypes = {\n country: PropTypes.string,\n language: PropTypes.string,\n onAction: PropTypes.func,\n showSaveCheckbox: PropTypes.bool,\n showDefaultCheckbox: PropTypes.bool,\n showCancelButton: PropTypes.bool,\n showContinueButton: PropTypes.bool,\n address: PropTypes.shape({\n mobilePhoneCountry: PropTypes.string,\n saveToAccount: PropTypes.bool,\n saveAsDefault: PropTypes.bool\n })\n};\n\nexport default ShippingAddressForm;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,23 @@ var _foundationUiComponents = require("@nuskin/foundation-ui-components");
|
|
|
9
9
|
var _reactPhoneNumberInput = _interopRequireDefault(require("react-phone-number-input"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const FIELD_TEST_IDS = {
|
|
13
|
+
givenName: 'qa-address-given-name',
|
|
14
|
+
surname: 'qa-address-surname',
|
|
15
|
+
email: 'qa-address-email',
|
|
16
|
+
mobilePhone: 'qa-address-mobile-phone',
|
|
17
|
+
instructions: 'qa-address-instructions'
|
|
18
|
+
};
|
|
19
|
+
const FIELD_IDS = {
|
|
20
|
+
givenName: 'address-given-name',
|
|
21
|
+
surname: 'address-surname',
|
|
22
|
+
email: 'address-email',
|
|
23
|
+
mobilePhone: 'address-mobile-phone',
|
|
24
|
+
instructions: 'address-instructions'
|
|
25
|
+
};
|
|
26
|
+
const toKebabCase = (value = '') => value.replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/[\s_]+/g, '-').toLowerCase();
|
|
27
|
+
const getFieldTestId = (fieldName = '') => FIELD_TEST_IDS[fieldName] || `qa-address-${toKebabCase(fieldName)}`;
|
|
28
|
+
const getFieldId = (fieldName = '') => FIELD_IDS[fieldName] || `address-${toKebabCase(fieldName)}`;
|
|
12
29
|
const ShippingField = ({
|
|
13
30
|
fieldConfig,
|
|
14
31
|
label,
|
|
@@ -25,15 +42,17 @@ const ShippingField = ({
|
|
|
25
42
|
const fieldClassName = ['ns-shipping-address-form__field', widthClassName].join(' ');
|
|
26
43
|
const inputClassName = ['ns-shipping-address-form__input', hasError ? 'ns-shipping-address-form__input--invalid' : ''].filter(Boolean).join(' ');
|
|
27
44
|
const phoneClassName = ['ns-shipping-address-form__phone', hasError ? 'ns-shipping-address-form__phone--invalid' : ''].filter(Boolean).join(' ');
|
|
45
|
+
const fieldId = getFieldId(fieldConfig.field);
|
|
46
|
+
const fieldTestId = getFieldTestId(fieldConfig.field);
|
|
28
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
29
48
|
className: fieldClassName,
|
|
30
49
|
children: fieldConfig.inputType === 'phone' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
31
50
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
32
|
-
htmlFor:
|
|
51
|
+
htmlFor: fieldId,
|
|
33
52
|
className: "ns-shipping-address-form__label",
|
|
34
53
|
children: label
|
|
35
54
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactPhoneNumberInput.default, {
|
|
36
|
-
id:
|
|
55
|
+
id: fieldId,
|
|
37
56
|
international: true,
|
|
38
57
|
countries: countries,
|
|
39
58
|
defaultCountry: country,
|
|
@@ -44,19 +63,24 @@ const ShippingField = ({
|
|
|
44
63
|
countryCallingCodeEditable: false,
|
|
45
64
|
className: phoneClassName,
|
|
46
65
|
countrySelectProps: {
|
|
47
|
-
onBlur
|
|
66
|
+
onBlur,
|
|
67
|
+
id: `${fieldId}-country`,
|
|
68
|
+
'data-testid': `${fieldTestId}-country`
|
|
48
69
|
},
|
|
49
70
|
numberInputProps: {
|
|
71
|
+
id: fieldId,
|
|
50
72
|
required: fieldConfig.required,
|
|
51
73
|
maxLength: fieldConfig.maxLength,
|
|
52
74
|
className: 'ns-shipping-address-form__phone-input',
|
|
53
|
-
'aria-invalid': hasError
|
|
75
|
+
'aria-invalid': hasError,
|
|
76
|
+
'data-testid': fieldTestId
|
|
54
77
|
}
|
|
55
78
|
}), error && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
56
79
|
className: "ns-shipping-address-form__error-text",
|
|
57
80
|
children: error
|
|
58
81
|
})]
|
|
59
82
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_foundationUiComponents.NsInputField, {
|
|
83
|
+
id: fieldId,
|
|
60
84
|
type: fieldConfig.inputType,
|
|
61
85
|
label: label,
|
|
62
86
|
value: value ?? '',
|
|
@@ -70,6 +94,12 @@ const ShippingField = ({
|
|
|
70
94
|
InputProps: {
|
|
71
95
|
readOnly: fieldConfig.editable === false
|
|
72
96
|
},
|
|
97
|
+
inputProps: {
|
|
98
|
+
'data-testid': fieldTestId
|
|
99
|
+
},
|
|
100
|
+
additionalProps: {
|
|
101
|
+
testid: fieldTestId
|
|
102
|
+
},
|
|
73
103
|
className: inputClassName
|
|
74
104
|
})
|
|
75
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShippingField.js","names":["_propTypes","_interopRequireDefault","require","_foundationUiComponents","_reactPhoneNumberInput","_jsxRuntime","e","__esModule","default","ShippingField","fieldConfig","label","value","error","country","countries","onChange","onBlur","onPhoneCountryChange","hasError","Boolean","widthClassName","width","fieldClassName","join","inputClassName","filter","phoneClassName","jsx","className","children","inputType","jsxs","Fragment","htmlFor","field","id","international","defaultCountry","nextValue","onCountryChange","countryCallingCodeEditable","countrySelectProps","numberInputProps","required","maxLength","NsInputField","type","undefined","fieldState","helperText","target","InputProps","readOnly","editable","propTypes","PropTypes","shape","string","isRequired","oneOf","bool","number","allowedCharacters","instanceOf","RegExp","oneOfType","arrayOf","func","_default","exports"],"sources":["../../src/components/ShippingField.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { NsInputField } from '@nuskin/foundation-ui-components';\nimport PhoneInput from 'react-phone-number-input';\n\nconst ShippingField = ({\n fieldConfig,\n label,\n value,\n error,\n country,\n countries,\n onChange,\n onBlur,\n onPhoneCountryChange\n}) => {\n const hasError = Boolean(error);\n const widthClassName = fieldConfig.width === 'half' ?\n 'ns-shipping-address-form__field--half' :\n 'ns-shipping-address-form__field--full';\n const fieldClassName = [\n 'ns-shipping-address-form__field',\n widthClassName\n ].join(' ');\n const inputClassName = [\n 'ns-shipping-address-form__input',\n hasError ? 'ns-shipping-address-form__input--invalid' : ''\n ].filter(Boolean).join(' ');\n const phoneClassName = [\n 'ns-shipping-address-form__phone',\n hasError ? 'ns-shipping-address-form__phone--invalid' : ''\n ].filter(Boolean).join(' ');\n\n return (\n <div className={fieldClassName}>\n {fieldConfig.inputType === 'phone' ? (\n <>\n <label\n htmlFor={fieldConfig.field}\n className='ns-shipping-address-form__label'\n >\n {label}\n </label>\n <PhoneInput\n id={fieldConfig.field}\n international\n countries={countries}\n defaultCountry={country}\n value={value ?? ''}\n onChange={(nextValue) => onChange(nextValue || '')}\n onCountryChange={onPhoneCountryChange}\n onBlur={onBlur}\n countryCallingCodeEditable={false}\n className={phoneClassName}\n countrySelectProps={{\n onBlur\n }}\n numberInputProps={{\n required: fieldConfig.required,\n maxLength: fieldConfig.maxLength,\n className: 'ns-shipping-address-form__phone-input',\n 'aria-invalid': hasError\n }}\n />\n {error && (\n <div className='ns-shipping-address-form__error-text'>\n {error}\n </div>\n )}\n </>\n ) : (\n <NsInputField\n type={fieldConfig.inputType}\n label={label}\n value={value ?? ''}\n maxLength={fieldConfig.maxLength}\n required={fieldConfig.required}\n aria-invalid={hasError ? 'true' : undefined}\n fieldState={hasError ? 'error' : undefined}\n helperText={error || undefined}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n InputProps={{\n readOnly: fieldConfig.editable === false\n }}\n className={inputClassName}\n />\n )}\n </div>\n );\n};\n\nShippingField.propTypes = {\n fieldConfig: PropTypes.shape({\n field: PropTypes.string.isRequired,\n width: PropTypes.oneOf(['half', 'full']),\n inputType: PropTypes.string,\n required: PropTypes.bool,\n maxLength: PropTypes.number,\n editable: PropTypes.bool,\n allowedCharacters: PropTypes.instanceOf(RegExp)\n }).isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n error: PropTypes.string,\n country: PropTypes.string,\n countries: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n onPhoneCountryChange: PropTypes.func\n};\n\nexport default ShippingField;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ShippingField.js","names":["_propTypes","_interopRequireDefault","require","_foundationUiComponents","_reactPhoneNumberInput","_jsxRuntime","e","__esModule","default","FIELD_TEST_IDS","givenName","surname","email","mobilePhone","instructions","FIELD_IDS","toKebabCase","value","replace","toLowerCase","getFieldTestId","fieldName","getFieldId","ShippingField","fieldConfig","label","error","country","countries","onChange","onBlur","onPhoneCountryChange","hasError","Boolean","widthClassName","width","fieldClassName","join","inputClassName","filter","phoneClassName","fieldId","field","fieldTestId","jsx","className","children","inputType","jsxs","Fragment","htmlFor","id","international","defaultCountry","nextValue","onCountryChange","countryCallingCodeEditable","countrySelectProps","numberInputProps","required","maxLength","NsInputField","type","undefined","fieldState","helperText","target","InputProps","readOnly","editable","inputProps","additionalProps","testid","propTypes","PropTypes","shape","string","isRequired","oneOf","bool","number","allowedCharacters","instanceOf","RegExp","oneOfType","arrayOf","func","_default","exports"],"sources":["../../src/components/ShippingField.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { NsInputField } from '@nuskin/foundation-ui-components';\nimport PhoneInput from 'react-phone-number-input';\n\nconst FIELD_TEST_IDS = {\n givenName: 'qa-address-given-name',\n surname: 'qa-address-surname',\n email: 'qa-address-email',\n mobilePhone: 'qa-address-mobile-phone',\n instructions: 'qa-address-instructions'\n};\n\nconst FIELD_IDS = {\n givenName: 'address-given-name',\n surname: 'address-surname',\n email: 'address-email',\n mobilePhone: 'address-mobile-phone',\n instructions: 'address-instructions'\n};\n\nconst toKebabCase = (value = '') =>\n value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase();\n\nconst getFieldTestId = (fieldName = '') => FIELD_TEST_IDS[fieldName] || `qa-address-${toKebabCase(fieldName)}`;\nconst getFieldId = (fieldName = '') => FIELD_IDS[fieldName] || `address-${toKebabCase(fieldName)}`;\n\nconst ShippingField = ({\n fieldConfig,\n label,\n value,\n error,\n country,\n countries,\n onChange,\n onBlur,\n onPhoneCountryChange\n}) => {\n const hasError = Boolean(error);\n const widthClassName = fieldConfig.width === 'half' ?\n 'ns-shipping-address-form__field--half' :\n 'ns-shipping-address-form__field--full';\n const fieldClassName = [\n 'ns-shipping-address-form__field',\n widthClassName\n ].join(' ');\n const inputClassName = [\n 'ns-shipping-address-form__input',\n hasError ? 'ns-shipping-address-form__input--invalid' : ''\n ].filter(Boolean).join(' ');\n const phoneClassName = [\n 'ns-shipping-address-form__phone',\n hasError ? 'ns-shipping-address-form__phone--invalid' : ''\n ].filter(Boolean).join(' ');\n const fieldId = getFieldId(fieldConfig.field);\n const fieldTestId = getFieldTestId(fieldConfig.field);\n\n return (\n <div className={fieldClassName}>\n {fieldConfig.inputType === 'phone' ? (\n <>\n <label\n htmlFor={fieldId}\n className='ns-shipping-address-form__label'\n >\n {label}\n </label>\n <PhoneInput\n id={fieldId}\n international\n countries={countries}\n defaultCountry={country}\n value={value ?? ''}\n onChange={(nextValue) => onChange(nextValue || '')}\n onCountryChange={onPhoneCountryChange}\n onBlur={onBlur}\n countryCallingCodeEditable={false}\n className={phoneClassName}\n countrySelectProps={{\n onBlur,\n id: `${fieldId}-country`,\n 'data-testid': `${fieldTestId}-country`\n }}\n numberInputProps={{\n id: fieldId,\n required: fieldConfig.required,\n maxLength: fieldConfig.maxLength,\n className: 'ns-shipping-address-form__phone-input',\n 'aria-invalid': hasError,\n 'data-testid': fieldTestId\n }}\n />\n {error && (\n <div className='ns-shipping-address-form__error-text'>\n {error}\n </div>\n )}\n </>\n ) : (\n <NsInputField\n id={fieldId}\n type={fieldConfig.inputType}\n label={label}\n value={value ?? ''}\n maxLength={fieldConfig.maxLength}\n required={fieldConfig.required}\n aria-invalid={hasError ? 'true' : undefined}\n fieldState={hasError ? 'error' : undefined}\n helperText={error || undefined}\n onChange={(e) => onChange(e.target.value)}\n onBlur={onBlur}\n InputProps={{\n readOnly: fieldConfig.editable === false\n }}\n inputProps={{\n 'data-testid': fieldTestId\n }}\n additionalProps={{\n testid: fieldTestId\n }}\n className={inputClassName}\n />\n )}\n </div>\n );\n};\n\nShippingField.propTypes = {\n fieldConfig: PropTypes.shape({\n field: PropTypes.string.isRequired,\n width: PropTypes.oneOf(['half', 'full']),\n inputType: PropTypes.string,\n required: PropTypes.bool,\n maxLength: PropTypes.number,\n editable: PropTypes.bool,\n allowedCharacters: PropTypes.instanceOf(RegExp)\n }).isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n error: PropTypes.string,\n country: PropTypes.string,\n countries: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n onPhoneCountryChange: PropTypes.func\n};\n\nexport default ShippingField;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuskin/shipping-address-form",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "React wrapper around address lookup with shipping-specific fields and actions",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"homepage": "https://code.tls.nuskin.io/nextgen-development/shipping/npm/shipping-address-form/blob/master/README.md",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@nuskin/address-lookup": "1.1.
|
|
34
|
+
"@nuskin/address-lookup": "1.1.2",
|
|
35
35
|
"@nuskin/contentstack-lib": "2.0.2",
|
|
36
36
|
"@nuskin/foundation-theme": "1.8.0",
|
|
37
37
|
"@nuskin/foundation-ui-components": "2.2.1",
|
|
@@ -72,6 +72,6 @@
|
|
|
72
72
|
"dist/"
|
|
73
73
|
],
|
|
74
74
|
"resolutions": {
|
|
75
|
-
"@nuskin/contentstack-lib": "2.0.
|
|
75
|
+
"@nuskin/contentstack-lib": "2.0.2"
|
|
76
76
|
}
|
|
77
77
|
}
|