ordering-ui-react-native 0.21.3 → 0.21.4-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 (236) hide show
  1. package/package.json +6 -5
  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/PaymentOptionsWebView/index.tsx +1 -0
  6. package/src/components/StripeMethodForm/index.tsx +3 -3
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/components/shared/OToast.tsx +3 -2
  9. package/src/types/index.tsx +2 -1
  10. package/src/utils/index.tsx +2 -2
  11. package/themes/business/index.tsx +4 -0
  12. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  13. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  14. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  15. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  16. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  17. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  18. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  19. package/themes/business/src/components/Chat/index.tsx +41 -13
  20. package/themes/business/src/components/DriverMap/index.tsx +4 -2
  21. package/themes/business/src/components/DriverSchedule/index.tsx +5 -5
  22. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  23. package/themes/business/src/components/Home/index.tsx +5 -1
  24. package/themes/business/src/components/MapView/index.tsx +11 -7
  25. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  26. package/themes/business/src/components/NewOrderNotification/index.tsx +161 -106
  27. package/themes/business/src/components/OrderDetails/Delivery.tsx +21 -12
  28. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +90 -55
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +36 -16
  30. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  31. package/themes/business/src/components/OrderSummary/index.tsx +42 -23
  32. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  33. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  34. package/themes/business/src/components/OrdersOption/index.tsx +125 -48
  35. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  36. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  37. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +27 -35
  38. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  39. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  40. package/themes/business/src/components/PreviousOrders/index.tsx +192 -220
  41. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  42. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  43. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  44. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  45. package/themes/business/src/components/Sessions/index.tsx +187 -0
  46. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  47. package/themes/business/src/components/StoresList/index.tsx +5 -3
  48. package/themes/business/src/components/UserProfileForm/index.tsx +76 -41
  49. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  50. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  51. package/themes/business/src/components/shared/OInput.tsx +2 -0
  52. package/themes/business/src/hooks/useLocation.tsx +5 -4
  53. package/themes/business/src/types/index.tsx +19 -0
  54. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  55. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  56. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  57. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  58. package/themes/kiosk/src/components/LoginForm/index.tsx +124 -96
  59. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  60. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  61. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  62. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  63. package/themes/original/index.tsx +9 -4
  64. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  65. package/themes/original/src/components/AddressForm/index.tsx +2 -2
  66. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  67. package/themes/original/src/components/AddressList/index.tsx +4 -7
  68. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  69. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  70. package/themes/original/src/components/BusinessBasicInformation/index.tsx +4 -4
  71. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  72. package/themes/original/src/components/BusinessController/index.tsx +18 -10
  73. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  74. package/themes/original/src/components/BusinessInformation/index.tsx +35 -3
  75. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  76. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  77. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  78. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  79. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  80. package/themes/original/src/components/BusinessListingSearch/index.tsx +56 -361
  81. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  82. package/themes/original/src/components/BusinessPreorder/index.tsx +2 -3
  83. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  84. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  85. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  86. package/themes/original/src/components/BusinessProductsListing/index.tsx +45 -21
  87. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  88. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  89. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  90. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  91. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  92. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  93. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  94. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +29 -402
  95. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  96. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  97. package/themes/original/src/components/Cart/index.tsx +32 -9
  98. package/themes/original/src/components/CartContent/index.tsx +96 -58
  99. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  100. package/themes/original/src/components/Checkout/index.tsx +219 -66
  101. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  102. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  103. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  104. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  105. package/themes/original/src/components/Favorite/index.tsx +4 -9
  106. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  107. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  108. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  109. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  110. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  111. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  112. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  113. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  114. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  115. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  116. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  117. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  118. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  119. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  120. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  121. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  122. package/themes/original/src/components/GoogleMap/index.tsx +50 -5
  123. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  124. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  125. package/themes/original/src/components/Home/index.tsx +1 -1
  126. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  127. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  128. package/themes/original/src/components/LoginForm/Otp/index.tsx +53 -47
  129. package/themes/original/src/components/LoginForm/index.tsx +6 -1
  130. package/themes/original/src/components/Messages/index.tsx +9 -4
  131. package/themes/original/src/components/Messages/styles.tsx +1 -1
  132. package/themes/original/src/components/MomentOption/index.tsx +3 -3
  133. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  134. package/themes/original/src/components/MultiCheckout/index.tsx +251 -53
  135. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  136. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  137. package/themes/original/src/components/MyOrders/index.tsx +24 -29
  138. package/themes/original/src/components/NavBar/index.tsx +3 -1
  139. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  140. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  141. package/themes/original/src/components/Notifications/index.tsx +4 -8
  142. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  143. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +7 -3
  144. package/themes/original/src/components/OrderDetails/index.tsx +716 -667
  145. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  146. package/themes/original/src/components/OrderProgress/index.tsx +28 -9
  147. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  148. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  149. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  150. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  151. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  152. package/themes/original/src/components/OrdersOption/index.tsx +2 -1
  153. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  154. package/themes/original/src/components/PageBanner/index.tsx +3 -0
  155. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  156. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  157. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  158. package/themes/original/src/components/PaymentOptions/index.tsx +72 -6
  159. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  160. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  161. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  162. package/themes/original/src/components/ProductForm/index.tsx +75 -166
  163. package/themes/original/src/components/ProductForm/styles.tsx +1 -1
  164. package/themes/original/src/components/ProductItemAccordion/index.tsx +12 -8
  165. package/themes/original/src/components/ProductOptionSubOption/index.tsx +120 -79
  166. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +7 -4
  167. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  168. package/themes/original/src/components/Promotions/index.tsx +4 -4
  169. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  170. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  171. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  172. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  173. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  174. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  175. package/themes/original/src/components/SingleOrderCard/index.tsx +5 -4
  176. package/themes/original/src/components/SingleProductCard/index.tsx +2 -2
  177. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  178. package/themes/original/src/components/StripeCardsList/index.tsx +17 -36
  179. package/themes/original/src/components/StripeElementsForm/index.tsx +9 -4
  180. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  181. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  182. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  183. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  184. package/themes/original/src/components/UserFormDetails/index.tsx +53 -7
  185. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  186. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  187. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  188. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  189. package/themes/original/src/components/Wallets/index.tsx +8 -9
  190. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  191. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  192. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  193. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  194. package/themes/original/src/components/shared/OButton.tsx +5 -5
  195. package/themes/original/src/components/shared/OInput.tsx +1 -4
  196. package/themes/original/src/components/shared/OModal.tsx +12 -14
  197. package/themes/original/src/layouts/Container.tsx +5 -3
  198. package/themes/original/src/types/index.tsx +8 -2
  199. package/themes/original/src/utils/index.tsx +124 -0
  200. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  201. package/src/navigators/BottomNavigator.tsx +0 -117
  202. package/src/navigators/CheckoutNavigator.tsx +0 -66
  203. package/src/navigators/HomeNavigator.tsx +0 -202
  204. package/src/navigators/NavigationRef.tsx +0 -7
  205. package/src/navigators/RootNavigator.tsx +0 -269
  206. package/src/pages/Account.tsx +0 -34
  207. package/src/pages/AddressForm.tsx +0 -62
  208. package/src/pages/AddressList.tsx +0 -24
  209. package/src/pages/BusinessProductsList.tsx +0 -81
  210. package/src/pages/BusinessesListing.tsx +0 -43
  211. package/src/pages/CartList.tsx +0 -49
  212. package/src/pages/Checkout.tsx +0 -101
  213. package/src/pages/ForgotPassword.tsx +0 -24
  214. package/src/pages/Help.tsx +0 -23
  215. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  216. package/src/pages/HelpGuide.tsx +0 -23
  217. package/src/pages/HelpOrder.tsx +0 -23
  218. package/src/pages/Home.tsx +0 -36
  219. package/src/pages/IntroductoryTutorial.tsx +0 -170
  220. package/src/pages/Login.tsx +0 -47
  221. package/src/pages/MomentOption.tsx +0 -30
  222. package/src/pages/MultiCheckout.tsx +0 -31
  223. package/src/pages/MultiOrdersDetails.tsx +0 -27
  224. package/src/pages/MyOrders.tsx +0 -40
  225. package/src/pages/NetworkError.tsx +0 -24
  226. package/src/pages/NotFound.tsx +0 -22
  227. package/src/pages/OrderDetails.tsx +0 -25
  228. package/src/pages/ProductDetails.tsx +0 -55
  229. package/src/pages/Profile.tsx +0 -36
  230. package/src/pages/ReviewDriver.tsx +0 -30
  231. package/src/pages/ReviewOrder.tsx +0 -32
  232. package/src/pages/ReviewProducts.tsx +0 -30
  233. package/src/pages/Sessions.tsx +0 -22
  234. package/src/pages/Signup.tsx +0 -53
  235. package/src/pages/SpinnerLoader.tsx +0 -10
  236. package/src/pages/Splash.tsx +0 -21
@@ -1,6 +1,7 @@
1
1
  import React, { useState, useCallback } from 'react'
2
2
 
3
3
  import { Platform, StyleSheet, View, TouchableOpacity, ScrollView } from 'react-native';
4
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
4
5
 
5
6
  import { OButton, OText, OLink, OModal } from '../shared'
6
7
  import {
@@ -37,15 +38,14 @@ interface OrderContent {
37
38
  order: any,
38
39
  logisticOrderStatus?: Array<number>,
39
40
  isOrderGroup?: boolean,
40
- lastOrder?: boolean,
41
- isDelivery?: boolean
41
+ lastOrder?: boolean
42
42
  }
43
43
 
44
44
  export const OrderContentComponent = (props: OrderContent) => {
45
45
  const [, t] = useLanguage();
46
46
  const theme = useTheme()
47
47
  const [{ user }] = useSession()
48
- const { order, logisticOrderStatus, isOrderGroup, lastOrder, isDelivery } = props;
48
+ const { order, logisticOrderStatus, isOrderGroup, lastOrder } = props;
49
49
  const [{ parsePrice, parseNumber }] = useUtils();
50
50
  const [{ configs }] = useConfig();
51
51
  const [orientationState] = useDeviceOrientation();
@@ -54,9 +54,16 @@ export const OrderContentComponent = (props: OrderContent) => {
54
54
  const WIDTH_SCREEN = orientationState?.dimensions?.width
55
55
 
56
56
  const [openReviewModal, setOpenReviewModal] = useState(false)
57
+ const [showCustomFields, setShowCustomFields] = useState<boolean>(false);
57
58
 
58
- const [isReadMore, setIsReadMore] = useState(false)
59
- const [lengthMore, setLengthMore] = useState(false)
59
+ const [isReadMore, setIsReadMore] = useState({
60
+ customerAddress: false,
61
+ businessAddressNotes: false
62
+ })
63
+ const [lengthMore, setLengthMore] = useState({
64
+ customerAddress: false,
65
+ businessAddressNotes: false
66
+ })
60
67
 
61
68
  const pastOrderStatuses = [1, 2, 5, 6, 10, 11, 12, 16, 17]
62
69
 
@@ -106,11 +113,19 @@ export const OrderContentComponent = (props: OrderContent) => {
106
113
  }
107
114
 
108
115
  const containsOnlyNumbers = (str: string) => {
116
+ str = str?.replace('+', '');
109
117
  return /^\d+$/.test(str);
110
118
  }
111
119
 
112
- const onTextLayout = useCallback((e: any) => {
113
- setLengthMore((e.nativeEvent.lines.length == 2 && e.nativeEvent.lines[1].width > WIDTH_SCREEN * .76) || e.nativeEvent.lines.length > 2); //to check the text is more than 2 lines or not
120
+ const onTextLayout = useCallback((e: any, item: string) => {
121
+ if (item === 'customerAddress') {
122
+ const customerAddressMore = (e.nativeEvent.lines.length == 2 && e.nativeEvent.lines[1].width > WIDTH_SCREEN * .76) || e.nativeEvent.lines.length > 2
123
+ setLengthMore(prev => ({ ...prev, customerAddress: customerAddressMore }))
124
+ }
125
+ if (item === 'businessAddressNotes') {
126
+ const businessAddressNotesMore = (e.nativeEvent.lines.length == 3 && e.nativeEvent.lines[2].width > WIDTH_SCREEN * .76) || e.nativeEvent.lines.length > 3
127
+ setLengthMore(prev => ({ ...prev, businessAddressNotes: businessAddressNotesMore }))
128
+ }
114
129
  }, []);
115
130
 
116
131
  return (
@@ -121,27 +136,36 @@ export const OrderContentComponent = (props: OrderContent) => {
121
136
 
122
137
  {order?.metafields?.length > 0 && (
123
138
  <OrderBusiness>
124
- <OText style={{ marginBottom: 5 }} size={16} weight="600">
125
- {t('CUSTOM_FIELDS', 'Custom fields')}
126
- </OText>
127
-
128
- {order.metafields.map((field: any) => (
129
- <View
130
- key={field.id}
131
- style={{
132
- width: '100%',
133
- flexDirection: 'row',
134
- marginBottom: 5
135
- }}
136
- >
137
- <OText style={{ width: '50%' }}>
138
- {field.key}
139
- </OText>
140
- <OText style={{ width: '45%', textAlign: 'right' }}>
141
- {field.value}
142
- </OText>
143
- </View>
144
- ))}
139
+ <TouchableOpacity onPress={() => setShowCustomFields((prev: boolean) => !prev)} style={{ flexDirection: 'row', width: '100%', justifyContent: 'space-between', alignItems: 'flex-start' }}>
140
+ <OText style={{ marginBottom: 5 }} size={16} weight="600">
141
+ {t('CUSTOM_FIELDS', 'Custom fields')}
142
+ </OText>
143
+ <AntDesignIcon
144
+ name={showCustomFields ? 'up' : 'down'}
145
+ size={14}
146
+ />
147
+ </TouchableOpacity>
148
+ {showCustomFields && (
149
+ <>
150
+ {order.metafields.map((field: any) => (
151
+ <View
152
+ key={field.id}
153
+ style={{
154
+ width: '100%',
155
+ flexDirection: 'row',
156
+ marginBottom: 5
157
+ }}
158
+ >
159
+ <OText style={{ width: '50%' }}>
160
+ {field.key}
161
+ </OText>
162
+ <OText style={{ width: '45%', textAlign: 'right' }}>
163
+ {field.value}
164
+ </OText>
165
+ </View>
166
+ ))}
167
+ </>
168
+ )}
145
169
  </OrderBusiness>
146
170
  )}
147
171
 
@@ -171,7 +195,7 @@ export const OrderContentComponent = (props: OrderContent) => {
171
195
  <OLink
172
196
  PressStyle={styles.linkWithIcons}
173
197
  url={`tel:${containsOnlyNumbers(order?.business?.cellphone) ? order?.business?.cellphone : 'invalid'}`}
174
- shorcut={`${order?.business?.cellphone}`}
198
+ shorcut={`${(!!order?.business?.country_phone_code && !order?.business?.cellphone?.includes('+')) ? '+' + order?.business?.country_phone_code : ''}${order?.business?.cellphone}`}
175
199
  TextStyle={styles.textLink}
176
200
  />
177
201
  </View>
@@ -181,8 +205,8 @@ export const OrderContentComponent = (props: OrderContent) => {
181
205
  <View style={styles.linkWithIcons}>
182
206
  <OLink
183
207
  PressStyle={styles.linkWithIcons}
184
- url={`tel:${containsOnlyNumbers(order?.business?.cellphone) ? order?.business?.phone : 'invalid'}`}
185
- shorcut={order?.business?.phone}
208
+ url={`tel:${containsOnlyNumbers(order?.business?.phone) ? order?.business?.phone : 'invalid'}`}
209
+ shorcut={`${(!!order?.business?.country_phone_code && !order?.business?.phone?.includes('+')) ? '+' + order?.business?.country_phone_code : ''}${order?.business?.phone}`}
186
210
  TextStyle={styles.textLink}
187
211
  />
188
212
  </View>
@@ -210,18 +234,28 @@ export const OrderContentComponent = (props: OrderContent) => {
210
234
  </OText>
211
235
  )}
212
236
  {!!order?.business?.address_notes && (
213
- <View style={styles.linkWithIcons}>
214
- <OLink
215
- PressStyle={styles.linkWithIcons}
216
- url={Platform.select({
217
- ios: `maps:0,0?q=${order?.business?.address_notes}`,
218
- android: `geo:0,0?q=${order?.business?.address_notes}`,
219
- })}
220
- shorcut={order?.business?.address_notes}
221
- TextStyle={styles.textLink}
222
- numberOfLines={isDelivery ? 0 : 1}
223
- />
224
- </View>
237
+ <>
238
+ <View style={styles.linkWithIcons}>
239
+ <OLink
240
+ PressStyle={styles.linkWithIcons}
241
+ url={Platform.select({
242
+ ios: `maps:0,0?q=${order?.business?.address_notes}`,
243
+ android: `geo:0,0?q=${order?.business?.address_notes}`,
244
+ })}
245
+ shorcut={order?.business?.address_notes}
246
+ TextStyle={styles.textLink}
247
+ onTextLayout={e => onTextLayout(e, 'businessAddressNotes')}
248
+ numberOfLines={isReadMore.businessAddressNotes ? 20 : 3}
249
+ />
250
+ </View>
251
+ {lengthMore.businessAddressNotes && (
252
+ <TouchableOpacity
253
+ onPress={() => setIsReadMore({ ...isReadMore, businessAddressNotes: !isReadMore.businessAddressNotes })}
254
+ >
255
+ <OText size={12} color={theme.colors.statusOrderBlue}>{isReadMore.businessAddressNotes ? t('SHOW_LESS', 'Show less') : t('READ_MORE', 'Read more')}</OText>
256
+ </TouchableOpacity>
257
+ )}
258
+ </>
225
259
  )}
226
260
  </OrderBusiness>
227
261
 
@@ -303,7 +337,7 @@ export const OrderContentComponent = (props: OrderContent) => {
303
337
  <OLink
304
338
  PressStyle={styles.linkWithIcons}
305
339
  url={`tel:${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${containsOnlyNumbers(order?.customer?.cellphone) ? order?.customer?.cellphone : 'invalid'}`}
306
- shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${order?.customer?.cellphone}`}
340
+ shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''}${order?.customer?.cellphone}`}
307
341
  TextStyle={styles.textLink}
308
342
  />
309
343
  </View>
@@ -313,8 +347,8 @@ export const OrderContentComponent = (props: OrderContent) => {
313
347
  <View style={styles.linkWithIcons}>
314
348
  <OLink
315
349
  PressStyle={styles.linkWithIcons}
316
- url={`tel:${containsOnlyNumbers(order?.customer?.phone) ? order?.customer?.phone : 'invalid'}`}
317
- shorcut={order?.customer?.phone}
350
+ url={`tel:${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''} ${containsOnlyNumbers(order?.customer?.phone) ? order?.customer?.phone : 'invalid'}`}
351
+ shorcut={`${!!order?.customer?.country_phone_code ? '+' + order?.customer?.country_phone_code : ''}${order?.customer?.phone}`}
318
352
  TextStyle={styles.textLink}
319
353
  />
320
354
  </View>
@@ -329,15 +363,17 @@ export const OrderContentComponent = (props: OrderContent) => {
329
363
  ios: `maps:0,0?q=${order?.customer?.address}`,
330
364
  android: `geo:0,0?q=${order?.customer?.address}`,
331
365
  })}
332
- onTextLayout={onTextLayout}
333
- numberOfLines={isReadMore ? 20 : 2}
366
+ onTextLayout={e => onTextLayout(e, 'customerAddress')}
367
+ numberOfLines={isReadMore.customerAddress ? 20 : 2}
334
368
  shorcut={order?.customer?.address}
335
369
  TextStyle={styles.textLink}
336
370
  />
337
371
  </View>
338
- {lengthMore && (
339
- <TouchableOpacity onPress={() => setIsReadMore(!isReadMore)}>
340
- <OText size={12} color={theme.colors.statusOrderBlue}>{isReadMore ? t('SHOW_LESS', 'Show less') : t('READ_MORE', 'Read more')}</OText>
372
+ {lengthMore.customerAddress && (
373
+ <TouchableOpacity
374
+ onPress={() => setIsReadMore({ ...isReadMore, customerAddress: !isReadMore.customerAddress })}
375
+ >
376
+ <OText size={12} color={theme.colors.statusOrderBlue}>{isReadMore.customerAddress ? t('SHOW_LESS', 'Show less') : t('READ_MORE', 'Read more')}</OText>
341
377
  </TouchableOpacity>
342
378
  )}
343
379
  </>
@@ -552,15 +588,14 @@ export const OrderContentComponent = (props: OrderContent) => {
552
588
  </Table>
553
589
  ))
554
590
  }
555
- {order?.summary?.driver_tip > 0 && (
591
+ {(order?.summary?.driver_tip > 0 || order?.driver_tip > 0) && (
556
592
  <Table>
557
593
  <OText mBottom={4}>
558
594
  {t('DRIVER_TIP', 'Driver tip')}
559
- {order?.summary?.driver_tip > 0 &&
560
- parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
595
+ {order?.driver_tip > 0 && parseInt(configs?.driver_tip_type?.value, 10) === 2 &&
561
596
  !parseInt(configs?.driver_tip_use_custom?.value, 10) &&
562
597
  (
563
- `(${verifyDecimals(order?.summary?.driver_tip, parseNumber)}%)`
598
+ `(${verifyDecimals(order?.driver_tip, parseNumber)}%)`
564
599
  )}
565
600
  </OText>
566
601
  <OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip, { currency: order?.currency })}</OText>
@@ -50,6 +50,7 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
50
50
  const theme = useTheme();
51
51
  const [, t] = useLanguage();
52
52
  const [{ parseDate }] = useUtils();
53
+ const paymethodsLength = order?.payment_events?.filter((item: any) => item.event === 'payment')?.length
53
54
 
54
55
  const styles = StyleSheet.create({
55
56
  icons: {
@@ -120,6 +121,15 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
120
121
  ? t('CURBSIDE', 'Curbside')
121
122
  : t('DRIVER_THRU', 'Driver thru')
122
123
 
124
+ const handlePaymethodsListString = () => {
125
+ const paymethodsList = order?.payment_events?.filter((item: any) => item.event === 'payment').map((paymethod: any) => {
126
+ return paymethod?.wallet_event
127
+ ? walletName[paymethod?.wallet_event?.wallet?.type]?.name
128
+ : t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)
129
+ })
130
+ return paymethodsList.join(', ')
131
+ }
132
+
123
133
  return (
124
134
  <>
125
135
  {!props.isCustomView && (
@@ -263,6 +273,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
263
273
  )}
264
274
  </>
265
275
  </OText>
276
+ {order?.external_id && (
277
+ <OText size={13}>
278
+ <OText size={13} weight='bold'>{`${t('EXTERNAL_ID', 'External ID :')} `}</OText>
279
+ {order?.external_id}
280
+ </OText>
281
+ )}
266
282
  {!order?.isLogistic && !!order?.delivery_type && (!order?.order_group_id || !logisticOrderStatus?.includes(order?.status)) && (
267
283
  <>
268
284
  <OText size={13}>
@@ -275,23 +291,27 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
275
291
  {t(order?.delivery_option?.name?.toUpperCase()?.replace(/ /g, '_'), order?.delivery_option?.name)}
276
292
  </OText>
277
293
  )}
278
- {order?.payment_events?.length > 0 && (
279
- <View>
280
- <OText size={13}>
281
- <OText size={13} weight='bold'>
282
- {`${t('PAYMENT_METHODS', 'Payment methods')}: `}
283
- </OText>
284
- {order?.payment_events?.map((event: any, idx: number) => {
285
- return event?.wallet_event
286
- ? idx < order?.payment_events?.length - 1
287
- ? `${walletName[event?.wallet_event?.wallet?.type]?.name} - `
288
- : walletName[event?.wallet_event?.wallet?.type]?.name
289
- : idx < order?.payment_events?.length - 1
290
- ? `${t(event?.paymethod?.name?.toUpperCase()?.replace(/ /g, '_'), event?.paymethod?.name)} - `
291
- : t(event?.paymethod?.name?.toUpperCase()?.replace(/ /g, '_'), event?.paymethod?.name)
292
- })}
294
+ <OText>
295
+ <OText size={13} weight='bold'>
296
+ {`${t(paymethodsLength > 1 ? 'PAYMENT_METHODS' : 'PAYMENT_METHOD', paymethodsLength > 1 ? 'Payment methods' : 'Payment method')}: `}
297
+ </OText>
298
+ {order?.payment_events?.length > 0 ? (
299
+ <OText size={13}>{`${handlePaymethodsListString()}`}</OText>
300
+ ) : (
301
+ <OText size={13}>{t(order?.paymethod?.gateway?.toUpperCase(), order?.paymethod?.name)}</OText>
302
+ )}
303
+ </OText>
304
+ {order?.spot_number && (
305
+ <OText size={13}>
306
+ <OText size={13} weight='bold'>
307
+ {`${order?.delivery_type === 3
308
+ ? t('EATIN_SPOT_NUMBER', 'Table number')
309
+ : order?.delivery_type === 5
310
+ ? t('DRIVE_THRU_SPOT_NUMBER', 'Drive thru lane')
311
+ : t('CURBSIDE_SPOT_NUMBER', 'Spot number')}: `}
293
312
  </OText>
294
- </View>
313
+ {order.spot_number}
314
+ </OText>
295
315
  )}
296
316
  </>
297
317
  )}
@@ -10,6 +10,7 @@ import {
10
10
  useLanguage,
11
11
  OrderDetails as OrderDetailsConTableoller,
12
12
  useSession,
13
+ useConfig
13
14
  } from 'ordering-components/native';
14
15
 
15
16
  //Components
@@ -34,6 +35,8 @@ export const OrderDetailsLogisticUI = (props: OrderDetailsLogisticParams) => {
34
35
  const theme = useTheme();
35
36
  const [, t] = useLanguage();
36
37
  const [session] = useSession();
38
+ const [{ configs }] = useConfig();
39
+
37
40
  const [alertState, setAlertState] = useState<{
38
41
  open: boolean;
39
42
  content: Array<string>;
@@ -41,6 +44,7 @@ export const OrderDetailsLogisticUI = (props: OrderDetailsLogisticParams) => {
41
44
  }>({ open: false, content: [], key: null });
42
45
 
43
46
  const logisticOrderStatus = [4, 6, 7]
47
+ const isHideRejectButtons = configs?.reject_orders_enabled && configs?.reject_orders_enabled?.value !== '1'
44
48
 
45
49
  const showFloatButtonsAcceptOrReject: any = {
46
50
  0: true,
@@ -166,7 +170,8 @@ export const OrderDetailsLogisticUI = (props: OrderDetailsLogisticParams) => {
166
170
  secondButton={true}
167
171
  firstColorCustom={theme.colors.red}
168
172
  secondColorCustom={theme.colors.green}
169
- widthButton={'45%'}
173
+ widthButton={isHideRejectButtons ? '100%': '45%'}
174
+ isHideRejectButtons={isHideRejectButtons}
170
175
  />
171
176
  )}
172
177
  </>
@@ -33,6 +33,7 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
33
33
  const [state, setState] = useState({
34
34
  selectedPrinter: { url: undefined },
35
35
  });
36
+ const paymethodsLength = order?.payment_events?.filter((item: any) => item.event === 'payment')?.length
36
37
 
37
38
  const getFormattedSubOptionName = ({ quantity, name, position, price }: any) => {
38
39
  if (name !== 'No') {
@@ -80,6 +81,27 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
80
81
  !parseInt(configs?.driver_tip_use_custom?.value, 10) &&
81
82
  verifyDecimals(order?.summary?.driver_tip, parseNumber);
82
83
 
84
+ const customerName = `${order?.customer?.name ?? ''} ${order?.customer?.middle_name ?? ''} ${order?.customer?.lastname ?? ''} ${order?.customer?.second_lastname ?? ''
85
+ }`?.replace(' ', ' ')?.trim() ?? ''
86
+
87
+ const walletName: any = {
88
+ cash: {
89
+ name: t('CASH_WALLET', 'Cash Wallet')
90
+ },
91
+ credit_point: {
92
+ name: t('POINTS_WALLET', 'Points Wallet')
93
+ }
94
+ }
95
+
96
+ const handlePaymethodsListString = () => {
97
+ const paymethodsList = order?.payment_events?.filter((item: any) => item.event === 'payment').map((paymethod: any) => {
98
+ return paymethod?.wallet_event
99
+ ? walletName[paymethod?.wallet_event?.wallet?.type]?.name
100
+ : t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)
101
+ })
102
+ return paymethodsList.join(', ')
103
+ }
104
+
83
105
  const orderSummary = () => {
84
106
  return `
85
107
  <div>
@@ -96,13 +118,11 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
96
118
  : parseDate(order?.delivery_datetime, { utc: false })
97
119
  }
98
120
  </br>
99
- ${t('PAYMENT_METHOD')}: ${order?.paymethod?.name}
121
+ ${t(paymethodsLength > 1 ? 'PAYMENT_METHODS' : 'PAYMENT_METHOD', paymethodsLength > 1 ? 'Payment methods' : 'Payment method')}: ${handlePaymethodsListString()}
100
122
  </p>
101
123
 
102
124
  <h1>${t('CUSTOMER_DETAILS', 'Customer details')}</h1>
103
- <p style="font-size: 27px"> ${t('FULL_NAME', 'Full Name')}: ${order?.customer?.name
104
- } ${order?.customer?.middle_name} ${order?.customer?.lastname} ${order?.customer?.second_lastname
105
- }
125
+ <p style="font-size: 27px"> ${t('FULL_NAME', 'Full Name')}: ${customerName}
106
126
  </br>
107
127
  ${t('EMAIL', 'Email')}: ${order?.customer?.email}
108
128
  </br>
@@ -113,15 +133,17 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
113
133
  } </br>`
114
134
  : ''
115
135
  }
116
- ${t('FULL_ADDRESS', 'Full Addres')}: ${order?.customer?.address}
117
- </br>
136
+ ${t('FULL_ADDRESS', 'Full Addres')}: ${order?.customer?.address}
137
+ </br>
118
138
  ${!!order?.customer?.internal_number
119
139
  ? `${t('INTERNAL_NUMBER', 'Internal Number')}: ${order?.customer?.internal_number
120
140
  } </br>`
121
141
  : ''
122
142
  }
123
- ${t('ZIPCODE', 'Zipcode')}: ${order?.customer.zipcode}
124
- </p>
143
+ ${order?.customer.zipcode ?
144
+ `${t('ZIPCODE', 'Zipcode')}: ${order?.customer.zipcode}`
145
+ : ''}
146
+ </p>
125
147
 
126
148
  <h1>${t('BUSINESS_DETAILS', 'Business details')}</h1>
127
149
  <p style="font-size: 27px">
@@ -221,15 +243,18 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
221
243
  : ''
222
244
  }
223
245
 
224
- ${order?.summary?.delivery_price > 0
225
- ? `<div style="font-size: 25px;"> ${t(
226
- 'DELIVERY_FEE',
227
- 'Delivery Fee',
228
- )}
229
- </div>`
230
- : ''
231
- }
246
+ ${order?.summary?.delivery_price > 0 ?
247
+ ` <div style="display: flex">
248
+ <div style="font-size: 26px; width: 70%; display: flex; justify-content: flex-start">
249
+ ${t('DELIVERY_FEE', 'Delivery Fee')}
250
+ </div>
232
251
 
252
+ <div style="font-size: 26px; width: 30%; display: flex; justify-content: flex-end">
253
+ ${parsePrice(order?.summary?.delivery_price ?? 0)}
254
+ </div>` :
255
+ ''}
256
+
257
+ </div>
233
258
  <div style="display: flex">
234
259
 
235
260
  <div style="font-size: 26px; width: 70%; display: flex; justify-content: flex-start">
@@ -339,9 +364,6 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
339
364
  }
340
365
  };
341
366
 
342
- const customerName = `${order?.customer?.name ?? ''} ${order?.customer?.middle_name ?? ''} ${order?.customer?.lastname ?? ''} ${order?.customer?.second_lastname ?? ''
343
- }`?.replace(' ', ' ')?.trim() ?? ''
344
-
345
367
  return (
346
368
  <>
347
369
  <Content>
@@ -381,10 +403,7 @@ export const OrderSummary = ({ order, navigation, orderStatus, askBluetoothPermi
381
403
  }`}
382
404
  </OText>
383
405
 
384
- <OText style={{ marginBottom: 5 }}>{`${t('PAYMENT_METHOD')}: ${t(
385
- order?.paymethod?.name.toUpperCase(),
386
- order?.paymethod?.name,
387
- )}`}</OText>
406
+ <OText style={{ marginBottom: 5 }}>{`${t(`${paymethodsLength > 1 ? 'PAYMENT_METHODS' : 'PAYMENT_METHOD'}`, `${paymethodsLength > 1 ? 'Payment methods' : 'Payment method'}`)}: ${handlePaymethodsListString()}`}</OText>
388
407
  </OrderHeader>
389
408
 
390
409
  <OrderCustomer>
@@ -40,6 +40,7 @@ import { OrdersOptionPaymethod } from '../OrdersOptionPaymethod';
40
40
  import { OrdersOptionDriver } from '../OrdersOptionDriver';
41
41
  import { OrdersOptionDate } from '../OrdersOptionDate';
42
42
  import { OrderDetailsBusiness } from '../OrderDetails/Business';
43
+ import { WebsocketStatus } from '../WebsocketStatus'
43
44
 
44
45
  const { useDeviceOrientation, PORTRAIT } = DeviceOrientationMethods
45
46
 
@@ -314,7 +315,11 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
314
315
  </View>
315
316
  {configState?.configs?.order_deadlines_enabled?.value === '1' && (
316
317
  <View style={styles.SLAwrapper}>
317
- <View style={{ flex: 0.5 }}>
318
+ <View style={{ flex: 1 }}>
319
+ <WebsocketStatus />
320
+ </View>
321
+ <View style={{ width: 10, height: '100%' }} />
322
+ <View style={{ flex: 1 }}>
318
323
  <OButton
319
324
  text={t('SLA_SETTING', 'SLA’s Settings')}
320
325
  textStyle={{ color: theme.colors.backArrow }}
@@ -330,7 +335,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
330
335
  />
331
336
  </View>
332
337
  <View style={{ width: 10, height: '100%' }} />
333
- <View style={{ flex: 0.5, justifyContent: 'center' }}>
338
+ <View style={{ flex: 1, justifyContent: 'center' }}>
334
339
  <SelectDropdown
335
340
  defaultButtonText={t('SLA', 'SLA\'s')}
336
341
  data={preorderTypeList}
@@ -209,7 +209,7 @@ export const Timer = () => {
209
209
  return (
210
210
  <TimerInputWrapper>
211
211
  <OText style={styles.settingTime} color={theme.colors.disabled}>{configs?.order_deadlines_delayed_time?.value}</OText>
212
- <OText>{t('MIN', 'min')}</OText>
212
+ <OText>{t('TIME_MIN', 'min')}</OText>
213
213
  </TimerInputWrapper>
214
214
  )
215
215
  }