@nuskin/shipping-address-form 1.3.3 → 1.4.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.
package/README.md CHANGED
@@ -5,7 +5,7 @@ React wrapper around [`@nuskin/address-lookup`](https://www.npmjs.com/package/@n
5
5
  The component:
6
6
 
7
7
  - renders address lookup and validation via `@nuskin/address-lookup`
8
- - loads a shipping form definition from Contentstack based on the logged-in country
8
+ - loads a shipping form definition from Contentstack based on the logged-in country and form type
9
9
  - renders pre-address and post-address shipping fields in the order defined by content
10
10
  - loads localized strings once and passes the derived `formStrings` subset into `AddressLookup`
11
11
  - emits a single `onAction` callback for `save` and `cancel`
@@ -49,6 +49,7 @@ export default function Example() {
49
49
  return (
50
50
  <ShippingAddressForm
51
51
  country='US'
52
+ type='shipping'
52
53
  language='en'
53
54
  showSaveCheckbox={true}
54
55
  showDefaultCheckbox={true}
@@ -79,7 +80,7 @@ export default function Example() {
79
80
 
80
81
  Two-character country code for the logged-in market. This is used to:
81
82
 
82
- - load the shipping form definition from Contentstack
83
+ - load the shipping form definition from Contentstack with the current `type`
83
84
  - load localized strings
84
85
  - choose the default phone country
85
86
 
@@ -91,6 +92,19 @@ If the returned shipping form includes a `countries` list, the component shows a
91
92
 
92
93
  This destination-country list is separate from the phone country selector. The phone field uses `SUPPORTED_COUNTRIES` from `@nuskin/address-lookup`.
93
94
 
95
+ ### `type`
96
+
97
+ - Type: `string`
98
+ - Default: `'shipping'`
99
+
100
+ Form type used when loading the Contentstack shipping address form. By default, `ShippingAddressForm` loads the `shipping` form type.
101
+
102
+ The lookup uses:
103
+
104
+ ```js
105
+ stack.getMultiEntryByFields('shipping_address_form', { country, type }, true)
106
+ ```
107
+
94
108
  ### `language`
95
109
 
96
110
  - Type: `string | undefined`
@@ -219,7 +233,12 @@ The exact shipping-field keys in `data` depend on the current form definition.
219
233
 
220
234
  Shipping form layout is loaded from Contentstack content type:
221
235
 
222
- - `shipping_component`
236
+ - `shipping_address_form`
237
+
238
+ The entry is resolved by:
239
+
240
+ - `country`
241
+ - `type`
223
242
 
224
243
  The normalized shipping form includes:
225
244
 
@@ -49,13 +49,14 @@ const ShippingAddressForm = ({
49
49
  showSaveCheckbox = true,
50
50
  showDefaultCheckbox = true,
51
51
  showCancelButton = true,
52
- showContinueButton = false
52
+ showContinueButton = false,
53
+ type = 'shipping'
53
54
  }) => {
54
55
  const [selectedCountry, setSelectedCountry] = (0, _react.useState)(country);
55
56
  const labels = (0, _useAddressFieldLabels.default)(selectedCountry, language);
56
57
  const {
57
58
  shippingAddressForm
58
- } = (0, _useShippingAddressForm.default)(country);
59
+ } = (0, _useShippingAddressForm.default)(country, true, type);
59
60
  const shippingFields = (0, _react.useMemo)(() => [...(shippingAddressForm.preAddressFields || []), ...(shippingAddressForm.postAddressFields || [])], [shippingAddressForm.postAddressFields, shippingAddressForm.preAddressFields]);
60
61
  const [isSavePending, setIsSavePending] = (0, _react.useState)(false);
61
62
  const [validationRequestId, setValidationRequestId] = (0, _react.useState)(0);
@@ -336,6 +337,7 @@ const ShippingAddressForm = ({
336
337
  ShippingAddressForm.propTypes = {
337
338
  country: _propTypes.default.string,
338
339
  language: _propTypes.default.string,
340
+ type: _propTypes.default.string,
339
341
  onAction: _propTypes.default.func,
340
342
  showSaveCheckbox: _propTypes.default.bool,
341
343
  showDefaultCheckbox: _propTypes.default.bool,
@@ -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","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":[]}
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","type","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","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 type = 'shipping'\n}) => {\n const [selectedCountry, setSelectedCountry] = useState(country)\n const labels = useAddressFieldLabels(selectedCountry, language)\n const { shippingAddressForm } = useShippingAddressForm(country, true, type)\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(\n (countryOption) => countryOption.code === currentValue\n ) ? 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 type: 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":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _shippingAddressForm = require("../utils/shippingAddressForm");
9
- const useShippingAddressForm = (country, enabled = true) => {
9
+ const useShippingAddressForm = (country, enabled = true, type = 'shipping') => {
10
10
  const [shippingAddressForm, setShippingAddressForm] = (0, _react.useState)(_shippingAddressForm.DEFAULT_SHIPPING_ADDRESS_FORM);
11
11
  const [isLoading, setIsLoading] = (0, _react.useState)(Boolean(enabled));
12
12
  (0, _react.useEffect)(() => {
@@ -17,7 +17,7 @@ const useShippingAddressForm = (country, enabled = true) => {
17
17
  }
18
18
  let isMounted = true;
19
19
  setIsLoading(true);
20
- (0, _shippingAddressForm.getShippingAddressForm)(country).then(resolvedForm => {
20
+ (0, _shippingAddressForm.getShippingAddressForm)(country, type).then(resolvedForm => {
21
21
  if (isMounted) {
22
22
  setShippingAddressForm(resolvedForm);
23
23
  setIsLoading(false);
@@ -26,7 +26,7 @@ const useShippingAddressForm = (country, enabled = true) => {
26
26
  return () => {
27
27
  isMounted = false;
28
28
  };
29
- }, [country, enabled]);
29
+ }, [country, enabled, type]);
30
30
  return {
31
31
  shippingAddressForm,
32
32
  isLoading
@@ -1 +1 @@
1
- {"version":3,"file":"useShippingAddressForm.js","names":["_react","require","_shippingAddressForm","useShippingAddressForm","country","enabled","shippingAddressForm","setShippingAddressForm","useState","DEFAULT_SHIPPING_ADDRESS_FORM","isLoading","setIsLoading","Boolean","useEffect","undefined","isMounted","getShippingAddressForm","then","resolvedForm","_default","exports","default"],"sources":["../../src/hooks/useShippingAddressForm.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { getShippingAddressForm, DEFAULT_SHIPPING_ADDRESS_FORM } from '../utils/shippingAddressForm';\n\nconst useShippingAddressForm = (country, enabled = true) => {\n const [shippingAddressForm, setShippingAddressForm] = useState(DEFAULT_SHIPPING_ADDRESS_FORM);\n const [isLoading, setIsLoading] = useState(Boolean(enabled));\n\n useEffect(() => {\n if (!enabled) {\n setShippingAddressForm(DEFAULT_SHIPPING_ADDRESS_FORM);\n setIsLoading(false);\n return undefined;\n }\n\n let isMounted = true;\n\n setIsLoading(true);\n getShippingAddressForm(country).then((resolvedForm) => {\n if (isMounted) {\n setShippingAddressForm(resolvedForm);\n setIsLoading(false);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, enabled]);\n\n return { shippingAddressForm, isLoading };\n};\n\nexport default useShippingAddressForm;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,MAAME,sBAAsB,GAAGA,CAACC,OAAO,EAAEC,OAAO,GAAG,IAAI,KAAK;EAC1D,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAC,eAAQ,EAACC,kDAA6B,CAAC;EAC7F,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAH,eAAQ,EAACI,OAAO,CAACP,OAAO,CAAC,CAAC;EAE5D,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAI,CAACR,OAAO,EAAE;MACZE,sBAAsB,CAACE,kDAA6B,CAAC;MACrDE,YAAY,CAAC,KAAK,CAAC;MACnB,OAAOG,SAAS;IAClB;IAEA,IAAIC,SAAS,GAAG,IAAI;IAEpBJ,YAAY,CAAC,IAAI,CAAC;IAClB,IAAAK,2CAAsB,EAACZ,OAAO,CAAC,CAACa,IAAI,CAAEC,YAAY,IAAK;MACrD,IAAIH,SAAS,EAAE;QACbR,sBAAsB,CAACW,YAAY,CAAC;QACpCP,YAAY,CAAC,KAAK,CAAC;MACrB;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXI,SAAS,GAAG,KAAK;IACnB,CAAC;EACH,CAAC,EAAE,CAACX,OAAO,EAAEC,OAAO,CAAC,CAAC;EAEtB,OAAO;IAAEC,mBAAmB;IAAEI;EAAU,CAAC;AAC3C,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEalB,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"useShippingAddressForm.js","names":["_react","require","_shippingAddressForm","useShippingAddressForm","country","enabled","type","shippingAddressForm","setShippingAddressForm","useState","DEFAULT_SHIPPING_ADDRESS_FORM","isLoading","setIsLoading","Boolean","useEffect","undefined","isMounted","getShippingAddressForm","then","resolvedForm","_default","exports","default"],"sources":["../../src/hooks/useShippingAddressForm.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { getShippingAddressForm, DEFAULT_SHIPPING_ADDRESS_FORM } from '../utils/shippingAddressForm';\n\nconst useShippingAddressForm = (country, enabled = true, type = 'shipping') => {\n const [shippingAddressForm, setShippingAddressForm] = useState(DEFAULT_SHIPPING_ADDRESS_FORM);\n const [isLoading, setIsLoading] = useState(Boolean(enabled));\n\n useEffect(() => {\n if (!enabled) {\n setShippingAddressForm(DEFAULT_SHIPPING_ADDRESS_FORM);\n setIsLoading(false);\n return undefined;\n }\n\n let isMounted = true;\n\n setIsLoading(true);\n getShippingAddressForm(country, type).then((resolvedForm) => {\n if (isMounted) {\n setShippingAddressForm(resolvedForm);\n setIsLoading(false);\n }\n });\n\n return () => {\n isMounted = false;\n };\n }, [country, enabled, type]);\n\n return { shippingAddressForm, isLoading };\n};\n\nexport default useShippingAddressForm;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,MAAME,sBAAsB,GAAGA,CAACC,OAAO,EAAEC,OAAO,GAAG,IAAI,EAAEC,IAAI,GAAG,UAAU,KAAK;EAC7E,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAC,eAAQ,EAACC,kDAA6B,CAAC;EAC7F,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAH,eAAQ,EAACI,OAAO,CAACR,OAAO,CAAC,CAAC;EAE5D,IAAAS,gBAAS,EAAC,MAAM;IACd,IAAI,CAACT,OAAO,EAAE;MACZG,sBAAsB,CAACE,kDAA6B,CAAC;MACrDE,YAAY,CAAC,KAAK,CAAC;MACnB,OAAOG,SAAS;IAClB;IAEA,IAAIC,SAAS,GAAG,IAAI;IAEpBJ,YAAY,CAAC,IAAI,CAAC;IAClB,IAAAK,2CAAsB,EAACb,OAAO,EAAEE,IAAI,CAAC,CAACY,IAAI,CAAEC,YAAY,IAAK;MAC3D,IAAIH,SAAS,EAAE;QACbR,sBAAsB,CAACW,YAAY,CAAC;QACpCP,YAAY,CAAC,KAAK,CAAC;MACrB;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXI,SAAS,GAAG,KAAK;IACnB,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,EAAEC,OAAO,EAAEC,IAAI,CAAC,CAAC;EAE5B,OAAO;IAAEC,mBAAmB;IAAEI;EAAU,CAAC;AAC3C,CAAC;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEanB,sBAAsB","ignoreList":[]}
@@ -112,7 +112,6 @@ const adaptShippingAddressFormEntry = (result = {}) => ({
112
112
  countries: extractCountries(result),
113
113
  address_form: extractAddressForm(result)
114
114
  });
115
- const findMatchingForm = (forms, countryCode) => (Array.isArray(forms) ? forms : []).find(form => (form === null || form === void 0 ? void 0 : form.title) === countryCode) || (Array.isArray(forms) ? forms : []).find(form => normalizeCountries(extractCountries(form)).some(country => country.code === countryCode)) || (Array.isArray(forms) ? forms[0] : null) || null;
116
115
  const normalizeShippingAddressForm = (result = {}) => {
117
116
  const adaptedResult = adaptShippingAddressFormEntry(result);
118
117
  const countries = normalizeCountries(adaptedResult.countries);
@@ -132,23 +131,27 @@ const normalizeShippingAddressForm = (result = {}) => {
132
131
  };
133
132
  };
134
133
  exports.normalizeShippingAddressForm = normalizeShippingAddressForm;
135
- const getShippingAddressForm = async country => {
134
+ const getShippingAddressForm = async (country, type = 'shipping') => {
136
135
  const countryCode = country || 'US';
137
- if (cache[countryCode]) {
138
- return cache[countryCode];
136
+ const formType = type || 'shipping';
137
+ const cacheKey = `${countryCode}_${formType}`;
138
+ if (cache[cacheKey]) {
139
+ return cache[cacheKey];
139
140
  }
140
141
  try {
141
142
  const stack = (0, _contentstackLib.getStack)();
142
- const results = await stack.getMultiEntries('shipping_address_form', true, [countryCode]);
143
- const matchedForm = findMatchingForm(Array.isArray(results) ? results : [], countryCode);
144
- const normalizedForm = normalizeShippingAddressForm(matchedForm || {});
145
- cache[countryCode] = normalizedForm;
143
+ const result = await stack.getMultiEntryByFields('shipping_address_form', {
144
+ country: countryCode,
145
+ type: formType
146
+ }, true);
147
+ const normalizedForm = normalizeShippingAddressForm(result || {});
148
+ cache[cacheKey] = normalizedForm;
146
149
  return normalizedForm;
147
150
  } catch (err) {
148
151
  const fallback = {
149
152
  ...DEFAULT_SHIPPING_ADDRESS_FORM
150
153
  };
151
- cache[countryCode] = fallback;
154
+ cache[cacheKey] = fallback;
152
155
  return fallback;
153
156
  }
154
157
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shippingAddressForm.js","names":["_contentstackLib","require","_addressLookup","cache","DEFAULT_SHIPPING_ADDRESS_FORM","exports","countries","preAddressFields","addressForm","DEFAULT_ADDRESS_FORM","postAddressFields","layout","type","component","normalizeRegex","value","RegExp","err","normalizeMaxLength","field","max_length","trim","parsedMaxLength","Number","isNaN","maxLength","normalizeField","width","editable","required","Boolean","allowedCharacters","allowed_characters","inputType","normalizeFields","fields","Array","isArray","map","filter","normalizeCountries","country","code","country_code","name","country_name","buildLayout","length","push","forEach","extractCountries","result","_result$countries$","extractAddressForm","address_form","adaptShippingAddressFormEntry","findMatchingForm","forms","countryCode","find","form","title","some","normalizeShippingAddressForm","adaptedResult","pre_address_fields","post_address_fields","normalizeAddressForm","getShippingAddressForm","stack","getStack","results","getMultiEntries","matchedForm","normalizedForm","fallback","clearShippingAddressFormCache","Object","keys","cacheKey"],"sources":["../../src/utils/shippingAddressForm.js"],"sourcesContent":["import { getStack } from '@nuskin/contentstack-lib';\nimport { normalizeAddressForm, DEFAULT_ADDRESS_FORM } from '@nuskin/address-lookup';\n\nconst cache = {};\n\nconst DEFAULT_SHIPPING_ADDRESS_FORM = {\n countries: [],\n preAddressFields: [],\n addressForm: DEFAULT_ADDRESS_FORM,\n postAddressFields: [],\n layout: [\n { type: 'component', component: 'addressLookup' }\n ]\n};\n\nconst normalizeRegex = (value) => {\n if (!value) {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n if (typeof value !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(value);\n } catch (err) {\n return null;\n }\n};\n\nconst normalizeMaxLength = (field = {}) => {\n if (typeof field.max_length === 'number') {\n return field.max_length;\n }\n\n if (typeof field.max_length === 'string' && field.max_length.trim() !== '') {\n const parsedMaxLength = Number(field.max_length);\n return Number.isNaN(parsedMaxLength) ? null : parsedMaxLength;\n }\n\n if (typeof field.maxLength === 'number') {\n return field.maxLength;\n }\n\n if (typeof field.maxLength === 'string' && field.maxLength.trim() !== '') {\n const parsedMaxLength = Number(field.maxLength);\n return Number.isNaN(parsedMaxLength) ? null : parsedMaxLength;\n }\n\n return null;\n};\n\nconst normalizeField = (field = {}) => ({\n field: field.field || '',\n width: field.width === 'half' ? 'half' : 'full',\n editable: field.editable !== false,\n maxLength: normalizeMaxLength(field),\n required: Boolean(field.required),\n allowedCharacters: normalizeRegex(field.allowed_characters || field.allowedCharacters),\n inputType: field.field === 'mobilePhone' ? 'phone' : 'text'\n});\n\nconst normalizeFields = (fields = []) =>\n (Array.isArray(fields) ? fields : [])\n .map(normalizeField)\n .filter((field) => field.field);\n\nconst normalizeCountries = (countries = []) =>\n (Array.isArray(countries) ? countries : [])\n .map((country) => ({\n code: country?.code || country?.country_code || '',\n name: country?.name || country?.country_name || country?.code || country?.country_code || ''\n }))\n .filter((country) => country.code);\n\nconst buildLayout = ({ countries, preAddressFields, postAddressFields }) => {\n const layout = [];\n\n if (countries.length > 0) {\n layout.push({ type: 'component', component: 'countrySelector' });\n }\n\n preAddressFields.forEach((field) => {\n layout.push({ type: 'field', field: field.field });\n });\n\n layout.push({ type: 'component', component: 'addressLookup' });\n\n postAddressFields.forEach((field) => {\n layout.push({ type: 'field', field: field.field });\n });\n\n return layout;\n};\n\nconst extractCountries = (result = {}) => {\n if (Array.isArray(result.countries) && Array.isArray(result.countries[0]?.countries)) {\n return result.countries[0].countries;\n }\n\n return result.countries;\n};\n\nconst extractAddressForm = (result = {}) => {\n if (Array.isArray(result.address_form)) {\n return result.address_form[0] || {};\n }\n\n return result.address_form || result.addressForm || {};\n};\n\nconst adaptShippingAddressFormEntry = (result = {}) => ({\n ...result,\n countries: extractCountries(result),\n address_form: extractAddressForm(result)\n});\n\nconst findMatchingForm = (forms, countryCode) =>\n (Array.isArray(forms) ? forms : []).find((form) => form?.title === countryCode) ||\n (Array.isArray(forms) ? forms : []).find((form) =>\n normalizeCountries(extractCountries(form)).some((country) => country.code === countryCode)\n ) ||\n (Array.isArray(forms) ? forms[0] : null) ||\n null;\n\nexport const normalizeShippingAddressForm = (result = {}) => {\n const adaptedResult = adaptShippingAddressFormEntry(result);\n const countries = normalizeCountries(adaptedResult.countries);\n const preAddressFields = normalizeFields(adaptedResult.pre_address_fields || adaptedResult.preAddressFields);\n const postAddressFields = normalizeFields(adaptedResult.post_address_fields || adaptedResult.postAddressFields);\n const addressForm = normalizeAddressForm(adaptedResult.address_form || adaptedResult.addressForm || {});\n\n return {\n countries,\n preAddressFields,\n addressForm,\n postAddressFields,\n layout: buildLayout({ countries, preAddressFields, postAddressFields })\n };\n};\n\nexport const getShippingAddressForm = async (country) => {\n const countryCode = country || 'US';\n\n if (cache[countryCode]) {\n return cache[countryCode];\n }\n\n try {\n const stack = getStack();\n const results = await stack.getMultiEntries('shipping_address_form', true, [countryCode]);\n const matchedForm = findMatchingForm(Array.isArray(results) ? results : [], countryCode);\n const normalizedForm = normalizeShippingAddressForm(matchedForm || {});\n\n cache[countryCode] = normalizedForm;\n return normalizedForm;\n } catch (err) {\n const fallback = { ...DEFAULT_SHIPPING_ADDRESS_FORM };\n cache[countryCode] = fallback;\n return fallback;\n }\n};\n\nexport const clearShippingAddressFormCache = () => {\n Object.keys(cache).forEach((cacheKey) => {\n delete cache[cacheKey];\n });\n};\n\nexport { DEFAULT_SHIPPING_ADDRESS_FORM };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"shippingAddressForm.js","names":["_contentstackLib","require","_addressLookup","cache","DEFAULT_SHIPPING_ADDRESS_FORM","exports","countries","preAddressFields","addressForm","DEFAULT_ADDRESS_FORM","postAddressFields","layout","type","component","normalizeRegex","value","RegExp","err","normalizeMaxLength","field","max_length","trim","parsedMaxLength","Number","isNaN","maxLength","normalizeField","width","editable","required","Boolean","allowedCharacters","allowed_characters","inputType","normalizeFields","fields","Array","isArray","map","filter","normalizeCountries","country","code","country_code","name","country_name","buildLayout","length","push","forEach","extractCountries","result","_result$countries$","extractAddressForm","address_form","adaptShippingAddressFormEntry","normalizeShippingAddressForm","adaptedResult","pre_address_fields","post_address_fields","normalizeAddressForm","getShippingAddressForm","countryCode","formType","cacheKey","stack","getStack","getMultiEntryByFields","normalizedForm","fallback","clearShippingAddressFormCache","Object","keys"],"sources":["../../src/utils/shippingAddressForm.js"],"sourcesContent":["import { getStack } from '@nuskin/contentstack-lib';\nimport { normalizeAddressForm, DEFAULT_ADDRESS_FORM } from '@nuskin/address-lookup';\n\nconst cache = {};\n\nconst DEFAULT_SHIPPING_ADDRESS_FORM = {\n countries: [],\n preAddressFields: [],\n addressForm: DEFAULT_ADDRESS_FORM,\n postAddressFields: [],\n layout: [\n { type: 'component', component: 'addressLookup' }\n ]\n};\n\nconst normalizeRegex = (value) => {\n if (!value) {\n return null;\n }\n\n if (value instanceof RegExp) {\n return value;\n }\n\n if (typeof value !== 'string') {\n return null;\n }\n\n try {\n return new RegExp(value);\n } catch (err) {\n return null;\n }\n};\n\nconst normalizeMaxLength = (field = {}) => {\n if (typeof field.max_length === 'number') {\n return field.max_length;\n }\n\n if (typeof field.max_length === 'string' && field.max_length.trim() !== '') {\n const parsedMaxLength = Number(field.max_length);\n return Number.isNaN(parsedMaxLength) ? null : parsedMaxLength;\n }\n\n if (typeof field.maxLength === 'number') {\n return field.maxLength;\n }\n\n if (typeof field.maxLength === 'string' && field.maxLength.trim() !== '') {\n const parsedMaxLength = Number(field.maxLength);\n return Number.isNaN(parsedMaxLength) ? null : parsedMaxLength;\n }\n\n return null;\n};\n\nconst normalizeField = (field = {}) => ({\n field: field.field || '',\n width: field.width === 'half' ? 'half' : 'full',\n editable: field.editable !== false,\n maxLength: normalizeMaxLength(field),\n required: Boolean(field.required),\n allowedCharacters: normalizeRegex(field.allowed_characters || field.allowedCharacters),\n inputType: field.field === 'mobilePhone' ? 'phone' : 'text'\n});\n\nconst normalizeFields = (fields = []) =>\n (Array.isArray(fields) ? fields : [])\n .map(normalizeField)\n .filter((field) => field.field);\n\nconst normalizeCountries = (countries = []) =>\n (Array.isArray(countries) ? countries : [])\n .map((country) => ({\n code: country?.code || country?.country_code || '',\n name: country?.name || country?.country_name || country?.code || country?.country_code || ''\n }))\n .filter((country) => country.code);\n\nconst buildLayout = ({ countries, preAddressFields, postAddressFields }) => {\n const layout = [];\n\n if (countries.length > 0) {\n layout.push({ type: 'component', component: 'countrySelector' });\n }\n\n preAddressFields.forEach((field) => {\n layout.push({ type: 'field', field: field.field });\n });\n\n layout.push({ type: 'component', component: 'addressLookup' });\n\n postAddressFields.forEach((field) => {\n layout.push({ type: 'field', field: field.field });\n });\n\n return layout;\n};\n\nconst extractCountries = (result = {}) => {\n if (Array.isArray(result.countries) && Array.isArray(result.countries[0]?.countries)) {\n return result.countries[0].countries;\n }\n\n return result.countries;\n};\n\nconst extractAddressForm = (result = {}) => {\n if (Array.isArray(result.address_form)) {\n return result.address_form[0] || {};\n }\n\n return result.address_form || result.addressForm || {};\n};\n\nconst adaptShippingAddressFormEntry = (result = {}) => ({\n ...result,\n countries: extractCountries(result),\n address_form: extractAddressForm(result)\n});\n\nexport const normalizeShippingAddressForm = (result = {}) => {\n const adaptedResult = adaptShippingAddressFormEntry(result);\n const countries = normalizeCountries(adaptedResult.countries);\n const preAddressFields = normalizeFields(adaptedResult.pre_address_fields || adaptedResult.preAddressFields);\n const postAddressFields = normalizeFields(adaptedResult.post_address_fields || adaptedResult.postAddressFields);\n const addressForm = normalizeAddressForm(adaptedResult.address_form || adaptedResult.addressForm || {});\n\n return {\n countries,\n preAddressFields,\n addressForm,\n postAddressFields,\n layout: buildLayout({ countries, preAddressFields, postAddressFields })\n };\n};\n\nexport const getShippingAddressForm = async (country, type = 'shipping') => {\n const countryCode = country || 'US';\n const formType = type || 'shipping';\n const cacheKey = `${countryCode}_${formType}`;\n\n if (cache[cacheKey]) {\n return cache[cacheKey];\n }\n\n try {\n const stack = getStack();\n const result = await stack.getMultiEntryByFields(\n 'shipping_address_form',\n {\n country: countryCode,\n type: formType\n },\n true\n );\n const normalizedForm = normalizeShippingAddressForm(result || {});\n\n cache[cacheKey] = normalizedForm;\n return normalizedForm;\n } catch (err) {\n const fallback = { ...DEFAULT_SHIPPING_ADDRESS_FORM };\n cache[cacheKey] = fallback;\n return fallback;\n }\n};\n\nexport const clearShippingAddressFormCache = () => {\n Object.keys(cache).forEach((cacheKey) => {\n delete cache[cacheKey];\n });\n};\n\nexport { DEFAULT_SHIPPING_ADDRESS_FORM };\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.3",
3
+ "version": "1.4.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,8 +31,8 @@
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.2.2",
35
- "@nuskin/contentstack-lib": "2.0.2",
34
+ "@nuskin/address-lookup": "1.3.0",
35
+ "@nuskin/contentstack-lib": "2.1.0",
36
36
  "@nuskin/foundation-theme": "1.8.0",
37
37
  "@nuskin/foundation-ui-components": "2.2.1",
38
38
  "prop-types": "^15.8.1",
@@ -72,6 +72,6 @@
72
72
  "dist/"
73
73
  ],
74
74
  "resolutions": {
75
- "@nuskin/contentstack-lib": "2.0.2"
75
+ "@nuskin/contentstack-lib": "2.1.0"
76
76
  }
77
77
  }