ordering-ui-react-native 0.23.34 → 0.23.36
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/package.json +1 -1
- package/themes/business/src/components/OrderDetails/Delivery.tsx +1 -1
- package/themes/original/src/components/BusinessPreorder/index.tsx +28 -21
- package/themes/original/src/components/MomentOption/index.tsx +45 -21
- package/themes/original/src/components/MomentSelector/index.tsx +1 -1
package/package.json
CHANGED
|
@@ -473,7 +473,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
473
473
|
let isBusinessMarker = false;
|
|
474
474
|
const customerStatusses = [3, 9, 19, 23, 26]
|
|
475
475
|
const businessStatusses = [7, 8, 18]
|
|
476
|
-
const arrivedCustomerStatusses = [19, 23]
|
|
476
|
+
const arrivedCustomerStatusses = [9, 19, 23]
|
|
477
477
|
if (businessStatusses?.includes(order?.status)) {
|
|
478
478
|
const markerBusiness = 'Business';
|
|
479
479
|
isBusinessMarker = true;
|
|
@@ -43,7 +43,8 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
43
43
|
getActualSchedule,
|
|
44
44
|
isAsap,
|
|
45
45
|
cateringPreorder,
|
|
46
|
-
preorderLeadTime
|
|
46
|
+
preorderLeadTime,
|
|
47
|
+
preorderMaximumDays
|
|
47
48
|
} = props
|
|
48
49
|
|
|
49
50
|
const theme = useTheme()
|
|
@@ -263,14 +264,23 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
263
264
|
if (cateringPreorder) {
|
|
264
265
|
let _timeLists = []
|
|
265
266
|
const schedule = business && getActualSchedule()
|
|
266
|
-
if (!schedule &&
|
|
267
|
+
if (!schedule && business) {
|
|
268
|
+
setTimeList([])
|
|
267
269
|
return
|
|
268
270
|
}
|
|
271
|
+
|
|
269
272
|
_timeLists = hoursList
|
|
270
|
-
.filter(hour =>
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
273
|
+
.filter(hour => {
|
|
274
|
+
return (Object.keys(business || {})?.length === 0 || schedule?.lapses?.some((lapse: any) => {
|
|
275
|
+
const openHour = lapse.open.hour < 10 ? `0${lapse.open.hour}` : lapse.open.hour
|
|
276
|
+
const openMinute = lapse.open.minute < 10 ? `0${lapse.open.minute}` : lapse.open.minute
|
|
277
|
+
const closeHour = lapse.close.hour < 10 ? `0${lapse.close.hour}` : lapse.close.hour
|
|
278
|
+
const closeMinute = lapse.close.minute < 10 ? `0${lapse.close.minute}` : lapse.close.minute
|
|
279
|
+
return moment(dateSelected + ` ${hour.startTime}`) >= moment(dateSelected + ` ${openHour}:${openMinute}`).add(preorderLeadTime, 'minutes') && moment(dateSelected + ` ${hour.endTime}`) <= moment(dateSelected + ` ${closeHour}:${closeMinute}`)
|
|
280
|
+
})) &&
|
|
281
|
+
(moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`)) &&
|
|
282
|
+
(moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder)
|
|
283
|
+
})
|
|
274
284
|
.map(hour => {
|
|
275
285
|
return {
|
|
276
286
|
value: hour.startTime,
|
|
@@ -298,7 +308,7 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
298
308
|
const _times = getTimes(selectDate, selectedMenu)
|
|
299
309
|
setTimeList(_times)
|
|
300
310
|
}
|
|
301
|
-
}, [selectDate, menu, business, cateringPreorder, hoursList, dateSelected])
|
|
311
|
+
}, [selectDate, menu, JSON.stringify(datesWhitelist), JSON.stringify(business), cateringPreorder, JSON.stringify(hoursList), dateSelected])
|
|
302
312
|
|
|
303
313
|
useEffect(() => {
|
|
304
314
|
if (selectedPreorderType === 0 && Object.keys(menu).length > 0) setMenu({})
|
|
@@ -314,8 +324,8 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
314
324
|
}, [dateSelected])
|
|
315
325
|
|
|
316
326
|
useEffect(() => {
|
|
317
|
-
|
|
318
|
-
|
|
327
|
+
setLocalMoment(moment, t)
|
|
328
|
+
}, [])
|
|
319
329
|
|
|
320
330
|
useFocusEffect(
|
|
321
331
|
React.useCallback(() => {
|
|
@@ -441,22 +451,18 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
441
451
|
{selectDate && datesWhitelist[0]?.start !== null && (
|
|
442
452
|
<CalendarStrip
|
|
443
453
|
scrollable
|
|
444
|
-
style={styles.calendar}
|
|
445
|
-
calendarHeaderContainerStyle={styles.calendarHeaderContainer}
|
|
446
|
-
calendarHeaderStyle={styles.calendarHeader}
|
|
447
|
-
dateNumberStyle={styles.dateNumber}
|
|
448
|
-
dateNameStyle={styles.dateName}
|
|
449
|
-
iconContainer={{ flex: 0.1 }}
|
|
450
|
-
highlightDateNameStyle={styles.highlightDateName}
|
|
451
|
-
highlightDateNumberStyle={styles.highlightDateNumber}
|
|
452
|
-
dayContainerStyle={{ height: '100%' }}
|
|
453
|
-
highlightDateContainerStyle={{ height: '100%' }}
|
|
454
454
|
calendarHeaderFormat='MMMM, YYYY'
|
|
455
455
|
iconStyle={{ borderWidth: 1 }}
|
|
456
456
|
selectedDate={selectDate}
|
|
457
457
|
datesWhitelist={datesWhitelist}
|
|
458
|
+
highlightDateNameStyle={styles.highlightDateName}
|
|
459
|
+
highlightDateNumberStyle={styles.highlightDateNumber}
|
|
460
|
+
minDate={moment()}
|
|
461
|
+
maxDate={cateringPreorder ? moment().add(preorderMaximumDays, 'days') : undefined}
|
|
458
462
|
disabledDateNameStyle={styles.disabledDateName}
|
|
459
463
|
disabledDateNumberStyle={styles.disabledDateNumber}
|
|
464
|
+
dateNumberStyle={styles.dateNumber}
|
|
465
|
+
dateNameStyle={styles.dateName}
|
|
460
466
|
disabledDateOpacity={0.6}
|
|
461
467
|
onDateSelected={(date) => onSelectDate(date)}
|
|
462
468
|
leftSelector={<LeftSelector />}
|
|
@@ -565,9 +571,10 @@ export const BusinessPreorder = (props: any) => {
|
|
|
565
571
|
|
|
566
572
|
const splitCateringValue = (configName: string) =>
|
|
567
573
|
Object.values(props?.business?.configs || {})
|
|
568
|
-
?.find(config => config?.key === configName)
|
|
574
|
+
?.find((config : any) => config?.key === configName)
|
|
569
575
|
?.value?.split('|')
|
|
570
|
-
?.find(val => val.includes(cateringTypeString || ''))?.split(',')[1]
|
|
576
|
+
?.find((val : any) => val.includes(cateringTypeString || ''))?.split(',')[1]
|
|
577
|
+
|
|
571
578
|
const preorderSlotInterval = parseInt(splitCateringValue('preorder_slot_interval'))
|
|
572
579
|
const preorderLeadTime = parseInt(splitCateringValue('preorder_lead_time'))
|
|
573
580
|
const preorderTimeRange = parseInt(splitCateringValue('preorder_time_range'))
|
|
@@ -281,13 +281,21 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
281
281
|
let _timeLists = []
|
|
282
282
|
const schedule = business && getActualSchedule()
|
|
283
283
|
if (!schedule && business) {
|
|
284
|
+
setTimeList([])
|
|
284
285
|
return
|
|
285
286
|
}
|
|
286
287
|
_timeLists = hoursList
|
|
287
|
-
.filter(hour =>
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
.filter(hour => {
|
|
289
|
+
return (Object.keys(business || {})?.length === 0 || schedule?.lapses?.some((lapse: any) => {
|
|
290
|
+
const openHour = lapse.open.hour < 10 ? `0${lapse.open.hour}` : lapse.open.hour
|
|
291
|
+
const openMinute = lapse.open.minute < 10 ? `0${lapse.open.minute}` : lapse.open.minute
|
|
292
|
+
const closeHour = lapse.close.hour < 10 ? `0${lapse.close.hour}` : lapse.close.hour
|
|
293
|
+
const closeMinute = lapse.close.minute < 10 ? `0${lapse.close.minute}` : lapse.close.minute
|
|
294
|
+
return moment(dateSelected + ` ${hour.startTime}`) >= moment(dateSelected + ` ${openHour}:${openMinute}`).add(preorderLeadTime, 'minutes') && moment(dateSelected + ` ${hour.endTime}`) <= moment(dateSelected + ` ${closeHour}:${closeMinute}`)
|
|
295
|
+
})) &&
|
|
296
|
+
(moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`)) &&
|
|
297
|
+
(moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder)
|
|
298
|
+
})
|
|
291
299
|
.map(hour => {
|
|
292
300
|
return {
|
|
293
301
|
value: hour.startTime,
|
|
@@ -324,7 +332,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
324
332
|
}
|
|
325
333
|
}))
|
|
326
334
|
}
|
|
327
|
-
}, [dateSelected, hoursList, JSON.stringify(datesWhitelist), JSON.stringify(business)])
|
|
335
|
+
}, [dateSelected, hoursList?.length, JSON.stringify(datesWhitelist), JSON.stringify(business)])
|
|
328
336
|
|
|
329
337
|
useEffect(() => {
|
|
330
338
|
setLocalMoment(moment, t)
|
|
@@ -340,7 +348,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
340
348
|
|
|
341
349
|
useEffect(() => {
|
|
342
350
|
if (nextTime?.value && timeList?.length > 0 && isCart && !orderState?.loading && !(preorderMinimumDays === 0 && preorderLeadTime === 0)) {
|
|
343
|
-
const notime = timeList?.filter((_
|
|
351
|
+
const notime = timeList?.filter((_: any, i: number) => i !== 0)?.find?.((time: any) => time?.value === timeSelected)
|
|
344
352
|
if (!notime) {
|
|
345
353
|
handleChangeTime(nextTime?.value)
|
|
346
354
|
}
|
|
@@ -430,7 +438,9 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
430
438
|
disabledDateNameStyle={styles.disabledDateName}
|
|
431
439
|
disabledDateNumberStyle={styles.disabledDateNumber}
|
|
432
440
|
disabledDateOpacity={0.6}
|
|
433
|
-
|
|
441
|
+
dateNumberStyle={styles.dateNumber}
|
|
442
|
+
dateNameStyle={styles.dateName}
|
|
443
|
+
onDateSelected={(date: any) => onSelectDate(date)}
|
|
434
444
|
leftSelector={<LeftSelector />}
|
|
435
445
|
rightSelector={<RightSelector />}
|
|
436
446
|
/>
|
|
@@ -438,20 +448,34 @@ const MomentOptionUI = (props: MomentOptionParams) => {
|
|
|
438
448
|
</View>
|
|
439
449
|
)}
|
|
440
450
|
<TimeListWrapper nestedScrollEnabled={true} cateringPreorder={cateringPreorder}>
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
451
|
+
{timeList?.length > 0 ? (
|
|
452
|
+
<TimeContentWrapper>
|
|
453
|
+
{timeList.map((time: any, i: number) => (
|
|
454
|
+
<TimeListItem
|
|
455
|
+
key={i}
|
|
456
|
+
time={time}
|
|
457
|
+
selectedTime={selectedTime}
|
|
458
|
+
handleChangeTimeSelected={handleChangeTimeSelected}
|
|
459
|
+
cateringPreorder={cateringPreorder}
|
|
460
|
+
/>
|
|
461
|
+
))}
|
|
462
|
+
{timeList.length % 3 === 2 && (
|
|
463
|
+
<TimeItem style={{ backgroundColor: 'transparent' }} />
|
|
464
|
+
)}
|
|
465
|
+
</TimeContentWrapper>
|
|
466
|
+
) : (
|
|
467
|
+
<OText
|
|
468
|
+
size={16}
|
|
469
|
+
style={{
|
|
470
|
+
fontWeight: '600',
|
|
471
|
+
lineHeight: 24,
|
|
472
|
+
marginBottom: 12,
|
|
473
|
+
textAlign: 'center'
|
|
474
|
+
}}
|
|
475
|
+
>
|
|
476
|
+
{t('ERROR_ADD_PRODUCT_BUSINESS_CLOSED', 'The business is closed at the moment')}
|
|
477
|
+
</OText>
|
|
478
|
+
)}
|
|
455
479
|
</TimeListWrapper>
|
|
456
480
|
</OrderTimeWrapper>
|
|
457
481
|
)}
|