ordering-ui-react-native 0.16.41 → 0.16.42-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 (199) hide show
  1. package/package.json +7 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +8 -14
  5. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  6. package/src/components/BusinessInformation/index.tsx +33 -4
  7. package/src/components/BusinessInformation/styles.tsx +2 -2
  8. package/src/components/BusinessProductsList/index.tsx +10 -10
  9. package/src/components/BusinessesListing/index.tsx +1 -1
  10. package/src/components/Checkout/index.tsx +2 -1
  11. package/src/components/LanguageSelector/index.tsx +21 -16
  12. package/src/components/Messages/index.tsx +2 -2
  13. package/src/components/NotificationSetting/index.tsx +85 -0
  14. package/src/components/OrdersOption/index.tsx +54 -56
  15. package/src/components/PaymentOptions/index.tsx +298 -345
  16. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  17. package/src/components/ReviewDriver/index.tsx +1 -1
  18. package/src/components/ReviewOrder/index.tsx +1 -1
  19. package/src/components/ReviewProducts/index.tsx +11 -0
  20. package/src/components/SingleProductReview/index.tsx +8 -5
  21. package/src/components/StripeElementsForm/index.tsx +25 -16
  22. package/src/components/VerifyPhone/styles.tsx +1 -2
  23. package/src/components/shared/OBottomPopup.tsx +6 -2
  24. package/src/index.tsx +2 -0
  25. package/src/pages/BusinessesListing.tsx +7 -6
  26. package/src/pages/OrderDetails.tsx +1 -1
  27. package/src/pages/ReviewDriver.tsx +2 -2
  28. package/src/pages/ReviewOrder.tsx +2 -2
  29. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  30. package/src/utils/index.tsx +2 -1
  31. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  32. package/themes/business/src/components/Chat/index.tsx +40 -32
  33. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  34. package/themes/business/src/components/DriverSchedule/index.tsx +36 -19
  35. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  36. package/themes/business/src/components/MapView/index.tsx +12 -1
  37. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  38. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
  39. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  40. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  41. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  42. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  43. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  44. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  45. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  46. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  47. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  48. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  49. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  50. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  51. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  52. package/themes/business/src/components/PreviousOrders/index.tsx +22 -24
  53. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  54. package/themes/business/src/components/ReviewCustomer/index.tsx +27 -13
  55. package/themes/business/src/components/ScheduleBlocked/index.tsx +2 -2
  56. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  57. package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
  58. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  59. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  60. package/themes/business/src/types/index.tsx +15 -9
  61. package/themes/business/src/utils/index.tsx +10 -0
  62. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  63. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  64. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  65. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  66. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  67. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  68. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  69. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  70. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  71. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  72. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  73. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  74. package/themes/kiosk/src/types/index.d.ts +2 -0
  75. package/themes/original/index.tsx +4 -0
  76. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  77. package/themes/original/src/components/AddressForm/index.tsx +157 -140
  78. package/themes/original/src/components/AddressList/index.tsx +1 -1
  79. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  80. package/themes/original/src/components/BusinessBasicInformation/index.tsx +218 -147
  81. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +2 -2
  82. package/themes/original/src/components/BusinessController/index.tsx +216 -113
  83. package/themes/original/src/components/BusinessController/styles.tsx +1 -8
  84. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  85. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  86. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  87. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  88. package/themes/original/src/components/BusinessListingSearch/index.tsx +109 -139
  89. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  90. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  91. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  92. package/themes/original/src/components/BusinessProductsList/index.tsx +59 -60
  93. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  94. package/themes/original/src/components/BusinessProductsListing/index.tsx +210 -115
  95. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -11
  96. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  97. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +37 -25
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -4
  99. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +260 -109
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +47 -10
  101. package/themes/original/src/components/BusinessesListing/index.tsx +95 -7
  102. package/themes/original/src/components/Cart/index.tsx +53 -15
  103. package/themes/original/src/components/Cart/styles.tsx +4 -0
  104. package/themes/original/src/components/CartContent/index.tsx +22 -16
  105. package/themes/original/src/components/Checkout/index.tsx +114 -118
  106. package/themes/original/src/components/Checkout/styles.tsx +4 -3
  107. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  108. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  109. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  110. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  111. package/themes/original/src/components/FavoriteList/index.tsx +19 -0
  112. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  113. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  114. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  115. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  116. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
  117. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
  118. package/themes/original/src/components/HelpGuide/index.tsx +9 -8
  119. package/themes/original/src/components/HelpOrder/index.tsx +9 -8
  120. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  121. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -73
  122. package/themes/original/src/components/LoginForm/index.tsx +98 -41
  123. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  124. package/themes/original/src/components/Messages/index.tsx +20 -20
  125. package/themes/original/src/components/MomentOption/index.tsx +8 -6
  126. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  127. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  128. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  129. package/themes/original/src/components/MyOrders/index.tsx +88 -22
  130. package/themes/original/src/components/NavBar/index.tsx +15 -9
  131. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  132. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  133. package/themes/original/src/components/Notifications/index.tsx +148 -0
  134. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  135. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  136. package/themes/original/src/components/OrderDetails/index.tsx +200 -37
  137. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  138. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  139. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  140. package/themes/original/src/components/OrderProgress/index.tsx +77 -66
  141. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  142. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  143. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  144. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  145. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +97 -106
  146. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  147. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  148. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  149. package/themes/original/src/components/PaymentOptions/index.tsx +1 -2
  150. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  151. package/themes/original/src/components/PlaceSpot/index.tsx +249 -47
  152. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  153. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  154. package/themes/original/src/components/ProductForm/index.tsx +639 -664
  155. package/themes/original/src/components/ProductForm/styles.tsx +10 -11
  156. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  157. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  158. package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
  159. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +0 -1
  160. package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
  161. package/themes/original/src/components/ProfessionalProfile/index.tsx +26 -14
  162. package/themes/original/src/components/Promotions/index.tsx +232 -219
  163. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  164. package/themes/original/src/components/ReviewDriver/index.tsx +7 -7
  165. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  166. package/themes/original/src/components/ReviewProducts/index.tsx +2 -2
  167. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  168. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  169. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  170. package/themes/original/src/components/ServiceForm/index.tsx +410 -258
  171. package/themes/original/src/components/SignupForm/index.tsx +160 -113
  172. package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
  173. package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
  174. package/themes/original/src/components/SingleProductCard/index.tsx +198 -112
  175. package/themes/original/src/components/SingleProductCard/styles.tsx +3 -10
  176. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  177. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  178. package/themes/original/src/components/StripeElementsForm/index.tsx +13 -2
  179. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
  180. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  181. package/themes/original/src/components/UserFormDetails/index.tsx +6 -48
  182. package/themes/original/src/components/UserProfile/index.tsx +56 -31
  183. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  184. package/themes/original/src/components/UserProfileForm/index.tsx +10 -10
  185. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  186. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  187. package/themes/original/src/components/Wallets/index.tsx +176 -164
  188. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  189. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  190. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  191. package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
  192. package/themes/original/src/components/shared/OButton.tsx +10 -3
  193. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  194. package/themes/original/src/components/shared/OInput.tsx +13 -3
  195. package/themes/original/src/layouts/Container.tsx +13 -9
  196. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  197. package/themes/original/src/types/index.tsx +82 -28
  198. package/themes/original/src/utils/index.tsx +103 -58
  199. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -8,7 +8,9 @@ import { Platform } from 'react-native'
8
8
  export const OrdersOptionDelivery = (props: any) => {
9
9
  const {
10
10
  search,
11
- onSearch
11
+ onSearch,
12
+ setOpenedSelect,
13
+ openedSelect
12
14
  } = props
13
15
 
14
16
  const theme = useTheme();
@@ -18,6 +20,14 @@ export const OrdersOptionDelivery = (props: any) => {
18
20
  { value: '2', content: t('PICKUP', 'Pickup') }
19
21
  ]
20
22
 
23
+ const handleClear = () => {
24
+ onSearch({ ...search, delivery_type: '' })
25
+ }
26
+
27
+ const handleOpenSelect = () => {
28
+ setOpenedSelect('delivery_type')
29
+ }
30
+
21
31
  return (
22
32
  <Container isIos={Platform.OS === 'ios'}>
23
33
  <ODropDown
@@ -29,6 +39,10 @@ export const OrdersOptionDelivery = (props: any) => {
29
39
  textcolor={theme.colors.unselectText}
30
40
  placeholder={t('SELECT_DELIVERY_TYPE', 'Select Delivery type')}
31
41
  dropViewMaxHeight={200}
42
+ handleClear={handleClear}
43
+ handleOpenSelect={handleOpenSelect}
44
+ openedSelect={openedSelect}
45
+ selectType='delivery_type'
32
46
  />
33
47
  </Container>
34
48
  );
@@ -9,7 +9,9 @@ export const OrdersOptionDriverUI = (props: any) => {
9
9
  const {
10
10
  search,
11
11
  onSearch,
12
- driverList
12
+ driverList,
13
+ setOpenedSelect,
14
+ openedSelect
13
15
  } = props
14
16
 
15
17
  const theme = useTheme();
@@ -24,6 +26,14 @@ export const OrdersOptionDriverUI = (props: any) => {
24
26
  setOptionsList(drivers)
25
27
  }, [driverList?.drivers])
26
28
 
29
+ const handleClear = () => {
30
+ onSearch({ ...search, driver: '' })
31
+ }
32
+
33
+ const handleOpenSelect = () => {
34
+ setOpenedSelect('driver')
35
+ }
36
+
27
37
  return (
28
38
  <Container isIos={Platform.OS === 'ios'}>
29
39
  <ODropDown
@@ -35,6 +45,10 @@ export const OrdersOptionDriverUI = (props: any) => {
35
45
  textcolor={theme.colors.unselectText}
36
46
  placeholder={t('SELECT_DRIVER', 'Select Driver')}
37
47
  dropViewMaxHeight={165}
48
+ handleClear={handleClear}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='driver'
38
52
  />
39
53
  </Container>
40
54
  );
@@ -9,7 +9,9 @@ export const OrdersOptionPaymethodUI = (props: any) => {
9
9
  const {
10
10
  search,
11
11
  onSearch,
12
- paymethodList
12
+ paymethodList,
13
+ setOpenedSelect,
14
+ openedSelect
13
15
  } = props
14
16
 
15
17
  const theme = useTheme();
@@ -24,6 +26,14 @@ export const OrdersOptionPaymethodUI = (props: any) => {
24
26
  setOptionsList(paymethods)
25
27
  }, [paymethodList?.paymethods])
26
28
 
29
+ const handleClear = () => {
30
+ onSearch({ ...search, paymethod: '' })
31
+ }
32
+
33
+ const handleOpenSelect = () => {
34
+ setOpenedSelect('paymethod')
35
+ }
36
+
27
37
  return (
28
38
  <Container isIos={Platform.OS === 'ios'}>
29
39
  <ODropDown
@@ -35,6 +45,10 @@ export const OrdersOptionPaymethodUI = (props: any) => {
35
45
  textcolor={theme.colors.unselectText}
36
46
  placeholder={t('SELECT_PAYMETHOD', 'Select Paymethod')}
37
47
  dropViewMaxHeight={200}
48
+ handleClear={handleClear}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='paymethod'
38
52
  />
39
53
  </Container>
40
54
  );
@@ -11,7 +11,9 @@ export const OrdersOptionStatus = (props: any) => {
11
11
  tabs,
12
12
  orderStatus,
13
13
  search,
14
- onSearch
14
+ onSearch,
15
+ setOpenedSelect,
16
+ openedSelect
15
17
  } = props
16
18
 
17
19
  const theme = useTheme();
@@ -29,6 +31,10 @@ export const OrdersOptionStatus = (props: any) => {
29
31
  setOptionsList(_optionList)
30
32
  }, [currentTabSelected, tabs, orderStatus])
31
33
 
34
+ const handleOpenSelect = () => {
35
+ setOpenedSelect('state')
36
+ }
37
+
32
38
  return (
33
39
  <Container isIos={Platform.OS === 'ios'}>
34
40
  <ODropDown
@@ -40,6 +46,9 @@ export const OrdersOptionStatus = (props: any) => {
40
46
  textcolor={theme.colors.unselectText}
41
47
  placeholder={t('SELECT_STATUS', 'Select Status')}
42
48
  dropViewMaxHeight={200}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='state'
43
52
  />
44
53
  </Container>
45
54
  );
@@ -176,17 +176,17 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
176
176
  slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
177
177
  percentage: 95,
178
178
  },
179
- {
180
- key: 22,
181
- value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
182
- slug: 'ORDER_LOOKING_FOR_DRIVER',
179
+ {
180
+ key: 22,
181
+ value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
182
+ slug: 'ORDER_LOOKING_FOR_DRIVER',
183
183
  percentage: 35
184
184
  },
185
- {
186
- key: 23,
187
- value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
188
- slug: 'ORDER_DRIVER_ON_WAY',
189
- percentage: 45
185
+ {
186
+ key: 23,
187
+ value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
188
+ slug: 'ORDER_DRIVER_ON_WAY',
189
+ percentage: 45
190
190
  }
191
191
  ];
192
192
 
@@ -230,6 +230,7 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
230
230
  fontWeight: '600',
231
231
  fontSize: 16,
232
232
  color: theme.colors.textGray,
233
+ width: '85%'
233
234
  },
234
235
  badge: {
235
236
  marginBottom: 6,
@@ -265,15 +266,13 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
265
266
  style={styles.cardButton}
266
267
  activeOpacity={1}>
267
268
  <Card key={order?.id}>
268
- {!!order?.business?.logo && (
269
- <Logo style={styles.logo}>
270
- <OIcon
271
- url={optimizeImage(order?.business?.logo, 'h_300,c_limit')}
272
- style={styles.icon}
273
- />
274
- </Logo>
275
- )}
276
-
269
+ <Logo style={styles.logo}>
270
+ <OIcon
271
+ url={optimizeImage(order?.business?.logo, 'h_300,c_limit')}
272
+ src={!order?.business?.logo && theme?.images?.dummies?.businessLogo}
273
+ style={styles.icon}
274
+ />
275
+ </Logo>
277
276
  <Information>
278
277
  <Header>
279
278
  <OText numberOfLines={1} style={styles.title}>
@@ -31,8 +31,8 @@ export const PreviousOrders = (props: any) => {
31
31
  const theme = useTheme();
32
32
  const [, setCurrentTime] = useState()
33
33
  const [allowColumns, setAllowColumns] = useState({
34
- timer: true,
35
- slaBar: true,
34
+ timer: configState?.configs?.order_deadlines_enabled?.value === '1',
35
+ slaBar: configState?.configs?.order_deadlines_enabled?.value === '1',
36
36
  })
37
37
 
38
38
  const [orientationState] = useDeviceOrientation();
@@ -104,8 +104,8 @@ export const PreviousOrders = (props: any) => {
104
104
  const offset = 300
105
105
  const cdtToutc = moment(order?.delivery_datetime).add(offset, 'minutes').format('YYYY-MM-DD HH:mm:ss')
106
106
  const _delivery = order?.delivery_datetime_utc
107
- ? parseDate(order?.delivery_datetime_utc)
108
- : parseDate(cdtToutc)
107
+ ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD hh:mm A' })
108
+ : parseDate(cdtToutc, { outputFormat: 'YYYY-MM-DD hh:mm A' })
109
109
  const _eta = order?.eta_time
110
110
  const diffTimeAsSeconds = moment(_delivery, 'YYYY-MM-DD hh:mm A').add(_eta, 'minutes').diff(moment().utc(), 'seconds')
111
111
  return Math.ceil(diffTimeAsSeconds / 60)
@@ -139,7 +139,7 @@ export const PreviousOrders = (props: any) => {
139
139
  const interval = setInterval(() => {
140
140
  const date: any = Date.now()
141
141
  setCurrentTime(date)
142
- }, slaSettingTime)
142
+ }, slaSettingTime ?? 6000)
143
143
 
144
144
  return () => clearInterval(interval)
145
145
  }, [])
@@ -178,33 +178,31 @@ export const PreviousOrders = (props: any) => {
178
178
  activeOpacity={1}
179
179
  >
180
180
  <Card key={order.id}>
181
- {allowColumns?.slaBar && (
182
- <Timestatus style={{ backgroundColor: getStatusClassName(getDelayMinutes(order)) === 'in_time' ? '#00D27A' : getStatusClassName(getDelayMinutes(order)) === 'at_risk' ? '#FFC700' : getStatusClassName(getDelayMinutes(order)) === 'delayed' ? '#E63757' : '' }} />
183
- )}
184
- {
185
- order.business?.logo && (
186
- <Logo style={styles.logo}>
187
- <OIcon
188
- url={optimizeImage(
189
- order.business?.logo,
190
- 'h_300,c_limit',
191
- )}
192
- style={styles.icon}
193
- />
194
- </Logo>
195
- )}
181
+ {allowColumns?.slaBar && (
182
+ <Timestatus style={{ backgroundColor: getStatusClassName(getDelayMinutes(order)) === 'in_time' ? '#00D27A' : getStatusClassName(getDelayMinutes(order)) === 'at_risk' ? '#FFC700' : getStatusClassName(getDelayMinutes(order)) === 'delayed' ? '#E63757' : '' }} />
183
+ )}
184
+ <Logo style={styles.logo}>
185
+ <OIcon
186
+ url={optimizeImage(
187
+ order.business?.logo,
188
+ 'h_300,c_limit',
189
+ )}
190
+ src={!order?.business?.logo && theme?.images?.dummies?.businessLogo}
191
+ style={styles.icon}
192
+ />
193
+ </Logo>
196
194
  <Information>
197
- {order?.order_group_id && (
195
+ {!!order?.order_group_id && (
198
196
  <OText>
199
197
  <OText>{(t('INVOICE_GROUP_NO', 'Group No.') + order?.order_group_id)}</OText>
200
198
  </OText>
201
199
  )}
202
- {order.business?.name && (
200
+ {!!order.business?.name && (
203
201
  <OText numberOfLines={1} style={styles.title}>
204
202
  {order.business?.name}
205
203
  </OText>
206
204
  )}
207
- {order?.showNotification && (
205
+ {!!order?.showNotification && (
208
206
  <NotificationIcon>
209
207
  <EntypoIcon
210
208
  name="dot-single"
@@ -258,7 +256,7 @@ export const PreviousOrders = (props: any) => {
258
256
  </TouchableOpacity>
259
257
  {isLogisticOrder && (
260
258
  <AcceptOrRejectOrder>
261
- {order?.order_group_id && order?.order_group ? (
259
+ {!!order?.order_group_id && !!order?.order_group ? (
262
260
  <OButton
263
261
  text={t('VIEW_ORDER', 'View order')}
264
262
  onClick={() => handlePressOrder({ ...order, logistic_order_id: _order?.id })}
@@ -28,6 +28,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
28
28
  getProductMax,
29
29
  onDeleteProduct,
30
30
  onEditProduct,
31
+ currency
31
32
  } = props;
32
33
 
33
34
  const [, t] = useLanguage();
@@ -147,7 +148,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
147
148
  }}>
148
149
  <View style={{ flexDirection: 'row' }}>
149
150
  <OText size={12} color={theme.colors.textGray}>
150
- {parsePrice(getProductPrice(product))}
151
+ {parsePrice(getProductPrice(product), { currency })}
151
152
  </OText>
152
153
 
153
154
  {(
@@ -268,7 +269,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
268
269
  suboption.position,
269
270
  )
270
271
  : '',
271
- price: parsePrice(suboption.price),
272
+ price: parsePrice(suboption.price, { currency }),
272
273
  })}
273
274
  </OText>
274
275
  </ProductSubOption>
@@ -1,4 +1,6 @@
1
- import React, { useState, useEffect } from 'react'
1
+
2
+
3
+ import React, { useState, useEffect, useRef } from 'react'
2
4
  import {
3
5
  useLanguage,
4
6
  useUtils,
@@ -10,7 +12,8 @@ import {
10
12
  View,
11
13
  StyleSheet,
12
14
  I18nManager,
13
- TouchableOpacity
15
+ TouchableOpacity,
16
+ Keyboard
14
17
  } from 'react-native'
15
18
  import { useTheme } from 'styled-components/native'
16
19
  import { ReviewCustomerParams } from '../../types'
@@ -52,12 +55,12 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
52
55
  const { top, bottom } = useSafeAreaInsets()
53
56
  const [comments, setComments] = useState<Array<any>>([])
54
57
  const [extraComment, setExtraComment] = useState('')
55
-
58
+ const scrollref = useRef<any>()
56
59
  const styles = StyleSheet.create({
57
60
  photoWrapper: {
58
61
  shadowColor: theme.colors.black,
59
62
  shadowRadius: 3,
60
- shadowOffset: {width: 1, height: 4},
63
+ shadowOffset: { width: 1, height: 4 },
61
64
  elevation: 3,
62
65
  borderRadius: 8,
63
66
  shadowOpacity: 0.1,
@@ -95,11 +98,11 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
95
98
  })
96
99
 
97
100
  const qualificationList = [
98
- { key: 1, text: t('TERRIBLE', 'Terrible'), percent: 0, parentStyle: { left: '0%' }, isInnerStyle: false, pointerColor: false },
101
+ { key: 1, text: t('TERRIBLE', 'Terrible'), percent: 0, parentStyle: { left: '0%' }, isInnerStyle: false, pointerColor: false },
99
102
  { key: 2, text: t('BAD', 'Bad'), percent: 0.25, parentStyle: { left: '25%' }, isInnerStyle: true, pointerColor: true },
100
103
  { key: 3, text: t('OKAY', 'Okay'), percent: 0.5, parentStyle: { left: '50%' }, isInnerStyle: true, pointerColor: true },
101
104
  { key: 4, text: t('GOOD', 'Good'), percent: 0.75, parentStyle: { left: '75%' }, isInnerStyle: true, pointerColor: true },
102
- { key: 5, text: t('GREAT', 'Great'), percent: 1, parentStyle: { right: '0%' }, isInnerStyle: false, pointerColor: false }
105
+ { key: 5, text: t('GREAT', 'Great'), percent: 1, parentStyle: { right: '0%' }, isInnerStyle: false, pointerColor: false }
103
106
  ]
104
107
 
105
108
  const commentsList = reviewCommentList('customer')
@@ -142,6 +145,16 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
142
145
 
143
146
  }, [actionState.error])
144
147
 
148
+ useEffect(() => {
149
+ if (scrollref?.current) {
150
+ Keyboard.addListener('keyboardDidShow', () => {
151
+ scrollref.current.scrollToEnd()
152
+ })
153
+ }
154
+ }, [scrollref?.current])
155
+
156
+ const customerName = `${order?.customer?.name ?? ''} ${order?.customer?.middle_name ?? ''} ${order?.customer?.lastname ?? ''} ${order?.customer?.second_lastname ?? ''}`?.replace(' ', ' ')?.trim() ?? ''
157
+
145
158
  return (
146
159
  <KeyboardAvoidingView
147
160
  enabled
@@ -179,6 +192,7 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
179
192
  <Content
180
193
  showsVerticalScrollIndicator={false}
181
194
  contentContainerStyle={{ paddingBottom: 30 }}
195
+ ref={scrollref}
182
196
  >
183
197
  <CustomerInfoContainer>
184
198
  <View
@@ -196,20 +210,20 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
196
210
  style={{ borderRadius: 7.6 }}
197
211
  />
198
212
  </View>
199
- <OText
213
+ {!!customerName && <OText
200
214
  size={14}
201
215
  weight="500"
202
216
  style={{
203
217
  marginTop: 16
204
218
  }}
205
219
  >
206
- {order?.customer?.name} {order?.customer?.middle_name} {order?.customer?.lastname} {order?.customer?.second_lastname}
207
- </OText>
220
+ {customerName}
221
+ </OText>}
208
222
  </CustomerInfoContainer>
209
223
  <OText
210
224
  size={12}
211
225
  >
212
- {t('HOW_WAS_YOUR_CUSTOMER', 'How was your experience with _name_?').replace('_name_', `${order?.customer?.name} ${order?.customer?.middle_name} ${order?.customer?.lastname} ${order?.customer?.second_lastname}`)}
226
+ {customerName ? t('HOW_WAS_YOUR_CUSTOMER', 'How was your experience with _name_?').replace('_name_', customerName) : t('HOW_WAS_YOUR_NO_CUSTOMER', 'How was your experience?')}
213
227
  </OText>
214
228
  <RatingBarContainer>
215
229
  <LinearGradient
@@ -270,8 +284,8 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
270
284
  }}
271
285
  style={{ height: 35, paddingLeft: 5, paddingRight: 5, marginHorizontal: 3, marginVertical: 10 }}
272
286
  imgRightSrc={isSelectedComment(commentItem.key) ? theme.images.general.close : null}
273
- imgRightStyle={{ tintColor: theme.colors.white, right: 5, margin: 5 }}
274
- onClick={() => handleChangeComment(commentItem) }
287
+ imgRightStyle={{ right: 5, margin: 5 }}
288
+ onClick={() => handleChangeComment(commentItem)}
275
289
  />
276
290
  ))}
277
291
  </CommentsButtonGroup>
@@ -299,7 +313,7 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
299
313
  </ActionButtonWrapper>
300
314
  <Alert
301
315
  open={alertState.open}
302
- onAccept={() => setAlertState({ open: false, content: [] })}
316
+ onAccept={() => setAlertState({ open: false, content: [] })}
303
317
  onClose={() => setAlertState({ open: false, content: [] })}
304
318
  content={alertState.content}
305
319
  title={t('ERROR', 'Error')}
@@ -12,13 +12,13 @@ export const ScheduleBlocked = (props : any) => {
12
12
  const deviceWidth = Dimensions.get('screen').width
13
13
 
14
14
  const daysOfWeek = [
15
+ t('SUNDAY', 'Sunday'),
15
16
  t('MONDAY', 'Monday'),
16
17
  t('TUESDAY', 'Tuesday'),
17
18
  t('WEDNESDAY', 'Wednesday'),
18
19
  t('THURSDAY', 'Thurday'),
19
20
  t('FRIDAY', 'Friday'),
20
21
  t('SATURDAY', 'Saturday'),
21
- t('SUNDAY', 'Sunday')
22
22
  ]
23
23
 
24
24
  const scheduleFormatted = ({ hour, minute }: any) => {
@@ -41,7 +41,7 @@ export const ScheduleBlocked = (props : any) => {
41
41
  <OText>{t('OUTSIDE_ESTABLISHED_SCHEDULE', 'You are outside the established schedule')}</OText>
42
42
  <View style={{ flexDirection: 'row', marginBottom: 20 }}>
43
43
  <OText color={theme.colors.primary}>{t('NEXT_TIME', 'Next time')}: </OText>
44
- <OText>{daysOfWeek[nextSchedule?.day - 1]} {scheduleFormatted(nextSchedule?.schedule?.open)}</OText>
44
+ <OText>{daysOfWeek[nextSchedule?.day]} {scheduleFormatted(nextSchedule?.schedule?.open)}</OText>
45
45
  </View>
46
46
  <OButton
47
47
  text={t('GO_BACK', 'Go back')}
@@ -36,6 +36,7 @@ export const UserFormDetailsUI = (props: any) => {
36
36
  handleCancelEdit,
37
37
  toggleIsEdit,
38
38
  isCheckout,
39
+ isAlsea
39
40
  } = props;
40
41
 
41
42
  const theme = useTheme();
@@ -265,7 +266,9 @@ export const UserFormDetailsUI = (props: any) => {
265
266
  }).map(
266
267
  (field: any) =>
267
268
  showField &&
268
- showField(field.code) && (
269
+ showField(field.code) &&
270
+ !isAlsea
271
+ && (
269
272
  <React.Fragment key={field.id}>
270
273
  <OText style={styles.label}>
271
274
  {t(field?.code.toUpperCase(), field?.name)}
@@ -442,7 +445,7 @@ export const UserFormDetailsUI = (props: any) => {
442
445
  </OText>
443
446
  )}
444
447
 
445
- {!!showInputPhoneNumber && (
448
+ {!!showInputPhoneNumber && !isAlsea && (
446
449
  <WrapperPhone>
447
450
  <PhoneInputNumber
448
451
  data={phoneInputData}
@@ -49,6 +49,7 @@ const ProfileUI = (props: ProfileParams) => {
49
49
  handleToggleAvalaibleStatusDriver,
50
50
  userState,
51
51
  isAvailableLoading,
52
+ isAlsea
52
53
  } = props;
53
54
 
54
55
  const [{ user }] = useSession();
@@ -459,6 +460,7 @@ const ProfileUI = (props: ProfileParams) => {
459
460
  hideUpdateButton
460
461
  handleCancelEdit={handleCancelEdit}
461
462
  toggleIsEdit={toggleIsEdit}
463
+ isAlsea={isAlsea}
462
464
  />
463
465
  </View>
464
466
  )}
@@ -4,6 +4,7 @@ import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
4
4
  import { ScrollView as CustomScrollView, TouchableOpacity as CustomTouchableOpacity, View } from 'react-native'
5
5
  import FeatherIcon from 'react-native-vector-icons/Feather';
6
6
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
7
+ import AntDesign from 'react-native-vector-icons/AntDesign';
7
8
  import { Text } from 'react-native-paper';
8
9
 
9
10
  interface Props {
@@ -16,7 +17,11 @@ interface Props {
16
17
  dropViewMaxHeight?: any,
17
18
  isModal?: any,
18
19
  bgcolor?: string,
19
- textcolor?: string
20
+ textcolor?: string,
21
+ handleClear?: any,
22
+ handleOpenSelect?: any,
23
+ openedSelect?: string,
24
+ selectType?: string
20
25
  }
21
26
 
22
27
  const Wrapper = styled.View`
@@ -70,7 +75,11 @@ const ODropDown = (props: Props) => {
70
75
  placeholder,
71
76
  onSelect,
72
77
  dropViewMaxHeight,
73
- isModal
78
+ isModal,
79
+ handleClear,
80
+ handleOpenSelect,
81
+ openedSelect,
82
+ selectType
74
83
  } = props
75
84
 
76
85
  const theme = useTheme();
@@ -82,6 +91,7 @@ const ODropDown = (props: Props) => {
82
91
 
83
92
  const onToggle = () => {
84
93
  setIsOpen(!isOpen)
94
+ if (!isOpen) handleOpenSelect?.()
85
95
  }
86
96
 
87
97
  const onSelectOption = (option: any) => {
@@ -91,12 +101,25 @@ const ODropDown = (props: Props) => {
91
101
  setIsOpen(false)
92
102
  }
93
103
 
104
+ const handleClearSearch = () => {
105
+ handleClear()
106
+ if (isOpen) {
107
+ onToggle()
108
+ }
109
+ }
110
+
94
111
  useEffect(() => {
95
112
  const _defaultOption = options?.find((option: any) => option.value === defaultValue)
96
113
  setSelectedOption(_defaultOption)
97
114
  setValue(defaultValue)
98
115
  }, [defaultValue, options])
99
116
 
117
+ useEffect(() => {
118
+ if (openedSelect !== selectType && typeof openedSelect === 'string') {
119
+ setIsOpen(false)
120
+ }
121
+ }, [openedSelect])
122
+
100
123
  return (
101
124
  <Wrapper style={props.style}>
102
125
  <Selected
@@ -110,11 +133,22 @@ const ODropDown = (props: Props) => {
110
133
  >
111
134
  {selectedOption?.content || selectedOption?.name || placeholder}
112
135
  </SelectedLabel>
113
- <FeatherIcon
114
- name='chevron-down'
115
- color={props.textcolor}
116
- size={24}
117
- />
136
+ {selectedOption && handleClear ? (
137
+ <AntDesign
138
+ name={'close'}
139
+ size={20}
140
+ onPress={() => handleClearSearch()}
141
+ style={{ position: 'absolute', right: 12, top: 13 }}
142
+ />
143
+ ) : (
144
+ <FeatherIcon
145
+ name='chevron-down'
146
+ color={props.textcolor}
147
+ size={24}
148
+ style={{ position: 'absolute', right: 12, top: 13 }}
149
+
150
+ />
151
+ )}
118
152
  </Selected>
119
153
  {isOpen && options && (
120
154
  <DropView
@@ -154,7 +188,7 @@ const ODropDown = (props: Props) => {
154
188
  maxHeight: dropViewMaxHeight || null,
155
189
  paddingBottom: 15
156
190
  }}
157
- nestedScrollEnabled={true}
191
+ nestedScrollEnabled={true}
158
192
  >
159
193
  {options.map((option: any, index: number) => (
160
194
  <CustomTouchableOpacity