ordering-ui-react-native 0.17.16 → 0.17.17-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 (209) hide show
  1. package/package.json +5 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/OrderCreating/index.tsx +1 -21
  5. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  6. package/src/components/StripeMethodForm/index.tsx +108 -77
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/components/shared/OToast.tsx +4 -4
  9. package/src/types/index.tsx +5 -0
  10. package/src/utils/index.tsx +7 -1
  11. package/themes/business/index.tsx +2 -0
  12. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +265 -240
  13. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  14. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  15. package/themes/business/src/components/Chat/index.tsx +118 -107
  16. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  17. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  18. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  19. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  20. package/themes/business/src/components/LoginForm/index.tsx +238 -80
  21. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/NewOrderNotification/index.tsx +43 -50
  24. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  25. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +90 -47
  26. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +59 -62
  27. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  28. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  29. package/themes/business/src/components/OrderMessage/index.tsx +18 -17
  30. package/themes/business/src/components/OrderSummary/index.tsx +113 -121
  31. package/themes/business/src/components/OrdersOption/index.tsx +32 -75
  32. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  33. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  34. package/themes/business/src/components/PreviousOrders/index.tsx +445 -243
  35. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  36. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  37. package/themes/business/src/components/ReviewCustomer/index.tsx +41 -24
  38. package/themes/business/src/components/StoresList/index.tsx +2 -2
  39. package/themes/business/src/components/shared/OLink.tsx +33 -13
  40. package/themes/business/src/components/shared/OModal.tsx +16 -9
  41. package/themes/business/src/components/shared/OText.tsx +8 -2
  42. package/themes/business/src/types/index.tsx +32 -2
  43. package/themes/business/src/utils/index.tsx +44 -1
  44. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  45. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  46. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  47. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  48. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  49. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  50. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  51. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  52. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  56. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +3 -2
  57. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  58. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  59. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  60. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  61. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  62. package/themes/kiosk/src/types/index.d.ts +13 -0
  63. package/themes/kiosk/src/utils/index.tsx +15 -0
  64. package/themes/original/index.tsx +10 -2
  65. package/themes/original/src/components/AddressDetails/index.tsx +29 -11
  66. package/themes/original/src/components/AddressForm/index.tsx +41 -16
  67. package/themes/original/src/components/AddressList/index.tsx +26 -21
  68. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  69. package/themes/original/src/components/AnalyticsSegment/index.tsx +195 -12
  70. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  71. package/themes/original/src/components/BusinessBasicInformation/index.tsx +166 -89
  72. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +9 -7
  73. package/themes/original/src/components/BusinessController/index.tsx +145 -68
  74. package/themes/original/src/components/BusinessController/styles.tsx +22 -9
  75. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  76. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  77. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  78. package/themes/original/src/components/BusinessItemAccordion/index.tsx +23 -22
  79. package/themes/original/src/components/BusinessListingSearch/index.tsx +350 -323
  80. package/themes/original/src/components/BusinessPreorder/index.tsx +97 -16
  81. package/themes/original/src/components/BusinessProductsList/index.tsx +20 -11
  82. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  83. package/themes/original/src/components/BusinessProductsListing/index.tsx +617 -493
  84. package/themes/original/src/components/BusinessProductsListing/styles.tsx +7 -13
  85. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  86. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  87. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +105 -78
  88. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  89. package/themes/original/src/components/BusinessesListing/index.tsx +5 -3
  90. package/themes/original/src/components/Cart/index.tsx +88 -43
  91. package/themes/original/src/components/CartContent/index.tsx +110 -19
  92. package/themes/original/src/components/CartContent/styles.tsx +15 -1
  93. package/themes/original/src/components/Checkout/index.tsx +323 -178
  94. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  95. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  96. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  97. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  98. package/themes/original/src/components/DriverTips/index.tsx +49 -34
  99. package/themes/original/src/components/Favorite/index.tsx +7 -4
  100. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  101. package/themes/original/src/components/FavoriteList/index.tsx +51 -80
  102. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  103. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  104. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  105. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  106. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  107. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  108. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  109. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +178 -0
  110. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  111. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  112. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  113. package/themes/original/src/components/Help/index.tsx +8 -8
  114. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +11 -22
  115. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  116. package/themes/original/src/components/HelpGuide/index.tsx +12 -16
  117. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  118. package/themes/original/src/components/HelpOrder/index.tsx +12 -25
  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/LanguageSelector/index.tsx +19 -14
  122. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  123. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  124. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  125. package/themes/original/src/components/LoginForm/index.tsx +48 -19
  126. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  127. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  128. package/themes/original/src/components/Messages/index.tsx +32 -10
  129. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  130. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  131. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +195 -116
  132. package/themes/original/src/components/MultiCheckout/index.tsx +262 -83
  133. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  134. package/themes/original/src/components/MultiOrdersDetails/index.tsx +67 -20
  135. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  136. package/themes/original/src/components/MyOrders/index.tsx +55 -51
  137. package/themes/original/src/components/NavBar/index.tsx +6 -11
  138. package/themes/original/src/components/Notifications/index.tsx +144 -0
  139. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  140. package/themes/original/src/components/OrderDetails/OrderEta.tsx +64 -0
  141. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +15 -3
  142. package/themes/original/src/components/OrderDetails/index.tsx +262 -347
  143. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  144. package/themes/original/src/components/OrderItAgain/index.tsx +47 -43
  145. package/themes/original/src/components/OrderProgress/index.tsx +74 -112
  146. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  147. package/themes/original/src/components/OrderSummary/index.tsx +67 -29
  148. package/themes/original/src/components/OrderTypeSelector/index.tsx +3 -2
  149. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +24 -19
  150. package/themes/original/src/components/OrdersOption/index.tsx +96 -88
  151. package/themes/original/src/components/PageBanner/index.tsx +171 -0
  152. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  153. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  154. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  155. package/themes/original/src/components/PaymentOptions/index.tsx +34 -6
  156. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  157. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  158. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  159. package/themes/original/src/components/ProductForm/index.tsx +231 -253
  160. package/themes/original/src/components/ProductForm/styles.tsx +4 -7
  161. package/themes/original/src/components/ProductItemAccordion/index.tsx +197 -138
  162. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  163. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  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 +234 -220
  168. package/themes/original/src/components/Promotions/styles.tsx +10 -3
  169. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  170. package/themes/original/src/components/ReviewOrder/index.tsx +26 -9
  171. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  172. package/themes/original/src/components/ReviewProducts/index.tsx +7 -4
  173. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  174. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  175. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  176. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  177. package/themes/original/src/components/ServiceForm/index.tsx +366 -288
  178. package/themes/original/src/components/Sessions/index.tsx +11 -8
  179. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  180. package/themes/original/src/components/SignupForm/index.tsx +82 -67
  181. package/themes/original/src/components/SingleOrderCard/index.tsx +148 -62
  182. package/themes/original/src/components/SingleOrderCard/styles.tsx +11 -9
  183. package/themes/original/src/components/SingleProductCard/index.tsx +99 -55
  184. package/themes/original/src/components/SingleProductCard/styles.tsx +27 -13
  185. package/themes/original/src/components/SingleProductReview/index.tsx +8 -2
  186. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  187. package/themes/original/src/components/StripeCardsList/index.tsx +9 -2
  188. package/themes/original/src/components/StripeElementsForm/index.tsx +28 -15
  189. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -218
  190. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  191. package/themes/original/src/components/UserDetails/index.tsx +8 -4
  192. package/themes/original/src/components/UserFormDetails/index.tsx +53 -54
  193. package/themes/original/src/components/UserProfile/index.tsx +57 -41
  194. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  195. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  196. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  197. package/themes/original/src/components/Wallets/index.tsx +31 -17
  198. package/themes/original/src/components/Wallets/styles.tsx +2 -0
  199. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  200. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  201. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  202. package/themes/original/src/components/shared/OButton.tsx +6 -2
  203. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  204. package/themes/original/src/components/shared/OInput.tsx +10 -1
  205. package/themes/original/src/components/shared/OModal.tsx +3 -3
  206. package/themes/original/src/layouts/Container.tsx +13 -9
  207. package/themes/original/src/types/index.tsx +41 -10
  208. package/themes/original/src/utils/index.tsx +375 -58
  209. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,21 +1,21 @@
1
1
  import React, { useState } from 'react'
2
- import { ScrollView, TouchableOpacity, View, StyleSheet, Platform } from 'react-native'
3
- import { useUtils, useLanguage } from 'ordering-components/native'
2
+ import { ScrollView, TouchableOpacity, View, StyleSheet } from 'react-native'
3
+ import { useLanguage } from 'ordering-components/native'
4
4
  import { useTheme } from 'styled-components/native'
5
- import FastImage from 'react-native-fast-image'
6
- import { OIcon, OText, OModal } from '../shared'
5
+ import { OText, OModal } from '../shared'
7
6
  import { ProfessionalProfile } from '../ProfessionalProfile'
8
7
  import { ProfessionalFilterParams } from '../../types'
8
+ import { SingleProfessionalCard } from './SingleProfessionalCard'
9
9
 
10
10
  export const ProfessionalFilter = (props: ProfessionalFilterParams) => {
11
11
  const {
12
12
  professionals,
13
13
  professionalSelected,
14
- handleChangeProfessionalSelected
14
+ handleChangeProfessionalSelected,
15
+ handleUpdateProfessionals
15
16
  } = props
16
17
 
17
18
  const theme = useTheme()
18
- const [{ optimizeImage }] = useUtils()
19
19
  const [, t] = useLanguage()
20
20
  const [open, setOpen] = useState(false)
21
21
  const [currentProfessional, setCurrentProfessional] = useState(null)
@@ -30,6 +30,11 @@ export const ProfessionalFilter = (props: ProfessionalFilterParams) => {
30
30
  setOpen(false)
31
31
  }
32
32
 
33
+ const onUpdateProfessionals = (id, changes) => {
34
+ const updatedProfessional = professionals.find(professional => professional.id === id)
35
+ handleUpdateProfessionals({ ...updatedProfessional, ...changes })
36
+ }
37
+
33
38
  const styles = StyleSheet.create({
34
39
  professionalItem: {
35
40
  flexDirection: 'row',
@@ -39,12 +44,7 @@ export const ProfessionalFilter = (props: ProfessionalFilterParams) => {
39
44
  borderWidth: 1,
40
45
  marginRight: 12,
41
46
  minHeight: 64
42
- },
43
- photoStyle: {
44
- width: 42,
45
- height: 42,
46
- borderRadius: 7.6
47
- }
47
+ }
48
48
  })
49
49
 
50
50
  return (
@@ -73,44 +73,14 @@ export const ProfessionalFilter = (props: ProfessionalFilterParams) => {
73
73
  </OText>
74
74
  </View>
75
75
  </TouchableOpacity>
76
- {professionals.map((professional: any, i: number) => (
77
- <TouchableOpacity
78
- key={i}
79
- onPress={() => handleOpenProfile(professional)}
80
- >
81
- <View
82
- style={{
83
- ...styles.professionalItem,
84
- borderColor: (professional?.id === professionalSelected?.id)
85
- ? theme.colors.primary
86
- : theme.colors.border
87
- }}
88
- >
89
- {professional?.photo ? (
90
- <FastImage
91
- style={styles.photoStyle}
92
- source={{
93
- uri: optimizeImage(professional?.photo, 'h_250,c_limit'),
94
- priority: FastImage.priority.normal,
95
- }}
96
- resizeMode={FastImage.resizeMode.cover}
97
- />
98
- ) : (
99
- <OIcon
100
- src={theme?.images?.general?.user}
101
- cover={false}
102
- style={styles.photoStyle}
103
- />
104
- )}
105
- <OText
106
- size={12}
107
- style={{ marginLeft: 12 }}
108
- weight={'400'}
109
- >
110
- {professional?.name} {professional?.lastname}
111
- </OText>
112
- </View>
113
- </TouchableOpacity>
76
+ {professionals.map((professional: any) => (
77
+ <SingleProfessionalCard
78
+ key={professional.id}
79
+ professional={professional}
80
+ active={professional?.id === professionalSelected?.id}
81
+ handleProfessionalClick={handleOpenProfile}
82
+ handleUpdateProfessionals={onUpdateProfessionals}
83
+ />
114
84
  ))}
115
85
  </ScrollView>
116
86
  <OModal
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect, useRef } from 'react'
2
- import { StyleSheet, Platform, View, Dimensions } from 'react-native'
2
+ import { StyleSheet, Platform, View, Dimensions, Text } from 'react-native'
3
3
  import { useUtils, useLanguage, useConfig } from 'ordering-components/native'
4
4
  import { useTheme } from 'styled-components/native'
5
5
  import CalendarPicker from 'react-native-calendar-picker'
@@ -60,7 +60,12 @@ export const ProfessionalProfile = (props: ProfessionalProfileParams) => {
60
60
  },
61
61
  photoStyle: {
62
62
  alignSelf: 'center'
63
- }
63
+ },
64
+ dropDownRow: {
65
+ color: theme.colors.primary,
66
+ fontSize: 14,
67
+ marginHorizontal: 0
68
+ },
64
69
  })
65
70
 
66
71
  const onDateChange = (date: any) => {
@@ -92,6 +97,28 @@ export const ProfessionalProfile = (props: ProfessionalProfileParams) => {
92
97
  setIsEnabled(menu?.schedule?.[day]?.enabled || false)
93
98
  }
94
99
 
100
+ const getMomentTime = (time) => {
101
+ const _moment = moment(`${moment(selectDate).format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm').toDate()
102
+ return _moment
103
+ }
104
+
105
+ const isBusyTime = (professional, selectedMoment) => {
106
+ if (!selectedMoment) return false
107
+ const startDay = moment(selectedMoment).utc().format('d')
108
+ const isStartScheduleEnabled = professional?.schedule?.[startDay]?.enabled
109
+ if (!isStartScheduleEnabled) return true
110
+
111
+ if (professional?.busy_times?.length === 0) return false
112
+
113
+ const busyTimes = professional?.busy_times
114
+
115
+ const valid = busyTimes.some(item => {
116
+ return (moment.utc(item?.start).local().valueOf() <= moment(selectedMoment).valueOf() &&
117
+ moment(selectedMoment).valueOf() < moment.utc(item?.end).local().valueOf())
118
+ })
119
+ return valid
120
+ }
121
+
95
122
  const getTimes = (curdate: any, menu: any) => {
96
123
  validateSelectedDate(curdate, menu)
97
124
  const date = new Date()
@@ -147,7 +174,7 @@ export const ProfessionalProfile = (props: ProfessionalProfileParams) => {
147
174
  }
148
175
 
149
176
  useEffect(() => {
150
- if (selectDate === null) return
177
+ if (selectDate === null || !professional?.schedule) return
151
178
  const _times = getTimes(selectDate, professional)
152
179
  setTimeList(_times)
153
180
  }, [selectDate, professional])
@@ -238,10 +265,12 @@ export const ProfessionalProfile = (props: ProfessionalProfileParams) => {
238
265
  paddingTop: 8,
239
266
  paddingHorizontal: 12
240
267
  }}
241
- rowTextStyle={{
242
- color: theme.colors.disabled,
243
- fontSize: 14,
244
- marginHorizontal: 0
268
+ renderCustomizedRowChild={(item, index) => {
269
+ return (
270
+ <Text style={[styles.dropDownRow, { color: isBusyTime(professional, getMomentTime(item.value)) ? theme.colors.lightGray : theme.colors.primary } ]}>
271
+ {item.text}
272
+ </Text>
273
+ )
245
274
  }}
246
275
  renderDropdownIcon={() => dropDownIcon()}
247
276
  dropdownOverlayColor='transparent'