ordering-ui-react-native 0.17.68 → 0.17.69-release

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.
Files changed (201) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +1 -21
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +5 -0
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +270 -245
  15. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  16. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  17. package/themes/business/src/components/Chat/index.tsx +123 -111
  18. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  19. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  20. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  21. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  22. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  23. package/themes/business/src/components/MapView/index.tsx +10 -10
  24. package/themes/business/src/components/NewOrderNotification/index.tsx +35 -21
  25. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  26. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +191 -6
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +103 -39
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +61 -60
  30. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  31. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  32. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  33. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  34. package/themes/business/src/components/OrdersOption/index.tsx +21 -20
  35. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +6 -7
  36. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +2 -2
  37. package/themes/business/src/components/PreviousOrders/index.tsx +266 -154
  38. package/themes/business/src/components/PreviousOrders/styles.tsx +1 -1
  39. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  40. package/themes/business/src/components/ReviewCustomer/index.tsx +18 -13
  41. package/themes/business/src/components/StoresList/index.tsx +3 -4
  42. package/themes/business/src/components/UserProfileForm/index.tsx +11 -13
  43. package/themes/business/src/components/shared/OLink.tsx +11 -3
  44. package/themes/business/src/components/shared/OModal.tsx +16 -9
  45. package/themes/business/src/components/shared/OText.tsx +6 -1
  46. package/themes/business/src/types/index.tsx +24 -13
  47. package/themes/business/src/utils/index.tsx +29 -2
  48. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  49. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  50. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  51. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  52. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  53. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  54. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  55. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  56. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  57. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  58. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  59. package/themes/original/index.tsx +2 -0
  60. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  61. package/themes/original/src/components/AddressForm/index.tsx +61 -39
  62. package/themes/original/src/components/AddressList/index.tsx +27 -22
  63. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  64. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  65. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  66. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  68. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  69. package/themes/original/src/components/BusinessController/index.tsx +80 -66
  70. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  71. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  72. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  73. package/themes/original/src/components/BusinessInformation/index.tsx +139 -85
  74. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  75. package/themes/original/src/components/BusinessListingSearch/index.tsx +349 -339
  76. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  77. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  78. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  79. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  80. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  81. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  82. package/themes/original/src/components/BusinessProductsListing/index.tsx +684 -556
  83. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  84. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  85. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +69 -38
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +0 -1
  88. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  89. package/themes/original/src/components/Cart/index.tsx +77 -79
  90. package/themes/original/src/components/CartContent/index.tsx +117 -20
  91. package/themes/original/src/components/CartContent/styles.tsx +17 -7
  92. package/themes/original/src/components/Checkout/index.tsx +356 -124
  93. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  94. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  95. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  96. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  97. package/themes/original/src/components/Favorite/index.tsx +8 -9
  98. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  99. package/themes/original/src/components/FavoriteList/index.tsx +1 -35
  100. package/themes/original/src/components/FloatingButton/index.tsx +11 -14
  101. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  102. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  103. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  104. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  105. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  106. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  107. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  108. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  109. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  110. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  111. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  112. package/themes/original/src/components/GoogleMap/index.tsx +60 -5
  113. package/themes/original/src/components/Help/index.tsx +8 -8
  114. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
  115. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
  116. package/themes/original/src/components/HelpGuide/index.tsx +6 -6
  117. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  118. package/themes/original/src/components/HelpOrder/index.tsx +6 -15
  119. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  120. package/themes/original/src/components/Home/index.tsx +13 -4
  121. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  122. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  123. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  124. package/themes/original/src/components/LottieAnimation/index.tsx +89 -55
  125. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  126. package/themes/original/src/components/Messages/index.tsx +14 -7
  127. package/themes/original/src/components/MomentOption/index.tsx +195 -90
  128. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  129. package/themes/original/src/components/MultiCart/index.tsx +41 -54
  130. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +162 -50
  131. package/themes/original/src/components/MultiCheckout/index.tsx +329 -100
  132. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  133. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  134. package/themes/original/src/components/MultiOrdersDetails/index.tsx +54 -21
  135. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  136. package/themes/original/src/components/MyOrders/index.tsx +40 -29
  137. package/themes/original/src/components/NavBar/index.tsx +20 -17
  138. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  139. package/themes/original/src/components/Notifications/index.tsx +46 -50
  140. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  141. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  142. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +21 -5
  143. package/themes/original/src/components/OrderDetails/index.tsx +191 -363
  144. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  145. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  146. package/themes/original/src/components/OrderProgress/index.tsx +30 -56
  147. package/themes/original/src/components/OrderSummary/index.tsx +88 -59
  148. package/themes/original/src/components/OrderTypeSelector/index.tsx +2 -1
  149. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  150. package/themes/original/src/components/OrdersOption/index.tsx +68 -87
  151. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  152. package/themes/original/src/components/PageBanner/index.tsx +98 -38
  153. package/themes/original/src/components/PageBanner/styles.tsx +0 -10
  154. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  155. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  156. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  157. package/themes/original/src/components/PaymentOptions/index.tsx +78 -35
  158. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  159. package/themes/original/src/components/ProductForm/index.tsx +105 -30
  160. package/themes/original/src/components/ProductForm/styles.tsx +5 -5
  161. package/themes/original/src/components/ProductItemAccordion/index.tsx +14 -11
  162. package/themes/original/src/components/ProductOptionSubOption/index.tsx +20 -18
  163. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +5 -9
  164. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  165. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  166. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  167. package/themes/original/src/components/Promotions/index.tsx +5 -4
  168. package/themes/original/src/components/Promotions/styles.tsx +3 -1
  169. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  170. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  171. package/themes/original/src/components/ServiceForm/index.tsx +66 -17
  172. package/themes/original/src/components/Sessions/index.tsx +11 -8
  173. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  174. package/themes/original/src/components/SignupForm/index.tsx +43 -27
  175. package/themes/original/src/components/SingleOrderCard/index.tsx +101 -62
  176. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  177. package/themes/original/src/components/SingleProductCard/index.tsx +72 -31
  178. package/themes/original/src/components/SingleProductCard/styles.tsx +20 -4
  179. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  180. package/themes/original/src/components/StripeCardsList/index.tsx +49 -5
  181. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  182. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  183. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  184. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  185. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  186. package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
  187. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  188. package/themes/original/src/components/UserProfile/index.tsx +88 -79
  189. package/themes/original/src/components/UserProfileForm/index.tsx +27 -29
  190. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  191. package/themes/original/src/components/UserVerification/index.tsx +52 -49
  192. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  193. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  194. package/themes/original/src/components/Wallets/index.tsx +66 -30
  195. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  196. package/themes/original/src/components/shared/OButton.tsx +6 -2
  197. package/themes/original/src/components/shared/OInput.tsx +6 -1
  198. package/themes/original/src/components/shared/OModal.tsx +3 -3
  199. package/themes/original/src/types/index.tsx +41 -11
  200. package/themes/original/src/utils/index.tsx +273 -1
  201. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -13,7 +13,8 @@ import IconAntDesign from 'react-native-vector-icons/AntDesign'
13
13
  import {
14
14
  StyleSheet,
15
15
  View,
16
- TouchableOpacity
16
+ Platform,
17
+ Pressable
17
18
  } from 'react-native';
18
19
  import Spinner from 'react-native-loading-spinner-overlay';
19
20
  import { MomentOptionParams } from '../../types';
@@ -37,6 +38,14 @@ const MomentOptionUI = (props: MomentOptionParams) => {
37
38
  hoursList,
38
39
  dateSelected,
39
40
  timeSelected,
41
+ cateringPreorder,
42
+ isCart,
43
+ preorderLeadTime,
44
+ business,
45
+ getActualSchedule,
46
+ preorderMaximumDays,
47
+ preorderMinimumDays,
48
+ isPage,
40
49
  handleAsap,
41
50
  handleChangeDate,
42
51
  handleChangeTime,
@@ -146,12 +155,12 @@ const MomentOptionUI = (props: MomentOptionParams) => {
146
155
  });
147
156
  const { bottom } = useSafeAreaInsets();
148
157
 
149
- const is12hours = configs?.dates_moment_format?.value?.includes('hh:mm')
158
+ const is12hours = configs?.general_hour_format?.value?.includes('hh:mm')
150
159
 
151
160
  const [selectedTime, setSelectedTime] = useState(null);
152
161
  const [datesWhitelist, setDateWhitelist] = useState<any>([{ start: null, end: null }])
153
- const [selectDate, setSelectedDate] = useState<any>(null)
154
-
162
+ const [selectDate, setSelectedDate] = useState<any>(dateSelected)
163
+ const [timeList, setTimeList] = useState<any>(hoursList)
155
164
  const goToBack = () => navigation?.canGoBack() && navigation.goBack();
156
165
 
157
166
  const _handleAsap = () => {
@@ -163,9 +172,9 @@ const MomentOptionUI = (props: MomentOptionParams) => {
163
172
  }
164
173
  };
165
174
 
166
- const handleChangeMoment = () => {
175
+ const handleChangeMoment = (time?: any) => {
167
176
  setMomentState({ isLoading: 1, isEditing: true });
168
- handleChangeTime(selectedTime);
177
+ handleChangeTime(time ?? selectedTime);
169
178
  };
170
179
 
171
180
  const momento = moment(
@@ -204,6 +213,14 @@ const MomentOptionUI = (props: MomentOptionParams) => {
204
213
  if (handleChangeDate) handleChangeDate(moment(val).format('YYYY-MM-DD'))
205
214
  }
206
215
 
216
+ const handleChangeTimeSelected = (time: any) => {
217
+ if (cateringPreorder) {
218
+ handleChangeMoment(time)
219
+ } else {
220
+ setSelectedTime(time)
221
+ }
222
+ }
223
+
207
224
  const LeftSelector = () => {
208
225
  return (
209
226
  <View style={{ height: '100%', justifyContent: 'flex-end' }}>
@@ -230,20 +247,25 @@ const MomentOptionUI = (props: MomentOptionParams) => {
230
247
 
231
248
  useEffect(() => {
232
249
  if (datesList?.length > 0) {
233
- const _datesList = datesList.slice(0, Number(configs?.max_days_preorder?.value || 6))
234
- const minDateParts = _datesList[0].split('-')
235
- const maxDateParts = _datesList[_datesList.length - 1].split('-')
236
- const _minDate = new Date(minDateParts[0], minDateParts[1] - 1, minDateParts[2])
237
- const _maxDate = new Date(maxDateParts[0], maxDateParts[1] - 1, maxDateParts[2])
238
- setDateWhitelist([{ start: _minDate, end: _maxDate }])
250
+ const _datesList = datesList.slice((cateringPreorder && preorderMinimumDays) || 0, Number(cateringPreorder ? preorderMaximumDays || configs?.max_days_preorder?.value : configs?.max_days_preorder?.value ?? 6))
251
+ if (_datesList?.length > 0) {
252
+ const minDateParts = _datesList?.[0]?.split('-')
253
+ const maxDateParts = _datesList[_datesList.length - 1].split('-')
254
+ const _minDate = new Date(minDateParts[0], minDateParts[1] - 1, minDateParts[2])
255
+ const _maxDate = new Date(maxDateParts[0], maxDateParts[1] - 1, maxDateParts[2])
256
+ setDateWhitelist([{ start: _minDate, end: _maxDate }])
257
+ }
239
258
  }
240
- }, [datesList])
259
+ }, [JSON.stringify(datesList), preorderMinimumDays, preorderMaximumDays, cateringPreorder])
241
260
 
242
261
  useEffect(() => {
243
262
  if (dateSelected) {
244
263
  const dateParts = dateSelected.split('-')
245
264
  const _dateSelected = new Date(dateParts[0], dateParts[1] - 1, dateParts[2])
246
265
  setSelectedDate(_dateSelected)
266
+ if (cateringPreorder) {
267
+ onSelectDate(_dateSelected)
268
+ }
247
269
  }
248
270
  }, [dateSelected])
249
271
 
@@ -251,39 +273,98 @@ const MomentOptionUI = (props: MomentOptionParams) => {
251
273
  setSelectedTime(timeSelected)
252
274
  }, [timeSelected])
253
275
 
276
+ useEffect(() => {
277
+ if (cateringPreorder) {
278
+ let _timeLists = []
279
+ const schedule = business && getActualSchedule()
280
+ if (!schedule && business) {
281
+ return
282
+ }
283
+ _timeLists = hoursList
284
+ .filter(hour => (!business || schedule?.lapses?.some((lapse: any) =>
285
+ 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}`))) &&
286
+ moment(dateSelected + ` ${hour.startTime}`) < moment(dateSelected + ` ${hour.endTime}`) &&
287
+ (moment().add(preorderLeadTime, 'minutes') < moment(dateSelected + ` ${hour.startTime}`) || !cateringPreorder))
288
+ .map(hour => {
289
+ return {
290
+ value: hour.startTime,
291
+ text: is12hours ? (
292
+ hour.startTime.includes('12')
293
+ ? `${hour.startTime}PM`
294
+ : parseTime(moment(hour.startTime, 'HH:mm'), { outputFormat: 'hh:mma' })
295
+ ) : (
296
+ parseTime(moment(hour.startTime, 'HH:mm'), { outputFormat: 'HH:mm' })
297
+ ),
298
+ endText: is12hours ? (
299
+ hour.endTime.includes('12')
300
+ ? `${hour.endTime}PM`
301
+ : parseTime(moment(hour.endTime, 'HH:mm'), { outputFormat: 'hh:mma' })
302
+ ) : (
303
+ parseTime(moment(hour.endTime, 'HH:mm'), { outputFormat: 'HH:mm' })
304
+ )
305
+ }
306
+ })
307
+ if (_timeLists?.length > 0) {
308
+ setTimeList(_timeLists)
309
+ }
310
+ } else {
311
+ setTimeList(hoursList.map(hour => {
312
+ return {
313
+ value: hour.startTime,
314
+ text: is12hours ? (
315
+ hour.startTime.includes('12')
316
+ ? `${hour.startTime}PM`
317
+ : parseTime(moment(hour.startTime, 'HH:mm'), { outputFormat: 'hh:mma' })
318
+ ) : (
319
+ parseTime(moment(hour.startTime, 'HH:mm'), { outputFormat: 'HH:mm' })
320
+ )
321
+ }
322
+ }))
323
+ }
324
+ }, [dateSelected, JSON.stringify(hoursList), JSON.stringify(datesWhitelist), cateringPreorder, JSON.stringify(business)])
325
+
254
326
  return (
255
327
  <>
256
- <Container style={{ paddingLeft: 40, paddingRight: 40 }}>
257
- <View style={{ paddingBottom: 90 }}>
258
- <NavBar
259
- onActionLeft={() => goToBack()}
260
- btnStyle={{ paddingLeft: 0 }}
261
- paddingTop={0}
262
- style={{ paddingBottom: 0 }}
263
- title={t('QUESTION_WHEN_ORDER', 'When do you want your order?')}
264
- titleAlign={'center'}
265
- titleStyle={{ fontSize: 20, marginRight: 0, marginLeft: 0 }}
266
- titleWrapStyle={{ paddingHorizontal: 0 }}
267
- />
268
-
269
- <WrapSelectOption
270
- onPress={() => _handleAsap()}
271
- disabled={orderState.loading} style={{ alignItems: 'flex-start' }}>
272
- {optionSelected.isAsap ? (
273
- <OIcon
274
- src={theme.images.general.option_checked}
275
- width={16}
276
- style={{ marginEnd: 24 }}
277
- />
278
- ) : (
279
- <OIcon
280
- src={theme.images.general.option_normal}
281
- width={16}
282
- style={{ marginEnd: 24 }}
283
- />
284
- )}
285
- <OText color={optionSelected.isAsap ? theme.colors.textNormal : theme.colors.disabled}>{t('ASAP_ABBREVIATION', 'ASAP') + ` (${t(moment().format('dddd')?.toLocaleUpperCase(), moment().format('dddd'))}, ${t(monthsEnum[moment().format('MMM')], moment().format('MMM'))}${moment().format(' D, yyyy h:mm A')} + ${t('DELIVERY_TIME', 'delivery time')})`}</OText>
286
- </WrapSelectOption>
328
+ <Container
329
+ style={{
330
+ paddingLeft: !cateringPreorder || isPage ? 40 : 0,
331
+ paddingRight: !cateringPreorder || isPage ? 40 : 0
332
+ }}
333
+ nestedScrollEnabled
334
+ >
335
+ <View style={{ paddingBottom: cateringPreorder ? 0 : 90, paddingRight: 20 }}>
336
+ {!isCart && (
337
+ <NavBar
338
+ onActionLeft={() => goToBack()}
339
+ btnStyle={{ paddingLeft: 0 }}
340
+ style={{ paddingBottom: 0 }}
341
+ paddingTop={Platform.OS === 'ios' ? 10 : 0}
342
+ title={t('QUESTION_WHEN_ORDER', 'When do you want your order?')}
343
+ titleAlign={'center'}
344
+ titleStyle={{ fontSize: 20, marginRight: 0, marginLeft: 0 }}
345
+ titleWrapStyle={{ paddingHorizontal: 0 }}
346
+ />
347
+ )}
348
+ {(preorderMinimumDays === 0 && preorderLeadTime === 0) || !cateringPreorder && (
349
+ <WrapSelectOption
350
+ onPress={() => _handleAsap()}
351
+ disabled={orderState.loading} style={{ alignItems: 'flex-start' }}>
352
+ {optionSelected.isAsap ? (
353
+ <OIcon
354
+ src={theme.images.general.option_checked}
355
+ width={16}
356
+ style={{ marginEnd: 24 }}
357
+ />
358
+ ) : (
359
+ <OIcon
360
+ src={theme.images.general.option_normal}
361
+ width={16}
362
+ style={{ marginEnd: 24 }}
363
+ />
364
+ )}
365
+ <OText color={optionSelected.isAsap ? theme.colors.textNormal : theme.colors.disabled}>{t('ASAP_ABBREVIATION', 'ASAP') + ` (${t(moment().format('dddd')?.toLocaleUpperCase(), moment().format('dddd'))}, ${t(monthsEnum[moment().format('MMM')], moment().format('MMM'))}${moment().format(' D, yyyy h:mm A')} + ${t('DELIVERY_TIME', 'delivery time')})`}</OText>
366
+ </WrapSelectOption>
367
+ )}
287
368
  <WrapSelectOption
288
369
  onPress={() => setOptionSelected({ isAsap: false, isSchedule: true })}
289
370
  disabled={orderState.loading}>
@@ -302,58 +383,80 @@ const MomentOptionUI = (props: MomentOptionParams) => {
302
383
  )}
303
384
  <OText color={optionSelected.isSchedule ? theme.colors.textNormal : theme.colors.disabled}>{t('SCHEDULE_FOR_LATER', 'Schedule for later')}</OText>
304
385
  </WrapSelectOption>
305
-
306
386
  {optionSelected.isSchedule && (
307
387
  <OrderTimeWrapper>
308
- <View style={{ flex: 1 }}>
309
- {selectDate && datesWhitelist[0]?.start !== null && (
310
- <CalendarStrip
311
- scrollable
312
- locale={locale}
313
- style={styles.calendar}
314
- calendarHeaderContainerStyle={styles.calendarHeaderContainer}
315
- calendarHeaderStyle={styles.calendarHeader}
316
- dateNumberStyle={styles.dateNumber}
317
- dateNameStyle={styles.dateName}
318
- iconContainer={{ flex: 0.1 }}
319
- highlightDateNameStyle={styles.highlightDateName}
320
- highlightDateNumberStyle={styles.highlightDateNumber}
321
- dayContainerStyle={{ height: '100%' }}
322
- highlightDateContainerStyle={{ height: '100%' }}
323
- calendarHeaderFormat='MMMM, YYYY'
324
- iconStyle={{ borderWidth: 1 }}
325
- selectedDate={selectDate}
326
- datesWhitelist={datesWhitelist}
327
- disabledDateNameStyle={styles.disabledDateName}
328
- disabledDateNumberStyle={styles.disabledDateNumber}
329
- disabledDateOpacity={0.6}
330
- onDateSelected={(date) => onSelectDate(date)}
331
- leftSelector={<LeftSelector />}
332
- rightSelector={<RightSelector />}
333
- />
334
- )}
335
- </View>
336
- <TimeListWrapper nestedScrollEnabled={true}>
388
+ {datesWhitelist[0]?.start === datesWhitelist[0]?.end && (
389
+ <OText>
390
+ {moment(selectDate).format('Do MMMM, YYYY')}
391
+ </OText>
392
+ )}
393
+ {datesWhitelist[0]?.start !== datesWhitelist[0]?.end && (
394
+ <View style={{ flex: 1 }}>
395
+ {selectDate && datesWhitelist[0]?.start !== null && (
396
+ <CalendarStrip
397
+ scrollable
398
+ style={styles.calendar}
399
+ calendarHeaderContainerStyle={styles.calendarHeaderContainer}
400
+ calendarHeaderStyle={styles.calendarHeader}
401
+ dateNumberStyle={styles.dateNumber}
402
+ dateNameStyle={styles.dateName}
403
+ iconContainer={{ flex: 0.1 }}
404
+ highlightDateNameStyle={styles.highlightDateName}
405
+ highlightDateNumberStyle={styles.highlightDateNumber}
406
+ dayContainerStyle={{ height: '100%' }}
407
+ highlightDateContainerStyle={{ height: '100%' }}
408
+ calendarHeaderFormat='MMMM, YYYY'
409
+ iconStyle={{ borderWidth: 1 }}
410
+ selectedDate={dateSelected}
411
+ datesWhitelist={datesWhitelist}
412
+ minDate={moment()}
413
+ maxDate={cateringPreorder ? moment().add(preorderMaximumDays, 'days') : undefined}
414
+ disabledDateNameStyle={styles.disabledDateName}
415
+ disabledDateNumberStyle={styles.disabledDateNumber}
416
+ disabledDateOpacity={0.6}
417
+ onDateSelected={(date) => onSelectDate(date)}
418
+ leftSelector={<LeftSelector />}
419
+ rightSelector={<RightSelector />}
420
+ />
421
+ )}
422
+ </View>
423
+ )}
424
+ <TimeListWrapper nestedScrollEnabled={true} cateringPreorder={cateringPreorder}>
337
425
  <TimeContentWrapper>
338
- {hoursList.map((time: any, i: number) => (
339
- <TouchableOpacity key={i} onPress={() => setSelectedTime(time.startTime)}>
340
- <TimeItem active={selectedTime === time.startTime}>
426
+ {timeList.map((time: any, i: number) => (
427
+ <Pressable key={i} onPress={() => handleChangeTimeSelected(time.value)}>
428
+ <TimeItem
429
+ active={selectedTime === time.value}
430
+ cateringPreorder={cateringPreorder}
431
+ >
432
+ {cateringPreorder && (
433
+ <>
434
+ {selectedTime === time.value ? (
435
+ <OIcon
436
+ src={theme.images.general.option_checked}
437
+ width={18}
438
+ style={{ marginEnd: 24, bottom: 2 }}
439
+ />
440
+ ) : (
441
+ <OIcon
442
+ src={theme.images.general.option_normal}
443
+ width={18}
444
+ style={{ marginEnd: 24, bottom: 2 }}
445
+ />
446
+ )}
447
+ </>
448
+ )}
341
449
  <OText
342
- size={14}
343
- color={selectedTime === time.startTime ? theme.colors.primary : theme.colors.textNormal}
450
+ size={cateringPreorder ? 18 : 16}
451
+ color={selectedTime === time.value ? theme.colors.primary : theme.colors.textNormal}
344
452
  style={{
345
453
  lineHeight: 24
346
454
  }}
347
- >{is12hours ? (
348
- time.startTime.includes('12')
349
- ? `${time.startTime}PM`
350
- : parseTime(moment(time.startTime, 'HH:mm'), { outputFormat: 'hh:mma' })
351
- ) : time.startTime
352
- }</OText>
455
+ >{time.text} {cateringPreorder && `- ${time.endText}`}</OText>
353
456
  </TimeItem>
354
- </TouchableOpacity>
457
+ </Pressable>
355
458
  ))}
356
- {hoursList.length % 3 === 2 && (
459
+ {timeList.length % 3 === 2 && (
357
460
  <TimeItem style={{ backgroundColor: 'transparent' }} />
358
461
  )}
359
462
  </TimeContentWrapper>
@@ -363,9 +466,11 @@ const MomentOptionUI = (props: MomentOptionParams) => {
363
466
  </View>
364
467
  <Spinner visible={momentState.isLoading === 1} />
365
468
  </Container>
366
- <View style={{ position: 'absolute', bottom: bottom, paddingBottom: 20, paddingHorizontal: 40, backgroundColor: 'white', width: '100%' }}>
367
- <OButton onClick={handleChangeMoment} isDisabled={!selectedTime} text={t('CONTINUE', 'Continue')} style={{ borderRadius: 7.6, height: 44, shadowOpacity: 0 }} textStyle={{ color: 'white', fontSize: 14 }} showNextIcon />
368
- </View>
469
+ {!isCart && !cateringPreorder && (
470
+ <View style={{ position: 'absolute', bottom: bottom, paddingBottom: 20, paddingHorizontal: 40, backgroundColor: 'white', width: '100%' }}>
471
+ <OButton onClick={() => handleChangeMoment()} isDisabled={!selectedTime} text={t('CONTINUE', 'Continue')} style={{ borderRadius: 7.6, height: 44, shadowOpacity: 0 }} textStyle={{ color: 'white', fontSize: 14 }} showNextIcon />
472
+ </View>
473
+ )}
369
474
  </>
370
475
  );
371
476
  };
@@ -30,7 +30,7 @@ const MomentSelectorUI = (props: any) => {
30
30
  const [customizedDateList, setCustomizedDateList] = useState([])
31
31
  const [customizedTimeList, setCustomizedTimeList] = useState([])
32
32
 
33
- const is12hours = configs?.dates_moment_format?.value?.includes('hh:mm')
33
+ const is12hours = configs?.general_hour_format?.value?.includes('hh:mm')
34
34
 
35
35
  const styles = StyleSheet.create({
36
36
  selectOption: {
@@ -1,63 +1,50 @@
1
1
  import React from 'react'
2
- import { ChAddress, ChContainer, ChSection, ChUserDetails, DeliveryOptionsContainer } from '../Checkout/styles'
2
+ import { View } from 'react-native'
3
3
  import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder'
4
- import { Container } from '../../layouts/Container';
5
- import { View, StyleSheet } from 'react-native'
6
4
  import { useTheme } from 'styled-components/native';
7
5
  import { MultiCartCreate } from 'ordering-components/native'
8
6
 
9
- export const MultiCartUI = () => {
10
- const theme = useTheme();
11
-
12
- const styles = StyleSheet.create({
13
- pagePadding: {
14
- paddingHorizontal: 40
15
- }
16
- })
17
-
18
- return (
19
- <>
20
- <Container noPadding>
21
- <ChContainer style={styles.pagePadding}>
22
- <ChSection>
23
- <ChUserDetails>
24
- <Placeholder Animation={Fade}>
25
- <PlaceholderLine height={20} />
26
- <PlaceholderLine height={12} />
27
- <PlaceholderLine height={12} />
28
- <PlaceholderLine height={12} style={{ marginBottom: 20 }} />
29
- </Placeholder>
30
- </ChUserDetails>
31
- <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginHorizontal: -40 }} />
32
- </ChSection>
33
- <DeliveryOptionsContainer>
34
- <View style={{ height: 110 }}>
35
- <Placeholder Animation={Fade}>
36
- <PlaceholderLine height={20} />
37
- <PlaceholderLine height={40} />
38
- </Placeholder>
39
- </View>
40
- </DeliveryOptionsContainer>
41
- <ChSection>
42
- <ChAddress>
43
- <Placeholder Animation={Fade}>
44
- <PlaceholderLine height={20} style={{ marginBottom: 50 }} />
45
- <PlaceholderLine height={100} />
46
- </Placeholder>
47
- </ChAddress>
48
- <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginTop: 13, marginHorizontal: -40 }} />
49
- </ChSection>
50
- </ChContainer>
51
- </Container>
7
+ import { Container } from '../../layouts/Container';
8
+ import { ChContainer, ChSection, ChUserDetails } from '../Checkout/styles'
52
9
 
53
- </>
54
- )
10
+ export const MultiCartUI = () => {
11
+ const theme = useTheme();
12
+ return (
13
+ <Container noPadding>
14
+ <ChContainer style={{ paddingHorizontal: 40 }}>
15
+ <ChSection>
16
+ <ChUserDetails>
17
+ <Placeholder Animation={Fade}>
18
+ <PlaceholderLine height={20} />
19
+ <PlaceholderLine height={20} />
20
+ <PlaceholderLine height={20} />
21
+ <PlaceholderLine height={20} style={{ marginBottom: 20 }} />
22
+ </Placeholder>
23
+ <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginHorizontal: -40, marginBottom: 20 }} />
24
+ <Placeholder Animation={Fade}>
25
+ <PlaceholderLine height={20} />
26
+ <PlaceholderLine height={20} />
27
+ <PlaceholderLine height={20} />
28
+ <PlaceholderLine height={20} style={{ marginBottom: 20 }} />
29
+ </Placeholder>
30
+ <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100, marginHorizontal: -40, marginBottom: 20 }} />
31
+ <Placeholder Animation={Fade}>
32
+ <PlaceholderLine height={20} />
33
+ <PlaceholderLine height={120} style={{ marginBottom: 20, borderRadius: 8 }} />
34
+ <PlaceholderLine height={20} />
35
+ <PlaceholderLine height={20} />
36
+ </Placeholder>
37
+ </ChUserDetails>
38
+ </ChSection>
39
+ </ChContainer>
40
+ </Container>
41
+ )
55
42
  }
56
43
 
57
- export const MultiCart = (props : any) => {
58
- const mulcartProps = {
59
- ...props,
60
- UIComponent: MultiCartUI
61
- }
62
- return <MultiCartCreate {...mulcartProps} />
44
+ export const MultiCart = (props: any) => {
45
+ const mulcartProps = {
46
+ ...props,
47
+ UIComponent: MultiCartUI
48
+ }
49
+ return <MultiCartCreate {...mulcartProps} />
63
50
  }