ordering-ui-external 11.0.11 → 12.0.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/_bundles/{0.ordering-ui.f6ab4fd53f85792a6e5f.js → 0.ordering-ui.6487547c80bb5fd2fdee.js} +1 -1
- package/_bundles/{7.ordering-ui.f6ab4fd53f85792a6e5f.js → 7.ordering-ui.6487547c80bb5fd2fdee.js} +1 -1
- package/_bundles/{ordering-ui.f6ab4fd53f85792a6e5f.js → ordering-ui.6487547c80bb5fd2fdee.js} +2 -2
- package/_modules/themes/callcenterOriginal/src/components/Orders/OrdersTable/styles.js +1 -1
- package/_modules/themes/five/src/components/BusinessController/styles.js +2 -2
- package/_modules/themes/five/src/components/Cart/index.js +7 -7
- package/_modules/themes/five/src/components/Checkout/index.js +108 -87
- package/_modules/themes/five/src/components/MultiCheckout/index.js +65 -20
- package/_modules/themes/five/src/components/UserDetails/index.js +2 -2
- package/_modules/themes/five/src/components/UserFormDetails/index.js +59 -49
- package/_modules/utils/index.js +4 -3
- package/package.json +2 -2
- package/src/themes/callcenterOriginal/src/components/Orders/OrdersTable/styles.js +1 -1
- package/src/themes/five/src/components/BusinessController/styles.js +4 -4
- package/src/themes/five/src/components/Cart/index.js +6 -6
- package/src/themes/five/src/components/Checkout/index.js +75 -66
- package/src/themes/five/src/components/MultiCheckout/index.js +53 -21
- package/src/themes/five/src/components/UserDetails/index.js +2 -2
- package/src/themes/five/src/components/UserFormDetails/index.js +75 -66
- package/src/utils/index.js +3 -3
- /package/_bundles/{1.ordering-ui.f6ab4fd53f85792a6e5f.js → 1.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{2.ordering-ui.f6ab4fd53f85792a6e5f.js → 2.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{4.ordering-ui.f6ab4fd53f85792a6e5f.js → 4.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{5.ordering-ui.f6ab4fd53f85792a6e5f.js → 5.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{6.ordering-ui.f6ab4fd53f85792a6e5f.js → 6.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{7.ordering-ui.f6ab4fd53f85792a6e5f.js.LICENSE.txt → 7.ordering-ui.6487547c80bb5fd2fdee.js.LICENSE.txt} +0 -0
- /package/_bundles/{8.ordering-ui.f6ab4fd53f85792a6e5f.js → 8.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{9.ordering-ui.f6ab4fd53f85792a6e5f.js → 9.ordering-ui.6487547c80bb5fd2fdee.js} +0 -0
- /package/_bundles/{ordering-ui.f6ab4fd53f85792a6e5f.js.LICENSE.txt → ordering-ui.6487547c80bb5fd2fdee.js.LICENSE.txt} +0 -0
|
@@ -50,7 +50,10 @@ export const UserFormDetailsUI = (props) => {
|
|
|
50
50
|
requiredFields,
|
|
51
51
|
handleChangeNotifications,
|
|
52
52
|
handlePlaceOrderAsGuest,
|
|
53
|
-
isAllowGuest
|
|
53
|
+
isAllowGuest,
|
|
54
|
+
isOrderTypeValidationField,
|
|
55
|
+
checkoutFields,
|
|
56
|
+
isCheckoutPlace
|
|
54
57
|
} = props
|
|
55
58
|
|
|
56
59
|
const formMethods = useForm()
|
|
@@ -103,8 +106,8 @@ export const UserFormDetailsUI = (props) => {
|
|
|
103
106
|
handlePlaceOrderAsGuest && handlePlaceOrderAsGuest()
|
|
104
107
|
}
|
|
105
108
|
|
|
106
|
-
const showInputPhoneNumber = validationFields?.fields?.checkout?.cellphone?.enabled ?? false
|
|
107
|
-
const showInputBirthday = validationFields?.fields?.checkout?.birthdate?.enabled ?? false
|
|
109
|
+
const showInputPhoneNumber = isOrderTypeValidationField ? checkoutFields?.find(field => field?.validation_field?.code === 'mobile_phone')?.enabled : (validationFields?.fields?.checkout?.cellphone?.enabled ?? false)
|
|
110
|
+
const showInputBirthday = isOrderTypeValidationField ? checkoutFields?.find(field => field?.validation_field?.code === 'birthdate')?.enabled : (validationFields?.fields?.checkout?.birthdate?.enabled ?? false)
|
|
108
111
|
|
|
109
112
|
const setUserCellPhone = (isEdit = false) => {
|
|
110
113
|
if (userPhoneNumber && !userPhoneNumber.includes('null') && !isEdit) {
|
|
@@ -130,29 +133,37 @@ export const UserFormDetailsUI = (props) => {
|
|
|
130
133
|
}
|
|
131
134
|
|
|
132
135
|
const onSubmit = () => {
|
|
133
|
-
const isPhoneNumberValid = userPhoneNumber ? isValidPhoneNumber : true
|
|
136
|
+
const isPhoneNumberValid = userPhoneNumber && showInputPhoneNumber ? isValidPhoneNumber : true
|
|
137
|
+
const requiredPhone = (user?.guest_id && requiredFields?.includes?.('cellphone')) || (validationFields?.fields?.checkout?.cellphone?.enabled && validationFields?.fields?.checkout?.cellphone?.required)
|
|
138
|
+
const content = []
|
|
139
|
+
if (requiredFields?.includes?.('birthdate') && !birthdate) {
|
|
140
|
+
content.push(t('VALIDATION_ERROR_BIRTHDATE_REQUIRED', 'Birthdate is required'))
|
|
141
|
+
}
|
|
134
142
|
if (!userPhoneNumber &&
|
|
135
143
|
((validationFields?.fields?.checkout?.cellphone?.enabled &&
|
|
136
144
|
validationFields?.fields?.checkout?.cellphone?.required) ||
|
|
137
145
|
configs?.verification_phone_required?.value === '1')
|
|
138
146
|
) {
|
|
147
|
+
content.push(t('VALIDATION_ERROR_MOBILE_PHONE_REQUIRED', 'The field Phone Number is required.'))
|
|
139
148
|
setAlertState({
|
|
140
149
|
open: true,
|
|
141
|
-
content:
|
|
150
|
+
content: content
|
|
142
151
|
})
|
|
143
152
|
return
|
|
144
153
|
}
|
|
145
154
|
if (!isPhoneNumberValid && userPhoneNumber) {
|
|
146
155
|
if (user?.country_phone_code) {
|
|
156
|
+
content.push(t('INVALID_ERROR_PHONE_NUMBER', 'The Phone Number field is invalid'))
|
|
147
157
|
setAlertState({
|
|
148
158
|
open: true,
|
|
149
|
-
content:
|
|
159
|
+
content: content
|
|
150
160
|
})
|
|
151
161
|
return
|
|
152
162
|
}
|
|
163
|
+
content.push(t('INVALID_ERROR_COUNTRY_CODE_PHONE_NUMBER', 'The country code of the phone number is invalid'))
|
|
153
164
|
setAlertState({
|
|
154
165
|
open: true,
|
|
155
|
-
content:
|
|
166
|
+
content: content
|
|
156
167
|
})
|
|
157
168
|
return
|
|
158
169
|
}
|
|
@@ -167,6 +178,13 @@ export const UserFormDetailsUI = (props) => {
|
|
|
167
178
|
if (isCustomerMode) {
|
|
168
179
|
setUserCustomer(formState.result.result, true)
|
|
169
180
|
}
|
|
181
|
+
if (content?.length > 0) {
|
|
182
|
+
setAlertState({
|
|
183
|
+
open: true,
|
|
184
|
+
content: content
|
|
185
|
+
})
|
|
186
|
+
return
|
|
187
|
+
}
|
|
170
188
|
handleButtonUpdateClick(changes)
|
|
171
189
|
}
|
|
172
190
|
}
|
|
@@ -207,9 +225,6 @@ export const UserFormDetailsUI = (props) => {
|
|
|
207
225
|
const handleChangeInputEmail = (e) => {
|
|
208
226
|
handleChangeInput({ target: { name: 'email', value: e.target.value.toLowerCase().replace(/[&,()%";:ç?<>{}\\[\]\s]/g, '') } })
|
|
209
227
|
formMethods.setValue('email', e.target.value.toLowerCase().replace(/[&,()%";:ç?<>{}\\[\]\s]/g, ''))
|
|
210
|
-
if (emailInput.current) {
|
|
211
|
-
emailInput.current.value = e.target.value.toLowerCase().replace(/[&,()%";:ç?<>{}\\[\]\s]/g, '')
|
|
212
|
-
}
|
|
213
228
|
}
|
|
214
229
|
|
|
215
230
|
const showFieldWithTheme = (name) => {
|
|
@@ -258,14 +273,6 @@ export const UserFormDetailsUI = (props) => {
|
|
|
258
273
|
if (!isEdit) onCancel && onCancel()
|
|
259
274
|
}, [user, isEdit])
|
|
260
275
|
|
|
261
|
-
useEffect(() => {
|
|
262
|
-
if (!validationFields.loading && emailInput.current) {
|
|
263
|
-
formMethods.setValue('email', formState?.result?.result
|
|
264
|
-
? formState?.result?.result?.email
|
|
265
|
-
: formState?.changes?.email ?? (user && user?.email) ?? '')
|
|
266
|
-
}
|
|
267
|
-
}, [validationFields, emailInput.current])
|
|
268
|
-
|
|
269
276
|
useEffect(() => {
|
|
270
277
|
if (!validationFields.loading && birthdate) {
|
|
271
278
|
formMethods.setValue('birthdate', formState?.result?.result
|
|
@@ -274,19 +281,6 @@ export const UserFormDetailsUI = (props) => {
|
|
|
274
281
|
}
|
|
275
282
|
}, [validationFields, birthdate])
|
|
276
283
|
|
|
277
|
-
useEffect(() => {
|
|
278
|
-
if (requiredFields) return
|
|
279
|
-
formMethods.register('email', {
|
|
280
|
-
required: isRequiredField('email')
|
|
281
|
-
? t('VALIDATION_ERROR_EMAIL_REQUIRED', 'The field Email is required').replace('_attribute_', t('EMAIL', 'Email'))
|
|
282
|
-
: null,
|
|
283
|
-
pattern: {
|
|
284
|
-
value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
|
|
285
|
-
message: t('INVALID_ERROR_EMAIL', 'Invalid email address').replace('_attribute_', t('EMAIL', 'Email'))
|
|
286
|
-
}
|
|
287
|
-
})
|
|
288
|
-
}, [formMethods])
|
|
289
|
-
|
|
290
284
|
useEffect(() => {
|
|
291
285
|
if (isChanged && userPhoneNumber && isValidPhoneNumber && formState?.changes?.country_phone_code && formState?.changes?.cellphone && configs?.verification_phone_required?.value === '1') {
|
|
292
286
|
setWillVerifyOtpState && setWillVerifyOtpState(true)
|
|
@@ -329,11 +323,12 @@ export const UserFormDetailsUI = (props) => {
|
|
|
329
323
|
props.beforeMidComponents?.map((BeforeMidComponents, i) => (
|
|
330
324
|
<BeforeMidComponents key={i} {...props} />))
|
|
331
325
|
}
|
|
332
|
-
{sortInputFields({ values: validationFields?.fields?.checkout }).map(
|
|
333
|
-
|
|
326
|
+
{sortInputFields({ values: isOrderTypeValidationField ? checkoutFields : validationFields?.fields?.checkout }).map(item => {
|
|
327
|
+
const field = item?.validation_field || item
|
|
328
|
+
return (
|
|
334
329
|
<React.Fragment key={field.id}>
|
|
335
330
|
{field.code === 'email' ? (
|
|
336
|
-
((requiredFields && requiredFields?.includes?.(field.code)) || !requiredFields) && (
|
|
331
|
+
((isOrderTypeValidationField ? item?.enabled : (showField && showField(field.code))) && ((requiredFields && requiredFields?.includes?.(field.code)) || !requiredFields || !isCheckoutPlace)) && (
|
|
337
332
|
<InputGroup>
|
|
338
333
|
<p>{t(field.code.toUpperCase(), field?.name)}</p>
|
|
339
334
|
<Input
|
|
@@ -346,15 +341,18 @@ export const UserFormDetailsUI = (props) => {
|
|
|
346
341
|
placeholder={t(field.code.toUpperCase(), field?.name)}
|
|
347
342
|
defaultValue={formState?.changes[field.code] ?? (user && user[field.code]) ?? ''}
|
|
348
343
|
onChange={handleChangeInputEmail}
|
|
349
|
-
ref={
|
|
350
|
-
|
|
351
|
-
|
|
344
|
+
ref={
|
|
345
|
+
formMethods.register({
|
|
346
|
+
required: t('VALIDATION_ERROR_EMAIL_REQUIRED', 'The field Email is required').replace('_attribute_', t('EMAIL', 'Email')),
|
|
347
|
+
pattern: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i
|
|
348
|
+
})
|
|
349
|
+
}
|
|
352
350
|
autoComplete='off'
|
|
353
351
|
/>
|
|
354
352
|
</InputGroup>
|
|
355
353
|
)
|
|
356
354
|
) : (
|
|
357
|
-
((requiredFields && requiredFields?.includes?.(field.code)) || !requiredFields) && (
|
|
355
|
+
((isOrderTypeValidationField ? item?.enabled : (showField && showField(field.code))) && ((requiredFields && requiredFields?.includes?.(field.code)) || !requiredFields || !isCheckoutPlace)) && (
|
|
358
356
|
<InputGroup>
|
|
359
357
|
<p>{t(field.code.toUpperCase(), field?.name)}</p>
|
|
360
358
|
<Input
|
|
@@ -379,34 +377,45 @@ export const UserFormDetailsUI = (props) => {
|
|
|
379
377
|
)}
|
|
380
378
|
</React.Fragment>
|
|
381
379
|
)
|
|
382
|
-
)}
|
|
383
|
-
{((!user?.guest_id && showInputBirthday) || (user?.guest_id
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
380
|
+
})}
|
|
381
|
+
{((!user?.guest_id && showInputBirthday) || (isOrderTypeValidationField || user?.guest_id)) &&
|
|
382
|
+
showInputBirthday &&
|
|
383
|
+
((requiredFields && requiredFields?.includes?.('birthdate')) || !requiredFields || !isCheckoutPlace) &&
|
|
384
|
+
(
|
|
385
|
+
<InputPhoneNumberWrapper>
|
|
386
|
+
<p>{t('BIRTHDATE', 'Birthdate')}</p>
|
|
387
|
+
<Input
|
|
388
|
+
borderBottom
|
|
389
|
+
className='form'
|
|
390
|
+
value={birthdate ? moment(birthdate).format('YYYY/MM/DD') : ''}
|
|
391
|
+
autoComplete='off'
|
|
392
|
+
onFocus={() => setOpenCalendar(true)}
|
|
393
|
+
ref={formMethods.register({
|
|
394
|
+
required: isRequiredField('birthdate')
|
|
395
|
+
? t('VALIDATION_ERROR_BIRTHDATE_REQUIRED', 'Birthdate is required')
|
|
396
|
+
: null
|
|
397
|
+
})}
|
|
398
|
+
/>
|
|
399
|
+
{openCalendar && (
|
|
400
|
+
<DatePickerUI value={birthdate} onChange={_handleChangeDate} name={'birthdate'} />
|
|
401
|
+
)}
|
|
402
|
+
</InputPhoneNumberWrapper>
|
|
403
|
+
)}
|
|
404
|
+
{((!user?.guest_id && !!showInputPhoneNumber) || (isOrderTypeValidationField || user?.guest_id)) &&
|
|
405
|
+
showCustomerCellphone &&
|
|
406
|
+
((requiredFields && requiredFields?.includes?.('cellphone')) || !requiredFields || !isCheckoutPlace) &&
|
|
407
|
+
(
|
|
408
|
+
<InputPhoneNumberWrapper>
|
|
409
|
+
<p>{t('PHONE', 'Phone')}</p>
|
|
410
|
+
<InputPhoneNumber
|
|
411
|
+
user={user}
|
|
412
|
+
value={userPhoneNumber}
|
|
413
|
+
setValue={handleChangePhoneNumber}
|
|
414
|
+
handleIsValid={setIsValidPhoneNumber}
|
|
415
|
+
disabled={!isEdit}
|
|
416
|
+
/>
|
|
417
|
+
</InputPhoneNumberWrapper>
|
|
418
|
+
)}
|
|
410
419
|
{!isCheckout && showCustomerPassword && !requiredFields && !isCustomerMode && (
|
|
411
420
|
<InputGroup>
|
|
412
421
|
<p>{t('PASSWORD', 'Password')}</p>
|
package/src/utils/index.js
CHANGED
|
@@ -198,15 +198,15 @@ export const fieldsToSort = ['name', 'middle_name', 'lastname', 'second_lastname
|
|
|
198
198
|
export const sortInputFields = ({ fields, values }) => {
|
|
199
199
|
let fieldsBase = fields
|
|
200
200
|
const fieldsSorted = []
|
|
201
|
-
const fieldsArray = Array.isArray(values) ? values : Object.values(values)
|
|
201
|
+
const fieldsArray = Array.isArray(values) ? values : values && Object.values(values)
|
|
202
202
|
|
|
203
203
|
if (!fieldsBase) {
|
|
204
204
|
fieldsBase = fieldsToSort
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
fieldsBase.forEach(f => {
|
|
208
|
-
fieldsArray.forEach(field => {
|
|
209
|
-
if (f === field.code) {
|
|
208
|
+
fieldsArray && fieldsArray.forEach(field => {
|
|
209
|
+
if (f === field.code || f === field?.validation_field?.code) {
|
|
210
210
|
fieldsSorted.push(field)
|
|
211
211
|
}
|
|
212
212
|
})
|
/package/_bundles/{1.ordering-ui.f6ab4fd53f85792a6e5f.js → 1.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
/package/_bundles/{2.ordering-ui.f6ab4fd53f85792a6e5f.js → 2.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
/package/_bundles/{4.ordering-ui.f6ab4fd53f85792a6e5f.js → 4.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
/package/_bundles/{5.ordering-ui.f6ab4fd53f85792a6e5f.js → 5.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
/package/_bundles/{6.ordering-ui.f6ab4fd53f85792a6e5f.js → 6.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/_bundles/{8.ordering-ui.f6ab4fd53f85792a6e5f.js → 8.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|
/package/_bundles/{9.ordering-ui.f6ab4fd53f85792a6e5f.js → 9.ordering-ui.6487547c80bb5fd2fdee.js}
RENAMED
|
File without changes
|