ordering-ui-react-native 0.23.35 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ordering-ui-react-native",
3
- "version": "0.23.35",
3
+ "version": "0.23.36",
4
4
  "description": "Reusable components made in react native",
5
5
  "main": "src/index.tsx",
6
6
  "author": "ordering.inc",
@@ -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 && cateringPreorder && Object.keys(business)?.length > 0) {
267
+ if (!schedule && business) {
268
+ setTimeList([])
267
269
  return
268
270
  }
271
+
269
272
  _timeLists = hoursList
270
- .filter(hour => ((Object.keys(business || {})?.length === 0) || schedule?.lapses?.some((lapse: any) =>
271
- moment(dateSelected + ` ${hour.startTime}`) >= moment(dateSelected + ` ${lapse.open.hour}:${lapse.open.minute}`).add(preorderLeadTime, 'minutes') && moment(dateSelected + ` ${hour.endTime}`) <= moment(dateSelected + ` ${lapse.close.hour}:${lapse.close.minute}`))) &&
272
- moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`) &&
273
- (moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder))
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
- setLocalMoment(moment, t)
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 => (Object.keys(business || {})?.length === 0 || schedule?.lapses?.some((lapse : any) =>
288
- moment(dateSelected + ` ${hour.startTime}`) >= moment(dateSelected + ` ${lapse.open.hour}:${lapse.open.minute}`).add(preorderLeadTime, 'minutes') && moment(dateSelected + ` ${hour.endTime}`) <= moment(dateSelected + ` ${lapse.close.hour}:${lapse.close.minute}`))) &&
289
- moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`) &&
290
- (moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder))
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((_ : any, i : number) => i !== 0)?.find?.((time : any) => time?.value === timeSelected)
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
- onDateSelected={(date : any) => onSelectDate(date)}
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
- <TimeContentWrapper>
442
- {timeList.map((time: any, i: number) => (
443
- <TimeListItem
444
- key={i}
445
- time={time}
446
- selectedTime={selectedTime}
447
- handleChangeTimeSelected={handleChangeTimeSelected}
448
- cateringPreorder={cateringPreorder}
449
- />
450
- ))}
451
- {timeList.length % 3 === 2 && (
452
- <TimeItem style={{ backgroundColor: 'transparent' }} />
453
- )}
454
- </TimeContentWrapper>
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
  )}
@@ -194,4 +194,4 @@ export const MomentSelector = (props: any) => {
194
194
  maxDate: currentDate
195
195
  }
196
196
  return <MomentOptionController {...businessPreorderProps} />
197
- }
197
+ }