ordering-ui-react-native 0.18.3 → 0.18.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 (261) hide show
  1. package/package.json +9 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/OrderCreating/index.tsx +0 -20
  6. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  7. package/src/components/PhoneInputNumber/index.tsx +6 -2
  8. package/src/components/StripeMethodForm/index.tsx +136 -102
  9. package/src/components/VerifyPhone/styles.tsx +1 -2
  10. package/src/components/shared/OToast.tsx +3 -2
  11. package/src/types/index.tsx +5 -0
  12. package/src/utils/index.tsx +7 -2
  13. package/themes/business/index.tsx +2 -0
  14. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +36 -26
  15. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  16. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  17. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  18. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  19. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  20. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  21. package/themes/business/src/components/Chat/index.tsx +163 -123
  22. package/themes/business/src/components/DriverMap/index.tsx +1 -1
  23. package/themes/business/src/components/DriverSchedule/index.tsx +45 -8
  24. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  25. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  26. package/themes/business/src/components/LoginForm/index.tsx +5 -2
  27. package/themes/business/src/components/MapView/index.tsx +14 -10
  28. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  29. package/themes/business/src/components/NewOrderNotification/index.tsx +123 -96
  30. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  31. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  32. package/themes/business/src/components/OrderDetails/Delivery.tsx +205 -12
  33. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +64 -36
  34. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +47 -23
  35. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +9 -4
  36. package/themes/business/src/components/OrderMessage/index.tsx +1 -1
  37. package/themes/business/src/components/OrderSummary/index.tsx +114 -123
  38. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  39. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  40. package/themes/business/src/components/OrdersOption/index.tsx +43 -32
  41. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  42. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  43. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +21 -29
  44. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  45. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  46. package/themes/business/src/components/PreviousOrders/index.tsx +193 -221
  47. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  48. package/themes/business/src/components/ReviewCustomer/index.tsx +3 -1
  49. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  50. package/themes/business/src/components/StoresList/index.tsx +6 -5
  51. package/themes/business/src/components/UserProfileForm/index.tsx +15 -17
  52. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  53. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  54. package/themes/business/src/types/index.tsx +8 -0
  55. package/themes/business/src/utils/index.tsx +4 -4
  56. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  57. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  58. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  59. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  60. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  61. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -5
  62. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  63. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  64. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  65. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  66. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  67. package/themes/original/index.tsx +7 -3
  68. package/themes/original/src/components/AddressDetails/index.tsx +19 -3
  69. package/themes/original/src/components/AddressForm/index.tsx +33 -15
  70. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  71. package/themes/original/src/components/AddressList/index.tsx +5 -8
  72. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  73. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  74. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  75. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  76. package/themes/original/src/components/BusinessBasicInformation/index.tsx +74 -38
  77. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +11 -13
  78. package/themes/original/src/components/BusinessController/index.tsx +35 -44
  79. package/themes/original/src/components/BusinessController/styles.tsx +12 -5
  80. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  81. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  82. package/themes/original/src/components/BusinessInformation/index.tsx +140 -85
  83. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  84. package/themes/original/src/components/BusinessItemAccordion/index.tsx +25 -26
  85. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  86. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  87. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  88. package/themes/original/src/components/BusinessListingSearch/index.tsx +133 -438
  89. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -19
  90. package/themes/original/src/components/BusinessPreorder/index.tsx +11 -9
  91. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -3
  92. package/themes/original/src/components/BusinessProductsList/index.tsx +15 -7
  93. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  94. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  95. package/themes/original/src/components/BusinessProductsListing/index.tsx +162 -39
  96. package/themes/original/src/components/BusinessProductsListing/styles.tsx +4 -5
  97. package/themes/original/src/components/BusinessReviews/index.tsx +4 -2
  98. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  99. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  100. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  101. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  102. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  103. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +37 -404
  104. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  105. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  106. package/themes/original/src/components/Cart/index.tsx +49 -47
  107. package/themes/original/src/components/CartContent/index.tsx +99 -38
  108. package/themes/original/src/components/CartContent/styles.tsx +6 -6
  109. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  110. package/themes/original/src/components/Checkout/index.tsx +324 -43
  111. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  112. package/themes/original/src/components/CitiesControl/index.tsx +1 -1
  113. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  114. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  115. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  116. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  117. package/themes/original/src/components/DriverTips/index.tsx +6 -3
  118. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  119. package/themes/original/src/components/Favorite/index.tsx +4 -9
  120. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  121. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  122. package/themes/original/src/components/GPSButton/index.tsx +7 -5
  123. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  124. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +42 -5
  125. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +3 -1
  126. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +84 -8
  127. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  128. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  129. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  130. package/themes/original/src/components/GoogleMap/index.tsx +63 -7
  131. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
  132. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  133. package/themes/original/src/components/Home/index.tsx +14 -5
  134. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  135. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  136. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -25
  137. package/themes/original/src/components/LoginForm/index.tsx +64 -34
  138. package/themes/original/src/components/LottieAnimation/index.tsx +88 -63
  139. package/themes/original/src/components/MessageListing/index.tsx +9 -2
  140. package/themes/original/src/components/Messages/index.tsx +15 -4
  141. package/themes/original/src/components/Messages/styles.tsx +1 -1
  142. package/themes/original/src/components/MomentOption/index.tsx +9 -10
  143. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  144. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  145. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +161 -49
  146. package/themes/original/src/components/MultiCheckout/index.tsx +348 -70
  147. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  148. package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -2
  149. package/themes/original/src/components/MyOrders/index.tsx +16 -5
  150. package/themes/original/src/components/NavBar/index.tsx +20 -13
  151. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  152. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  153. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  154. package/themes/original/src/components/Notifications/index.tsx +4 -8
  155. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  156. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  157. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +22 -6
  158. package/themes/original/src/components/OrderDetails/index.tsx +721 -670
  159. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  160. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  161. package/themes/original/src/components/OrderProgress/index.tsx +34 -25
  162. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  163. package/themes/original/src/components/OrderSummary/index.tsx +62 -57
  164. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  165. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  166. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +13 -13
  167. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  168. package/themes/original/src/components/OrdersOption/index.tsx +44 -21
  169. package/themes/original/src/components/OrdersOption/styles.tsx +2 -2
  170. package/themes/original/src/components/PageBanner/index.tsx +65 -29
  171. package/themes/original/src/components/PageBanner/styles.tsx +0 -3
  172. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  173. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  174. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  175. package/themes/original/src/components/PaymentOptions/index.tsx +100 -34
  176. package/themes/original/src/components/PhoneInputNumber/index.tsx +18 -4
  177. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  178. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  179. package/themes/original/src/components/ProductForm/index.tsx +106 -170
  180. package/themes/original/src/components/ProductForm/styles.tsx +3 -3
  181. package/themes/original/src/components/ProductItemAccordion/index.tsx +13 -6
  182. package/themes/original/src/components/ProductOptionSubOption/index.tsx +49 -20
  183. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  184. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  185. package/themes/original/src/components/Promotions/index.tsx +6 -6
  186. package/themes/original/src/components/Promotions/styles.tsx +3 -3
  187. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  188. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  189. package/themes/original/src/components/ReviewProducts/index.tsx +16 -7
  190. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  191. package/themes/original/src/components/ScheduleAccordion/index.tsx +3 -3
  192. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  193. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  194. package/themes/original/src/components/SignupForm/index.tsx +27 -16
  195. package/themes/original/src/components/SingleOrderCard/index.tsx +44 -20
  196. package/themes/original/src/components/SingleOrderCard/styles.tsx +1 -1
  197. package/themes/original/src/components/SingleProductCard/index.tsx +13 -10
  198. package/themes/original/src/components/SingleProductCard/styles.tsx +8 -3
  199. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  200. package/themes/original/src/components/StripeCardsList/index.tsx +61 -5
  201. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  202. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  203. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  204. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  205. package/themes/original/src/components/UpsellingProducts/index.tsx +16 -205
  206. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  207. package/themes/original/src/components/UserDetails/index.tsx +3 -1
  208. package/themes/original/src/components/UserFormDetails/index.tsx +100 -22
  209. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  210. package/themes/original/src/components/UserProfile/index.tsx +8 -26
  211. package/themes/original/src/components/UserProfileForm/index.tsx +30 -31
  212. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  213. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  214. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  215. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  216. package/themes/original/src/components/Wallets/index.tsx +48 -60
  217. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  218. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  219. package/themes/original/src/components/shared/OButton.tsx +3 -3
  220. package/themes/original/src/components/shared/OInput.tsx +4 -5
  221. package/themes/original/src/components/shared/OModal.tsx +15 -17
  222. package/themes/original/src/layouts/Container.tsx +5 -3
  223. package/themes/original/src/types/index.tsx +26 -7
  224. package/themes/original/src/utils/index.tsx +180 -13
  225. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  226. package/src/navigators/BottomNavigator.tsx +0 -117
  227. package/src/navigators/CheckoutNavigator.tsx +0 -66
  228. package/src/navigators/HomeNavigator.tsx +0 -202
  229. package/src/navigators/NavigationRef.tsx +0 -7
  230. package/src/navigators/RootNavigator.tsx +0 -269
  231. package/src/pages/Account.tsx +0 -34
  232. package/src/pages/AddressForm.tsx +0 -62
  233. package/src/pages/AddressList.tsx +0 -24
  234. package/src/pages/BusinessProductsList.tsx +0 -81
  235. package/src/pages/BusinessesListing.tsx +0 -43
  236. package/src/pages/CartList.tsx +0 -49
  237. package/src/pages/Checkout.tsx +0 -101
  238. package/src/pages/ForgotPassword.tsx +0 -24
  239. package/src/pages/Help.tsx +0 -23
  240. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  241. package/src/pages/HelpGuide.tsx +0 -23
  242. package/src/pages/HelpOrder.tsx +0 -23
  243. package/src/pages/Home.tsx +0 -36
  244. package/src/pages/IntroductoryTutorial.tsx +0 -170
  245. package/src/pages/Login.tsx +0 -47
  246. package/src/pages/MomentOption.tsx +0 -30
  247. package/src/pages/MultiCheckout.tsx +0 -31
  248. package/src/pages/MultiOrdersDetails.tsx +0 -27
  249. package/src/pages/MyOrders.tsx +0 -40
  250. package/src/pages/NetworkError.tsx +0 -24
  251. package/src/pages/NotFound.tsx +0 -22
  252. package/src/pages/OrderDetails.tsx +0 -25
  253. package/src/pages/ProductDetails.tsx +0 -55
  254. package/src/pages/Profile.tsx +0 -36
  255. package/src/pages/ReviewDriver.tsx +0 -30
  256. package/src/pages/ReviewOrder.tsx +0 -32
  257. package/src/pages/ReviewProducts.tsx +0 -30
  258. package/src/pages/Sessions.tsx +0 -22
  259. package/src/pages/Signup.tsx +0 -53
  260. package/src/pages/SpinnerLoader.tsx +0 -10
  261. package/src/pages/Splash.tsx +0 -21
@@ -123,7 +123,9 @@ const OrderMessageUI = (props: any) => {
123
123
  setMessages,
124
124
  readMessages,
125
125
  messagesReadList,
126
- setOpenMessges
126
+ setOpenMessges,
127
+ setSeletedOrder,
128
+ setSelectedOrderId
127
129
  } = props;
128
130
  const [openModalForBusiness, setOpenModalForBusiness] = useState(false);
129
131
  const [openModalForDriver, setOpenModalForDriver] = useState(false);
@@ -140,6 +142,8 @@ const OrderMessageUI = (props: any) => {
140
142
 
141
143
  const handleClose = () => {
142
144
  setOpenMessges(false)
145
+ setSeletedOrder(null)
146
+ setSelectedOrderId(null)
143
147
  }
144
148
 
145
149
  const handleOpenMessages = (data: any) => {
@@ -269,7 +273,7 @@ export const MessageListing = (props: MessageListingParams) => {
269
273
  setOpenMessges={setOpenMessges}
270
274
  franchiseId={props.franchiseId}
271
275
  />
272
- {openMessages && seletedOrder && (
276
+ {openMessages && !!seletedOrder?.id && (
273
277
  <OModal
274
278
  open={openMessages}
275
279
  entireModal
@@ -278,7 +282,10 @@ export const MessageListing = (props: MessageListingParams) => {
278
282
  >
279
283
  <MessagesView
280
284
  order={seletedOrder}
285
+ orderId={seletedOrder?.id}
281
286
  setOpenMessges={setOpenMessges}
287
+ setSeletedOrder={setSeletedOrder}
288
+ setSelectedOrderId={setSelectedOrderId}
282
289
  />
283
290
  </OModal>
284
291
  )}
@@ -126,9 +126,13 @@ const MessagesUI = (props: MessagesParams) => {
126
126
  const messageConsole = (message: any) => {
127
127
  return message.change?.attribute !== 'driver_id'
128
128
  ?
129
- `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute) ?
130
- `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}` :
131
- `${message.change?.attribute !== 'logistic_status' ? message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)]) : message.change.old !== null && getLogisticTag(message.change.old)} ${t('TO', 'to')} ${message.change?.attribute !== 'logistic_status' ? t(ORDER_STATUS[parseInt(message.change.new, 10)]) : getLogisticTag(message.change.new)}`
129
+ `${t('ORDER', 'Order')} ${t(message.change.attribute.toUpperCase(), message.change.attribute.replace('_', ' '))} ${t('CHANGED_FROM', 'Changed from')} ${filterSpecialStatus.includes(message.change.attribute)
130
+ ? `${message.change.old === null ? '0' : message.change.old} ${t('TO', 'to')} ${message.change.new} ${t('MINUTES', 'Minutes')}`
131
+ : `${message.change?.attribute !== 'logistic_status'
132
+ ? message.change.old !== null && t(ORDER_STATUS[parseInt(message.change.old, 10)])
133
+ : message.change.old !== null && getLogisticTag(message.change.old)} ${t('TO', 'to')} ${message.change?.attribute !== 'logistic_status'
134
+ ? t(ORDER_STATUS[parseInt(message.change.new, 10)])
135
+ : getLogisticTag(message.change.new)}`
132
136
  }`
133
137
  : message.change.new
134
138
  ?
@@ -148,6 +152,7 @@ const MessagesUI = (props: MessagesParams) => {
148
152
  }
149
153
  const newMessage: any = [];
150
154
  messages.messages.map((message: any) => {
155
+ if (message.change?.attribute === 'driver_group_id') return
151
156
  if (business && message.type !== 0 && (messagesToShow?.messages?.length || message?.can_see?.includes('2'))) {
152
157
  newMessage.push({
153
158
  _id: message?.id,
@@ -171,7 +176,7 @@ const MessagesUI = (props: MessagesParams) => {
171
176
  image: message.source,
172
177
  system: message.type === 1,
173
178
  user: {
174
- _id: message.author && message.author.id ,
179
+ _id: message.author && message.author.id,
175
180
  name: message.author && message.author.name,
176
181
  avatar: message.author && (message.author.id !== user.id && type === USER_TYPE.DRIVER ? order?.driver?.photo : order?.business?.logo)
177
182
  }
@@ -242,6 +247,7 @@ const MessagesUI = (props: MessagesParams) => {
242
247
 
243
248
  const renderAccessory = () => {
244
249
  return (
250
+ !chatDisabled &&
245
251
  <QuickMessageContainer
246
252
  style={{
247
253
  marginLeft: 10,
@@ -412,6 +418,11 @@ const MessagesUI = (props: MessagesParams) => {
412
418
  );
413
419
  }
414
420
 
421
+ useEffect(() => {
422
+ if (!order?.id || messages?.loading) return
423
+ readMessages && readMessages()
424
+ }, [order?.id, messages?.loading])
425
+
415
426
  return (
416
427
  <View style={{ height: getViewHeight(), width: '100%', paddingTop: 12, backgroundColor: 'white' }}>
417
428
  <Wrapper>
@@ -10,7 +10,7 @@ export const Header = styled.View`
10
10
  background-color: ${(props: any) => props.theme.colors.white};
11
11
  box-shadow: 0 2px 2px #0000001A;
12
12
  padding-bottom: 10px;
13
- padding-horizontal: 20px;
13
+ padding-horizontal: 10px;
14
14
  `
15
15
 
16
16
  export const TitleHeader = styled.View``
@@ -155,7 +155,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
155
155
  });
156
156
  const { bottom } = useSafeAreaInsets();
157
157
 
158
- const is12hours = configs?.dates_moment_format?.value?.includes('hh:mm')
158
+ const is12hours = configs?.general_hour_format?.value?.includes('hh:mm')
159
159
 
160
160
  const [selectedTime, setSelectedTime] = useState(null);
161
161
  const [datesWhitelist, setDateWhitelist] = useState<any>([{ start: null, end: null }])
@@ -256,7 +256,7 @@ const MomentOptionUI = (props: MomentOptionParams) => {
256
256
  setDateWhitelist([{ start: _minDate, end: _maxDate }])
257
257
  }
258
258
  }
259
- }, [JSON.stringify(datesList), preorderMinimumDays, preorderMaximumDays])
259
+ }, [JSON.stringify(datesList), preorderMinimumDays, preorderMaximumDays, cateringPreorder])
260
260
 
261
261
  useEffect(() => {
262
262
  if (dateSelected) {
@@ -321,14 +321,14 @@ const MomentOptionUI = (props: MomentOptionParams) => {
321
321
  }
322
322
  }))
323
323
  }
324
- }, [dateSelected, JSON.stringify(hoursList), JSON.stringify(datesWhitelist), cateringPreorder])
324
+ }, [dateSelected, JSON.stringify(hoursList), JSON.stringify(datesWhitelist), cateringPreorder, JSON.stringify(business)])
325
325
 
326
326
  return (
327
327
  <>
328
328
  <Container
329
329
  style={{
330
- paddingLeft: !cateringPreorder || isPage ? 40 : 0,
331
- paddingRight: !cateringPreorder || isPage ? 40 : 0
330
+ paddingLeft: !cateringPreorder || isPage ? 20 : 0,
331
+ paddingRight: !cateringPreorder || isPage ? 20 : 0
332
332
  }}
333
333
  nestedScrollEnabled
334
334
  >
@@ -385,17 +385,16 @@ const MomentOptionUI = (props: MomentOptionParams) => {
385
385
  </WrapSelectOption>
386
386
  {optionSelected.isSchedule && (
387
387
  <OrderTimeWrapper>
388
- {datesWhitelist?.length <= 1 && (
388
+ {datesWhitelist[0]?.start === datesWhitelist[0]?.end && (
389
389
  <OText>
390
390
  {moment(selectDate).format('Do MMMM, YYYY')}
391
391
  </OText>
392
392
  )}
393
- {datesWhitelist > 1 && (
393
+ {datesWhitelist[0]?.start !== datesWhitelist[0]?.end && (
394
394
  <View style={{ flex: 1 }}>
395
395
  {selectDate && datesWhitelist[0]?.start !== null && (
396
396
  <CalendarStrip
397
397
  scrollable
398
- locale={locale}
399
398
  style={styles.calendar}
400
399
  calendarHeaderContainerStyle={styles.calendarHeaderContainer}
401
400
  calendarHeaderStyle={styles.calendarHeader}
@@ -467,8 +466,8 @@ const MomentOptionUI = (props: MomentOptionParams) => {
467
466
  </View>
468
467
  <Spinner visible={momentState.isLoading === 1} />
469
468
  </Container>
470
- {!isCart && (
471
- <View style={{ position: 'absolute', bottom: bottom, paddingBottom: 20, paddingHorizontal: 40, backgroundColor: 'white', width: '100%' }}>
469
+ {!isCart && !cateringPreorder && (
470
+ <View style={{ position: 'absolute', bottom: bottom, paddingBottom: 20, paddingHorizontal: 20, backgroundColor: 'white', width: '100%' }}>
472
471
  <OButton onClick={() => handleChangeMoment()} isDisabled={!selectedTime} text={t('CONTINUE', 'Continue')} style={{ borderRadius: 7.6, height: 44, shadowOpacity: 0 }} textStyle={{ color: 'white', fontSize: 14 }} showNextIcon />
473
472
  </View>
474
473
  )}
@@ -30,7 +30,7 @@ const MomentSelectorUI = (props: any) => {
30
30
  const [customizedDateList, setCustomizedDateList] = useState([])
31
31
  const [customizedTimeList, setCustomizedTimeList] = useState([])
32
32
 
33
- const is12hours = configs?.dates_moment_format?.value?.includes('hh:mm')
33
+ const is12hours = configs?.general_hour_format?.value?.includes('hh:mm')
34
34
 
35
35
  const styles = StyleSheet.create({
36
36
  selectOption: {
@@ -11,7 +11,7 @@ export const MultiCartUI = () => {
11
11
  const theme = useTheme();
12
12
  return (
13
13
  <Container noPadding>
14
- <ChContainer style={{ paddingHorizontal: 40 }}>
14
+ <ChContainer style={{ paddingHorizontal: 20 }}>
15
15
  <ChSection>
16
16
  <ChUserDetails>
17
17
  <Placeholder Animation={Fade}>
@@ -1,8 +1,10 @@
1
- import React, { useState } from 'react'
1
+ import React, { useEffect, useState } from 'react'
2
2
  import {
3
3
  useLanguage,
4
4
  useConfig,
5
5
  useUtils,
6
+ useToast,
7
+ ToastType,
6
8
  MultiCartsPaymethodsAndWallets as MultiCartsPaymethodsAndWalletsController
7
9
  } from 'ordering-components/native'
8
10
  import { useTheme } from 'styled-components/native'
@@ -13,6 +15,7 @@ import { getIconCard, flatArray } from '../../utils'
13
15
  import { StripeElementsForm } from '../StripeElementsForm'
14
16
  import { StripeCardsList } from '../StripeCardsList'
15
17
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
18
+ import { useApplePay } from '@stripe/stripe-react-native';
16
19
 
17
20
  import {
18
21
  PMContainer,
@@ -25,16 +28,27 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
25
28
  businessIds,
26
29
  paymethodsAndWallets,
27
30
  walletsState,
31
+ walletsPaymethod,
28
32
  paymethodSelected,
29
33
  handleSelectPaymethod,
30
34
  handleSelectWallet,
31
- handlePaymethodDataChange
35
+ handlePaymethodDataChange,
36
+ setMethodPaySupported,
37
+ placeByMethodPay,
38
+ methodPaySupported,
39
+ setPlaceByMethodPay,
40
+ openCarts,
41
+ cartTotal,
42
+ handlePlaceOrder,
43
+ merchantId
32
44
  } = props
33
45
 
34
46
  const theme = useTheme()
35
47
  const [, t] = useLanguage()
36
48
  const [{ configs }] = useConfig()
37
49
  const [{ parsePrice }] = useUtils()
50
+ const [, { showToast }] = useToast();
51
+ const { confirmApplePayPayment } = useApplePay()
38
52
 
39
53
  const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false });
40
54
 
@@ -52,6 +66,10 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
52
66
  }
53
67
  }
54
68
 
69
+ const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate, { isTruncable: true })}`
70
+ const filterMethodsPay = (gateway: string) => Platform.OS === 'ios' ? gateway !== 'global_google_pay' : gateway !== 'global_apple_pay'
71
+ const methodsPay = ['global_google_pay', 'global_apple_pay']
72
+
55
73
  const getPayIcon = (method: string) => {
56
74
  switch (method) {
57
75
  case 'cash':
@@ -68,35 +86,81 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
68
86
  return theme.images.general.stripes
69
87
  case 'stripe_redirect':
70
88
  return theme.images.general.stripesb
89
+ case 'global_apple_pay':
90
+ return theme.images.general.applePayMark
91
+ case 'global_google_pay':
92
+ return theme.images.general.googlePayMark
71
93
  default:
72
94
  return theme.images.general.creditCard
73
95
  }
74
96
  }
75
97
 
98
+ useEffect(() => {
99
+ if (methodsPay.includes(paymethodSelected?.gateway)) {
100
+ if (typeof paymethodSelected?.paymethod_data === 'string') {
101
+ const sourceId = JSON.parse(paymethodSelected?.paymethod_data)?.source_id
102
+ sourceId && handlePlaceOrder(confirmApplePayPayment)
103
+ }
104
+ }
105
+ }, [JSON.stringify(paymethodSelected)])
106
+
107
+ useEffect(() => {
108
+ if (cartTotal === 0) {
109
+ handlePaymethodDataChange(null)
110
+ handleSelectPaymethod(null)
111
+ }
112
+ }, [cartTotal])
113
+
114
+ const handleChangePaymethod = (paymethod: any) => {
115
+ if (cartTotal > 0) {
116
+ handleSelectPaymethod(paymethod)
117
+ return
118
+ }
119
+ showToast(
120
+ ToastType.Error,
121
+ t('CART_BALANCE_ZERO', 'Sorry, the amount to pay is equal to zero and it is not necessary to select a payment method'))
122
+ ;
123
+ }
124
+
76
125
  const renderPaymethods = ({ item }: any) => {
77
126
  return (
78
- <TouchableOpacity
79
- onPress={() => handleSelectPaymethod({ ...item, paymethod: { gateway: item.gateway }, paymethod_id: item?.id })}
80
- >
81
- <PMItem
82
- key={item.id}
83
- isActive={paymethodSelected?.id === item.id}
84
- >
85
- <OIcon
86
- src={getPayIcon(item?.gateway ?? item.paymethod?.gateway)}
87
- width={20}
88
- height={20}
89
- color={paymethodSelected?.id === item.id ? theme.colors.white : theme.colors.backgroundDark}
90
- />
91
- <OText
92
- size={10}
93
- style={{ margin: 0, marginTop: 4 }}
94
- color={paymethodSelected?.id === item.id ? theme.colors.white : '#000'}
127
+ <>
128
+ {methodsPay.includes(item?.gateway) ? (
129
+ <TouchableOpacity
130
+ onPress={() => handleChangePaymethod({ ...item, paymethod: { gateway: item.gateway }, paymethod_id: item?.id })}
95
131
  >
96
- {t(item?.gateway.toUpperCase(), item?.name)}
97
- </OText>
98
- </PMItem>
99
- </TouchableOpacity>
132
+ <OIcon
133
+ src={getPayIcon(item.gateway)}
134
+ width={70}
135
+ height={70}
136
+ style={{ marginRight: 10 }}
137
+ />
138
+ </TouchableOpacity>
139
+ ) : (
140
+ <TouchableOpacity
141
+ onPress={() => handleChangePaymethod({ ...item, paymethod: { gateway: item.gateway }, paymethod_id: item?.id })}
142
+ >
143
+ <PMItem
144
+ key={item.id}
145
+ isActive={paymethodSelected?.id === item.id}
146
+ >
147
+ <OIcon
148
+ src={getPayIcon(item?.gateway ?? item.paymethod?.gateway)}
149
+ width={20}
150
+ height={20}
151
+ color={item?.gateway === 'global_apple_pay' ? '' : paymethodSelected?.id === item.id ? theme.colors.white : theme.colors.backgroundDark}
152
+ />
153
+ <OText
154
+ size={10}
155
+ style={{ margin: 0, marginTop: 4 }}
156
+ color={paymethodSelected?.id === item.id ? theme.colors.white : '#000'}
157
+ >
158
+ {t(item?.gateway.toUpperCase(), item?.name)}
159
+ </OText>
160
+ </PMItem>
161
+ </TouchableOpacity>
162
+ )}
163
+ </>
100
164
  )
101
165
  }
102
166
 
@@ -123,7 +187,7 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
123
187
  <FlatList
124
188
  horizontal
125
189
  showsHorizontalScrollIndicator={false}
126
- data={paymethodsAndWallets.paymethods}
190
+ data={paymethodsAndWallets.paymethods.filter((p: any) => filterMethodsPay(p.gateway))}
127
191
  renderItem={renderPaymethods}
128
192
  keyExtractor={(paymethod: any) => paymethod?.id?.toString?.()}
129
193
  />
@@ -152,10 +216,38 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
152
216
  publicKey={paymethodSelected?.data?.publishable}
153
217
  payType={paymethodSelected?.paymethod?.name}
154
218
  onSelectCard={handlePaymethodDataChange}
219
+ addCardOpen={addCardOpen}
220
+ setAddCardOpen={setAddCardOpen}
221
+ openCarts={openCarts}
222
+ toSave
223
+ handlePaymethodDataChange={handlePaymethodDataChange}
224
+ clientSecret={props.clientSecret}
225
+ onPaymentChange={handlePaymethodDataChange}
155
226
  />
156
227
  </View>
157
228
  )}
158
229
 
230
+ {/* Google pay, Apple pay */}
231
+ {methodsPay.includes(paymethodSelected?.paymethod?.gateway) && (
232
+ <StripeElementsForm
233
+ toSave
234
+ businessId={businessIds[0]}
235
+ businessIds={businessIds}
236
+ publicKey={paymethodSelected?.data?.publishable}
237
+ requirements={props.clientSecret}
238
+ handleSource={handlePaymethodDataChange}
239
+ onCancel={() => setAddCardOpen({ ...addCardOpen, stripe: false })}
240
+ setMethodPaySupported={setMethodPaySupported}
241
+ methodPaySupported={methodPaySupported}
242
+ placeByMethodPay={placeByMethodPay}
243
+ setPlaceByMethodPay={setPlaceByMethodPay}
244
+ methodsPay={methodsPay}
245
+ paymethod={paymethodSelected?.paymethod?.gateway}
246
+ cartTotal={cartTotal}
247
+ merchantId={merchantId}
248
+ />
249
+ )}
250
+
159
251
  {(paymethodsAndWallets.loading || walletsState.loading) ? (
160
252
  <>
161
253
  {[...Array(2).keys()].map(i => (
@@ -169,33 +261,52 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
169
261
  </>
170
262
  ) : (
171
263
  <>
172
- {walletsState?.result?.filter((wallet: any) => paymethodsAndWallets.wallets.find((item: any) => item.type === wallet.type)).map((wallet: any, idx: any) => walletName[wallet.type]?.isActive && (
173
- <WalletItem
174
- key={wallet.type}
175
- isBottomBorder={idx === paymethodsAndWallets.wallets?.length - 1}
176
- onPress={() => handleSelectWallet(paymethodSelected.wallet_id === wallet.id ? false : true, wallet)}
177
- >
178
- {paymethodSelected.wallet_id === wallet.id ? (
179
- <MaterialCommunityIcons
180
- name="checkbox-marked"
181
- size={25}
182
- color={theme.colors.primary}
183
- />
184
- ) : (
185
- <MaterialCommunityIcons
186
- name="checkbox-blank-outline"
187
- size={25}
188
- color={theme.colors.disabled}
189
- />
190
- )}
191
- <OText size={12} style={{ flex: 1, marginLeft: 15 }}>{walletName[wallet.type]?.name}</OText>
192
- <OText size={12}>{parsePrice(wallet.balance)}</OText>
193
- </WalletItem>
194
- ))}
264
+ {walletsState?.result?.filter((wallet: any) =>
265
+ paymethodsAndWallets.wallets.find((item: any) => item.type === wallet.type))
266
+ .map((wallet: any, idx: any) => walletName[wallet.type]?.isActive &&
267
+ (
268
+ <WalletItem
269
+ key={wallet.type}
270
+ isBottomBorder={idx === paymethodsAndWallets.wallets?.length - 1}
271
+ onPress={() => handleSelectWallet(!!!walletsPaymethod?.find((walletPay: any) => walletPay.wallet_id === wallet.id)?.id, wallet)}
272
+ >
273
+ {!!walletsPaymethod?.find((walletPay: any) => walletPay.wallet_id === wallet.id)?.id ? (
274
+ <MaterialCommunityIcons
275
+ name="checkbox-marked"
276
+ size={25}
277
+ color={theme.colors.primary}
278
+ />
279
+ ) : (
280
+ <MaterialCommunityIcons
281
+ name="checkbox-blank-outline"
282
+ size={25}
283
+ color={theme.colors.disabled}
284
+ />
285
+ )}
286
+ <OText size={12} style={{ flex: 1, marginLeft: 15 }}>{walletName[wallet.type]?.name}</OText>
287
+ {wallet.type === 'cash' && (
288
+ <OText>
289
+ {parsePrice(wallet?.balance, { isTruncable: true })}
290
+ </OText>
291
+ )}
292
+ {wallet.type === 'credit_point' && (
293
+ <OText>
294
+ <OText color={theme.colors.primary} weight='bold'>
295
+ {`${wallet?.balance} ${t('POINTS', 'Points')}`}
296
+ </OText>
297
+ <OText>
298
+ {wallet?.balance > 0
299
+ ? creditBalance(wallet)
300
+ : null}
301
+ </OText>
302
+ </OText>
303
+ )}
304
+ </WalletItem>
305
+ ))}
195
306
  </>
196
307
  )}
197
308
 
198
- <OModal
309
+ {/* <OModal
199
310
  entireModal
200
311
  title={t('ADD_CREDIT_OR_DEBIT_CARD', 'Add credit or debit card')}
201
312
  open={addCardOpen.stripe}
@@ -208,6 +319,7 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
208
319
  enabled={Platform.OS === 'ios' ? true : false}
209
320
  >
210
321
  <StripeElementsForm
322
+ openCarts={openCarts}
211
323
  toSave
212
324
  businessId={businessIds[0]}
213
325
  businessIds={businessIds}
@@ -217,7 +329,7 @@ const MultiCartsPaymethodsAndWalletsUI = (props: any) => {
217
329
  onCancel={() => setAddCardOpen({ ...addCardOpen, stripe: false })}
218
330
  />
219
331
  </KeyboardAvoidingView>
220
- </OModal>
332
+ </OModal> */}
221
333
  </PMContainer>
222
334
  )
223
335
  }