ordering-components-external 13.2.12 → 13.2.13

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 (554) hide show
  1. package/.babelrc +22 -22
  2. package/.vscode/settings.json +3 -3
  3. package/_bundles/0.ordering-component.aa21761da1477298dd80.js +1 -0
  4. package/_bundles/{1.ordering-component.42ec5fef3ccdf425c509.js → 1.ordering-component.aa21761da1477298dd80.js} +1 -1
  5. package/_bundles/{2.ordering-component.42ec5fef3ccdf425c509.js → 2.ordering-component.aa21761da1477298dd80.js} +1 -1
  6. package/_bundles/{4.ordering-component.42ec5fef3ccdf425c509.js → 4.ordering-component.aa21761da1477298dd80.js} +1 -1
  7. package/_bundles/{5.ordering-component.42ec5fef3ccdf425c509.js → 5.ordering-component.aa21761da1477298dd80.js} +1 -1
  8. package/_bundles/{6.ordering-component.42ec5fef3ccdf425c509.js → 6.ordering-component.aa21761da1477298dd80.js} +1 -1
  9. package/_bundles/7.ordering-component.aa21761da1477298dd80.js +2 -0
  10. package/_bundles/7.ordering-component.aa21761da1477298dd80.js.LICENSE.txt +53 -0
  11. package/_bundles/{8.ordering-component.42ec5fef3ccdf425c509.js → 8.ordering-component.aa21761da1477298dd80.js} +1 -1
  12. package/_bundles/ordering-component.aa21761da1477298dd80.js +2 -0
  13. package/_bundles/{ordering-component.42ec5fef3ccdf425c509.js.LICENSE.txt → ordering-component.aa21761da1477298dd80.js.LICENSE.txt} +9 -0
  14. package/_modules/components/AddressDetails/index.js +35 -35
  15. package/_modules/components/AddressForm/index.js +63 -63
  16. package/_modules/components/AddressList/index.js +56 -56
  17. package/_modules/components/Analitycs/index.js +11 -11
  18. package/_modules/components/AnalyticsSegment/index.js +11 -11
  19. package/_modules/components/AppleLogin/index.js +37 -37
  20. package/_modules/components/BaseComponent/index.js +15 -15
  21. package/_modules/components/BusinessAndProductList/index.js +43 -43
  22. package/_modules/components/BusinessBasicInformation/index.js +30 -30
  23. package/_modules/components/BusinessController/index.js +65 -65
  24. package/_modules/components/BusinessInformation/BusinessOption/index.js +22 -22
  25. package/_modules/components/BusinessInformation/index.js +24 -24
  26. package/_modules/components/BusinessList/index.js +57 -57
  27. package/_modules/components/BusinessMenuListing/index.js +30 -30
  28. package/_modules/components/BusinessProductsCategories/index.js +18 -18
  29. package/_modules/components/BusinessProductsSearch/index.js +16 -16
  30. package/_modules/components/BusinessReviews/index.js +37 -37
  31. package/_modules/components/BusinessSearchList/index.js +37 -36
  32. package/_modules/components/BusinessSortControl/index.js +34 -34
  33. package/_modules/components/BusinessTypeFilter/index.js +36 -36
  34. package/_modules/components/BusinessesMap/index.js +33 -33
  35. package/_modules/components/Cart/index.js +48 -48
  36. package/_modules/components/CartStoresListing/index.js +15 -15
  37. package/_modules/components/Checkout/index.js +83 -83
  38. package/_modules/components/CmsContent/index.js +30 -30
  39. package/_modules/components/Contacts/index.js +45 -45
  40. package/_modules/components/CouponControl/index.js +29 -29
  41. package/_modules/components/DragAndDrop/index.js +4 -4
  42. package/_modules/components/DriverList/index.js +31 -31
  43. package/_modules/components/DriverTips/index.js +41 -41
  44. package/_modules/components/Emitter/index.js +3 -3
  45. package/_modules/components/FacebookLoginButton/index.js +50 -50
  46. package/_modules/components/FacebookPixel/index.js +8 -8
  47. package/_modules/components/FavoriteList/index.js +43 -43
  48. package/_modules/components/FirebaseGoogleLoginButton/index.js +21 -21
  49. package/_modules/components/FloatingButton/index.js +22 -22
  50. package/_modules/components/ForgotPasswordForm/index.js +53 -53
  51. package/_modules/components/GiftCard/GiftCardOrdersList/index.js +16 -16
  52. package/_modules/components/GiftCard/PurchaseGiftCard/index.js +17 -17
  53. package/_modules/components/GiftCard/RedeemGiftCard/index.js +14 -14
  54. package/_modules/components/GiftCard/SendGiftCard/index.js +14 -14
  55. package/_modules/components/GoogleAutocompleteInput/index.js +25 -25
  56. package/_modules/components/GoogleIdentity/index.js +38 -38
  57. package/_modules/components/GoogleLoginButton/index.js +61 -61
  58. package/_modules/components/GoogleMaps/index.js +44 -44
  59. package/_modules/components/GpsButton/index.js +27 -27
  60. package/_modules/components/LanguageSelector/index.js +38 -38
  61. package/_modules/components/LoginForm/index.js +72 -72
  62. package/_modules/components/LogoutAction/index.js +28 -28
  63. package/_modules/components/MainSearch/index.js +41 -41
  64. package/_modules/components/MapView/index.js +12 -12
  65. package/_modules/components/MenuControl/index.js +58 -58
  66. package/_modules/components/Messages/index.js +35 -35
  67. package/_modules/components/MomentOption/index.js +57 -57
  68. package/_modules/components/MultiCartCreate/index.js +10 -10
  69. package/_modules/components/MultiCartsPaymethodsAndWallets/index.js +22 -22
  70. package/_modules/components/MultiCheckout/index.js +34 -34
  71. package/_modules/components/MultiOrdersDetails/index.js +19 -19
  72. package/_modules/components/MyOrders/index.js +35 -35
  73. package/_modules/components/MyOrdersList/index.js +35 -35
  74. package/_modules/components/NewOrderNotification/index.js +8 -8
  75. package/_modules/components/OrderChange/index.js +30 -30
  76. package/_modules/components/OrderDetails/index.js +66 -66
  77. package/_modules/components/OrderList/index.js +67 -67
  78. package/_modules/components/OrderListGroups/index.js +25 -25
  79. package/_modules/components/OrderReview/index.js +35 -35
  80. package/_modules/components/OrderTypeControl/index.js +23 -23
  81. package/_modules/components/OrderVerticalList/index.js +15 -15
  82. package/_modules/components/OrdersControlFilters/index.js +15 -15
  83. package/_modules/components/OrdersDashboardComponents/Appointments/index.js +14 -14
  84. package/_modules/components/OrdersDashboardComponents/BusinessProductsListing/index.js +51 -51
  85. package/_modules/components/OrdersDashboardComponents/CheckPassword/index.js +35 -35
  86. package/_modules/components/OrdersDashboardComponents/CityList/index.js +33 -33
  87. package/_modules/components/OrdersDashboardComponents/CountryList/index.js +32 -32
  88. package/_modules/components/OrdersDashboardComponents/CustomOrderDetails/index.js +25 -25
  89. package/_modules/components/OrdersDashboardComponents/DashboardBusinessList/index.js +75 -75
  90. package/_modules/components/OrdersDashboardComponents/DashboardOrdersList/index.js +77 -77
  91. package/_modules/components/OrdersDashboardComponents/DriversList/index.js +73 -73
  92. package/_modules/components/OrdersDashboardComponents/ExportCSV/index.js +26 -26
  93. package/_modules/components/OrdersDashboardComponents/GiftCardsList/index.js +16 -16
  94. package/_modules/components/OrdersDashboardComponents/GoogleMapsApiKeySetting/index.js +14 -14
  95. package/_modules/components/OrdersDashboardComponents/LogisticInformation/index.js +29 -29
  96. package/_modules/components/OrdersDashboardComponents/Logistics/index.js +29 -29
  97. package/_modules/components/OrdersDashboardComponents/Messages/index.js +42 -42
  98. package/_modules/components/OrdersDashboardComponents/MetaFields/index.js +40 -40
  99. package/_modules/components/OrdersDashboardComponents/OrderDetails/index.js +54 -54
  100. package/_modules/components/OrdersDashboardComponents/OrderNotification/index.js +19 -19
  101. package/_modules/components/OrdersDashboardComponents/OrdersFilter/index.js +73 -73
  102. package/_modules/components/OrdersDashboardComponents/OrdersManage/index.js +74 -74
  103. package/_modules/components/OrdersDashboardComponents/PointsWalletLevels/index.js +38 -38
  104. package/_modules/components/OrdersDashboardComponents/ReviewCustomer/index.js +26 -26
  105. package/_modules/components/OrdersDashboardComponents/Schedule/index.js +56 -56
  106. package/_modules/components/OrdersDashboardComponents/SettingsList/index.js +51 -51
  107. package/_modules/components/OrdersDashboardComponents/UserFormDetails/index.js +82 -82
  108. package/_modules/components/OrdersDashboardComponents/UsersList/index.js +72 -72
  109. package/_modules/components/OrdersDashboardComponents/WebsocketStatus/index.js +10 -10
  110. package/_modules/components/PageBanner/index.js +17 -17
  111. package/_modules/components/PaymentOptionCash/index.js +26 -26
  112. package/_modules/components/PaymentOptionPaypal/index.js +35 -35
  113. package/_modules/components/PaymentOptionSquare/index.js +22 -22
  114. package/_modules/components/PaymentOptionStripe/index.js +45 -45
  115. package/_modules/components/PaymentOptionStripeDirect/index.js +34 -34
  116. package/_modules/components/PaymentOptionStripeRedirect/StripeRedirectForm/index.js +24 -24
  117. package/_modules/components/PaymentOptionStripeRedirect/index.js +39 -39
  118. package/_modules/components/PaymentOptionWallet/index.js +11 -11
  119. package/_modules/components/PaymentOptions/index.js +37 -37
  120. package/_modules/components/PaymethodList/index.js +30 -30
  121. package/_modules/components/PhoneAutocomplete/index.js +30 -30
  122. package/_modules/components/PlaceSpot/index.js +15 -15
  123. package/_modules/components/Popup/index.js +39 -39
  124. package/_modules/components/ProductComponent/index.js +36 -36
  125. package/_modules/components/ProductForm/index.js +145 -145
  126. package/_modules/components/ProductImages/index.js +20 -20
  127. package/_modules/components/ProductIngredient/index.js +19 -19
  128. package/_modules/components/ProductItemAccordion/index.js +18 -18
  129. package/_modules/components/ProductOption/index.js +9 -9
  130. package/_modules/components/ProductOptionSuboption/index.js +36 -36
  131. package/_modules/components/ProductShare/index.js +26 -26
  132. package/_modules/components/ProductsList/index.js +26 -26
  133. package/_modules/components/ProductsListing/index.js +50 -50
  134. package/_modules/components/ProfessionalInfo/index.js +34 -34
  135. package/_modules/components/PromotionsController/index.js +10 -10
  136. package/_modules/components/QueryLoginSpoonity/index.js +30 -30
  137. package/_modules/components/ReCaptcha/index.js +9 -9
  138. package/_modules/components/ResetPassword/index.js +30 -30
  139. package/_modules/components/ReviewCustomer/index.js +26 -26
  140. package/_modules/components/ReviewDriver/index.js +33 -33
  141. package/_modules/components/ReviewProduct/index.js +38 -38
  142. package/_modules/components/SearchOptions/index.js +23 -23
  143. package/_modules/components/Sessions/index.js +33 -33
  144. package/_modules/components/SignupForm/index.js +71 -71
  145. package/_modules/components/SingleBusinessCard/index.js +29 -29
  146. package/_modules/components/SingleOrderCard/index.js +32 -32
  147. package/_modules/components/SingleProductCard/index.js +28 -28
  148. package/_modules/components/SingleProfessionalCard/index.js +28 -28
  149. package/_modules/components/SmartAppBanner/index.js +13 -13
  150. package/_modules/components/StoreProductList/index.js +46 -46
  151. package/_modules/components/StripeElementsForm/CardForm/index.js +36 -36
  152. package/_modules/components/StripeElementsForm/index.js +25 -25
  153. package/_modules/components/UpsellingPage/index.js +27 -27
  154. package/_modules/components/UserFormDetails/index.js +85 -85
  155. package/_modules/components/UserVerification/index.js +28 -28
  156. package/_modules/components/WalletList/index.js +11 -11
  157. package/_modules/components/WebsocketStatus/index.js +10 -10
  158. package/_modules/components/WrapperGoogleMaps/index.js +9 -9
  159. package/_modules/contexts/ApiContext/index.js +13 -13
  160. package/_modules/contexts/BillingContext/index.js +7 -7
  161. package/_modules/contexts/BusinessContext/index.js +18 -18
  162. package/_modules/contexts/ConfigContext/index.js +19 -19
  163. package/_modules/contexts/CustomerContext/index.js +10 -10
  164. package/_modules/contexts/EventContext/index.js +9 -9
  165. package/_modules/contexts/LanguageContext/index.js +28 -28
  166. package/_modules/contexts/OptimizationLoadContext/index.js +16 -16
  167. package/_modules/contexts/OrderContext/index.js +97 -97
  168. package/_modules/contexts/OrderingContext/index.js +7 -7
  169. package/_modules/contexts/OrderingThemeContext/index.js +19 -19
  170. package/_modules/contexts/ProductContext/index.js +14 -14
  171. package/_modules/contexts/SessionContext/index.js +23 -23
  172. package/_modules/contexts/SiteContext/index.js +18 -18
  173. package/_modules/contexts/ToastContext/index.js +4 -4
  174. package/_modules/contexts/UtilsContext/index.js +14 -14
  175. package/_modules/contexts/ValidationsFieldsContext/index.js +9 -9
  176. package/_modules/contexts/WebsocketContext/index.js +17 -17
  177. package/_modules/contexts/WebsocketContext/socket.js +4 -4
  178. package/_modules/native/src/NativeStrategy/index.js +9 -9
  179. package/_modules/native/src/contexts/OrderingContext/index.js +7 -7
  180. package/_modules/utils/index.js +2 -2
  181. package/_modules/webStrategy/index.js +8 -8
  182. package/cypress/fixtures/example.json +4 -4
  183. package/cypress/integration/naked/BusinessProductsCategories.spec.js +9 -9
  184. package/cypress/integration/naked/PhoneAutocomplete.spec.js +22 -22
  185. package/cypress/integration/naked/activeOrders.spec.js +15 -15
  186. package/cypress/integration/naked/addressDetails.spec.js +10 -10
  187. package/cypress/integration/naked/appleLogin.spec.js +14 -14
  188. package/cypress/integration/naked/businessBasicInformation.spec.js +14 -14
  189. package/cypress/integration/naked/businessController.spec.js +9 -9
  190. package/cypress/integration/naked/businessInformation.spec.js +19 -19
  191. package/cypress/integration/naked/businessProductsSearch.spec.js +9 -9
  192. package/cypress/integration/naked/businessReviews.spec.js +16 -16
  193. package/cypress/integration/naked/businessSortControl.spec.js +9 -9
  194. package/cypress/integration/naked/businessTypeFilter.spec.js +10 -10
  195. package/cypress/integration/naked/businessesMap.spec.js +13 -13
  196. package/cypress/integration/naked/cms.spec.js +9 -9
  197. package/cypress/integration/naked/config.spec.js +34 -34
  198. package/cypress/integration/naked/driverTips.spec.js +10 -10
  199. package/cypress/integration/naked/events.spec.js +13 -13
  200. package/cypress/integration/naked/facebookLogin.spec.js +13 -13
  201. package/cypress/integration/naked/floatingButton.spec.js +13 -13
  202. package/cypress/integration/naked/forgotPassword.spec.js +20 -20
  203. package/cypress/integration/naked/googleLogin.spec.js +11 -11
  204. package/cypress/integration/naked/languageExamples.spec.js +25 -25
  205. package/cypress/integration/naked/languageSelector.spec.js +10 -10
  206. package/cypress/integration/naked/login.spec.js +38 -38
  207. package/cypress/integration/naked/logout.spec.js +15 -15
  208. package/cypress/integration/naked/mainSearch.spec.js +9 -9
  209. package/cypress/integration/naked/menuControl.spec.js +9 -9
  210. package/cypress/integration/naked/messages.spec.js +25 -25
  211. package/cypress/integration/naked/momentOption.spec.js +10 -10
  212. package/cypress/integration/naked/myOrders.spec.js +11 -11
  213. package/cypress/integration/naked/myOrdersList.spec.js +9 -9
  214. package/cypress/integration/naked/orderContextAdvanced.spec.js +23 -23
  215. package/cypress/integration/naked/orderDetails.spec.js +11 -11
  216. package/cypress/integration/naked/paymentOptionCash.spec.js +21 -21
  217. package/cypress/integration/naked/paymentOptionStripe.spec.js +11 -11
  218. package/cypress/integration/naked/paymentOptionStripeDirect.spec.js +11 -11
  219. package/cypress/integration/naked/paymentOptions.spec.js +9 -9
  220. package/cypress/integration/naked/popupExample.spec.js +17 -17
  221. package/cypress/integration/naked/productImages.spec.js +11 -11
  222. package/cypress/integration/naked/productOptionExample.spec.js +21 -21
  223. package/cypress/integration/naked/productShare.spec.js +9 -9
  224. package/cypress/integration/naked/productsList.spec.js +9 -9
  225. package/cypress/integration/naked/resetPassword.spec.js +11 -11
  226. package/cypress/integration/naked/reviewOrders.spec.js +13 -13
  227. package/cypress/integration/naked/searchOptions.spec.js +18 -18
  228. package/cypress/integration/naked/signup.spec.js +31 -31
  229. package/cypress/integration/naked/upselling.spec.js +13 -13
  230. package/cypress/integration/naked/userDetails.spec.js +12 -12
  231. package/cypress/plugins/index.js +21 -21
  232. package/cypress/support/commands.js +35 -35
  233. package/cypress/support/index.js +20 -20
  234. package/cypress.json +12 -12
  235. package/example/App.js +263 -263
  236. package/example/components/ActiveOrdersUI/index.js +72 -72
  237. package/example/components/AddressDetailsUI/index.js +101 -101
  238. package/example/components/AddressFormUI/index.js +161 -161
  239. package/example/components/AddressListUI/index.js +33 -33
  240. package/example/components/AlertPopup/index.js +10 -10
  241. package/example/components/AlertUI/index.js +49 -49
  242. package/example/components/AlertUI/style.css +5 -5
  243. package/example/components/AppleLoginUI/index.js +40 -40
  244. package/example/components/BaseComponentUI/index.js +34 -34
  245. package/example/components/BusinessBasicInformationUI/index.js +118 -118
  246. package/example/components/BusinessControllerUI/index.js +89 -89
  247. package/example/components/BusinessInformationUI/BusinessOptionUI/index.js +83 -83
  248. package/example/components/BusinessInformationUI/index.js +83 -83
  249. package/example/components/BusinessProductsCategoriesUI/index.js +42 -42
  250. package/example/components/BusinessProductsSearchUI/index.js +38 -38
  251. package/example/components/BusinessReviewsUI/index.js +77 -77
  252. package/example/components/BusinessSortControlUI/index.js +47 -47
  253. package/example/components/BusinessTypeFilterUI/index.js +53 -53
  254. package/example/components/BusinessesMapUI/index.js +57 -57
  255. package/example/components/CartUI/index.js +154 -154
  256. package/example/components/ChangeView/index.js +19 -19
  257. package/example/components/CheckoutUI/index.js +206 -206
  258. package/example/components/CmsContentUI/index.js +52 -52
  259. package/example/components/ConfigsExample/index.js +118 -118
  260. package/example/components/CouponControlUI/index.js +63 -63
  261. package/example/components/DriverTipsUI/index.js +58 -58
  262. package/example/components/FacebookLoginButtonUI/index.js +48 -48
  263. package/example/components/FloatingButtonUI/index.js +145 -145
  264. package/example/components/ForgotPasswordFormUI/index.js +93 -93
  265. package/example/components/GoogleLoginUI/index.js +30 -30
  266. package/example/components/GpsButtonUI/index.js +22 -22
  267. package/example/components/Header/index.js +18 -18
  268. package/example/components/LanguageSelectorUI/index.js +57 -57
  269. package/example/components/LanguagesExample/index.js +51 -51
  270. package/example/components/LoginFormUI/index.js +159 -159
  271. package/example/components/LogoutButtonUI/index.js +21 -21
  272. package/example/components/MainSearchUI/index.js +131 -131
  273. package/example/components/MenuControlUI/index.js +103 -103
  274. package/example/components/MessagesUI/index.js +162 -162
  275. package/example/components/ModalUI/index.js +36 -36
  276. package/example/components/ModalUI/style.css +5 -5
  277. package/example/components/MomentOptionUI/index.js +68 -68
  278. package/example/components/MyOrdersListUI/index.js +51 -51
  279. package/example/components/MyOrdersUI/index.js +52 -52
  280. package/example/components/OrderChangeUI/index.js +54 -54
  281. package/example/components/OrderDetailsUI/index.js +174 -174
  282. package/example/components/OrderReviewUI/index.js +125 -125
  283. package/example/components/OrderTypeControlUI/index.js +32 -32
  284. package/example/components/PaymentOptionCashUI/index.js +60 -60
  285. package/example/components/PaymentOptionPaypalUI/index.js +50 -50
  286. package/example/components/PaymentOptionStripeDirectUI/index.js +89 -89
  287. package/example/components/PaymentOptionStripeRedirectUI/index.js +97 -97
  288. package/example/components/PaymentOptionStripeUI/index.js +129 -129
  289. package/example/components/PaymentOptionsUI/index.js +169 -169
  290. package/example/components/PhoneAutocompleteUI/index.js +67 -67
  291. package/example/components/PhoneAutocompleteUI/styles.css +49 -49
  292. package/example/components/ProductComponentUI/index.js +113 -113
  293. package/example/components/ProductFormUI/index.js +131 -131
  294. package/example/components/ProductImagesUI/index.js +82 -82
  295. package/example/components/ProductIngredientUI/index.js +21 -21
  296. package/example/components/ProductOptionSuboptionUI/index.js +65 -65
  297. package/example/components/ProductOptionUI/index.js +31 -31
  298. package/example/components/ProductShareUI/index.js +48 -48
  299. package/example/components/ProductsListUI/index.js +108 -108
  300. package/example/components/ProductsListingUI/index.js +42 -42
  301. package/example/components/ResetPasswordUI/index.js +121 -121
  302. package/example/components/SearchOptionsUI/index.js +82 -82
  303. package/example/components/SignupFormUI/index.js +117 -117
  304. package/example/components/SingleBusinessCardUI/index.js +82 -82
  305. package/example/components/SingleOrderCardUI/index.js +52 -52
  306. package/example/components/SingleProductCardUI/index.js +47 -47
  307. package/example/components/StripeElementsFormUI/CardFormUI/index.js +51 -51
  308. package/example/components/StripeElementsFormUI/CardFormUI/style.css +118 -118
  309. package/example/components/StripeElementsFormUI/index.js +38 -38
  310. package/example/components/StripeRedirectFormUI/index.js +99 -99
  311. package/example/components/TestComponent/index.js +5 -5
  312. package/example/components/UpsellingPageUI/index.js +26 -26
  313. package/example/components/UserDetailsUI/index.js +94 -94
  314. package/example/components/UserProfileUI/index.js +156 -156
  315. package/example/views/ActiveOrders/index.js +86 -86
  316. package/example/views/AddressDetailsExample/index.js +57 -57
  317. package/example/views/AppleLoginExample/index.js +51 -51
  318. package/example/views/BaseComponentExample/index.js +35 -35
  319. package/example/views/BusinessBasicInformationExample/index.js +43 -43
  320. package/example/views/BusinessControllerExample/index.js +55 -55
  321. package/example/views/BusinessInformationExample/index.js +68 -68
  322. package/example/views/BusinessProductsCategoriesExample/index.js +50 -50
  323. package/example/views/BusinessProductsSearchExample/index.js +39 -39
  324. package/example/views/BusinessReviewsExample/index.js +43 -43
  325. package/example/views/BusinessSortControlExample/index.js +53 -53
  326. package/example/views/BusinessTypeFilterExample/index.js +53 -53
  327. package/example/views/BusinessesMapExample/index.js +57 -57
  328. package/example/views/CheckoutExample/index.js +143 -143
  329. package/example/views/CmsContentExample/index.js +44 -44
  330. package/example/views/DriverTipsExample/index.js +47 -47
  331. package/example/views/EventsExample/index.js +26 -26
  332. package/example/views/FacebookLogin/index.js +63 -63
  333. package/example/views/FloatingButtonExample/index.js +47 -47
  334. package/example/views/ForgotPassword/index.js +77 -77
  335. package/example/views/GoogleLoginExample/index.js +85 -85
  336. package/example/views/Home/index.js +200 -200
  337. package/example/views/LanguageSelectorExample/index.js +55 -55
  338. package/example/views/Login/index.js +84 -84
  339. package/example/views/MainSearchExample/index.js +43 -43
  340. package/example/views/MenuControlExample/index.js +68 -68
  341. package/example/views/MessagesExample/index.js +58 -58
  342. package/example/views/MomentOptionExample/index.js +52 -52
  343. package/example/views/MyOrdersExample/index.js +35 -35
  344. package/example/views/MyOrdersListExample/index.js +50 -50
  345. package/example/views/OrderChangeExample/index.js +46 -46
  346. package/example/views/OrderContextExample/index.js +139 -139
  347. package/example/views/OrderDetailsExample/index.js +50 -50
  348. package/example/views/OrderReviewExample/index.js +64 -64
  349. package/example/views/PaymentOptionCashExample/index.js +51 -51
  350. package/example/views/PaymentOptionPaypalExample/index.js +71 -71
  351. package/example/views/PaymentOptionStripeDirectExample/index.js +43 -43
  352. package/example/views/PaymentOptionStripeExample/index.js +47 -47
  353. package/example/views/PaymentOptionStripeRedirectExample/index.js +56 -56
  354. package/example/views/PaymentOptionsExample/index.js +47 -47
  355. package/example/views/PhoneAutocompleteExample/index.js +34 -34
  356. package/example/views/PlacesExample/index.js +94 -94
  357. package/example/views/PopupExample/index.js +78 -78
  358. package/example/views/PopupExample/style.css +18 -18
  359. package/example/views/ProductDetail/index.js +323 -323
  360. package/example/views/ProductImagesExample/index.js +43 -43
  361. package/example/views/ProductOptionExample/index.js +88 -88
  362. package/example/views/ProductShareExample/index.js +51 -51
  363. package/example/views/ProductsListExample/index.js +77 -77
  364. package/example/views/ProductsListingExample/index.js +47 -47
  365. package/example/views/ResetPasswordExample/index.js +60 -60
  366. package/example/views/SearchOptionsExample/index.js +42 -42
  367. package/example/views/SessionManager/index.js +122 -122
  368. package/example/views/Signup/index.js +64 -64
  369. package/example/views/UpsellingPageExample/index.js +35 -35
  370. package/example/views/UserDetailsExample/index.js +69 -69
  371. package/example/views/UserProfile/index.js +73 -73
  372. package/index-example.js +23 -23
  373. package/index.html +13 -13
  374. package/native/index.js +257 -257
  375. package/native/src/NativeStrategy/index.js +20 -20
  376. package/native/src/contexts/OrderingContext/index.js +85 -85
  377. package/package.json +92 -92
  378. package/src/components/AddressDetails/index.js +149 -149
  379. package/src/components/AddressForm/index.js +372 -372
  380. package/src/components/AddressList/index.js +254 -254
  381. package/src/components/Analitycs/index.js +119 -119
  382. package/src/components/AnalyticsSegment/index.js +145 -145
  383. package/src/components/AppleLogin/index.js +164 -164
  384. package/src/components/BaseComponent/index.js +52 -52
  385. package/src/components/BusinessAndProductList/index.js +986 -986
  386. package/src/components/BusinessBasicInformation/index.js +119 -119
  387. package/src/components/BusinessController/index.js +351 -351
  388. package/src/components/BusinessInformation/BusinessOption/index.js +86 -86
  389. package/src/components/BusinessInformation/index.js +93 -93
  390. package/src/components/BusinessList/index.js +670 -670
  391. package/src/components/BusinessMenuListing/index.js +99 -99
  392. package/src/components/BusinessProductsCategories/index.js +60 -60
  393. package/src/components/BusinessProductsSearch/index.js +54 -54
  394. package/src/components/BusinessReviews/index.js +187 -187
  395. package/src/components/BusinessSearchList/index.js +364 -363
  396. package/src/components/BusinessSortControl/index.js +100 -100
  397. package/src/components/BusinessTypeFilter/index.js +142 -142
  398. package/src/components/BusinessesMap/index.js +110 -110
  399. package/src/components/Cart/index.js +211 -211
  400. package/src/components/CartStoresListing/index.js +157 -157
  401. package/src/components/Checkout/index.js +636 -636
  402. package/src/components/CmsContent/index.js +97 -97
  403. package/src/components/Contacts/index.js +512 -512
  404. package/src/components/CouponControl/index.js +171 -171
  405. package/src/components/DragAndDrop/index.js +41 -41
  406. package/src/components/DriverList/index.js +112 -112
  407. package/src/components/DriverTips/index.js +141 -141
  408. package/src/components/Emitter/index.js +36 -36
  409. package/src/components/ExamineClick/index.js +40 -40
  410. package/src/components/FacebookLoginButton/index.js +214 -214
  411. package/src/components/FacebookPixel/index.js +148 -148
  412. package/src/components/FavoriteList/index.js +278 -278
  413. package/src/components/FirebaseGoogleLoginButton/index.js +93 -93
  414. package/src/components/FloatingButton/index.js +70 -70
  415. package/src/components/ForgotPasswordForm/index.js +180 -180
  416. package/src/components/GiftCard/GiftCardOrdersList/index.js +155 -155
  417. package/src/components/GiftCard/PurchaseGiftCard/index.js +127 -127
  418. package/src/components/GiftCard/RedeemGiftCard/index.js +77 -77
  419. package/src/components/GiftCard/SendGiftCard/index.js +83 -83
  420. package/src/components/GoogleAutocompleteInput/index.js +154 -154
  421. package/src/components/GoogleIdentity/index.js +144 -144
  422. package/src/components/GoogleLoginButton/index.js +276 -276
  423. package/src/components/GoogleMaps/index.js +499 -499
  424. package/src/components/GpsButton/index.js +127 -127
  425. package/src/components/LanguageSelector/index.js +163 -163
  426. package/src/components/LoginForm/index.js +527 -527
  427. package/src/components/LogoutAction/index.js +211 -211
  428. package/src/components/MainSearch/index.js +149 -149
  429. package/src/components/MapView/index.js +116 -116
  430. package/src/components/MenuControl/index.js +238 -238
  431. package/src/components/Messages/index.js +166 -166
  432. package/src/components/MomentOption/index.js +322 -322
  433. package/src/components/MultiCartCreate/index.js +70 -70
  434. package/src/components/MultiCartsPaymethodsAndWallets/index.js +201 -201
  435. package/src/components/MultiCheckout/index.js +378 -378
  436. package/src/components/MultiOrdersDetails/index.js +109 -109
  437. package/src/components/MyOrders/index.js +150 -150
  438. package/src/components/MyOrdersList/index.js +104 -104
  439. package/src/components/NewOrderNotification/index.js +30 -30
  440. package/src/components/OrderChange/index.js +128 -128
  441. package/src/components/OrderDetails/index.js +684 -684
  442. package/src/components/OrderList/index.js +814 -814
  443. package/src/components/OrderListGroups/index.js +1245 -1245
  444. package/src/components/OrderReview/index.js +180 -180
  445. package/src/components/OrderTypeControl/index.js +75 -75
  446. package/src/components/OrderVerticalList/index.js +422 -422
  447. package/src/components/OrdersControlFilters/index.js +75 -75
  448. package/src/components/OrdersDashboardComponents/Appointments/index.js +72 -72
  449. package/src/components/OrdersDashboardComponents/BusinessProductsListing/index.js +629 -629
  450. package/src/components/OrdersDashboardComponents/CheckPassword/index.js +177 -177
  451. package/src/components/OrdersDashboardComponents/CityList/index.js +98 -98
  452. package/src/components/OrdersDashboardComponents/CountryList/index.js +162 -162
  453. package/src/components/OrdersDashboardComponents/CustomOrderDetails/index.js +238 -238
  454. package/src/components/OrdersDashboardComponents/DashboardBusinessList/index.js +617 -617
  455. package/src/components/OrdersDashboardComponents/DashboardOrdersList/index.js +943 -943
  456. package/src/components/OrdersDashboardComponents/DriversList/index.js +448 -448
  457. package/src/components/OrdersDashboardComponents/ExportCSV/index.js +192 -192
  458. package/src/components/OrdersDashboardComponents/GiftCardsList/index.js +189 -189
  459. package/src/components/OrdersDashboardComponents/GoogleMapsApiKeySetting/index.js +77 -77
  460. package/src/components/OrdersDashboardComponents/LogisticInformation/index.js +97 -97
  461. package/src/components/OrdersDashboardComponents/Logistics/index.js +174 -174
  462. package/src/components/OrdersDashboardComponents/Messages/index.js +384 -384
  463. package/src/components/OrdersDashboardComponents/MetaFields/index.js +186 -186
  464. package/src/components/OrdersDashboardComponents/OrderDetails/index.js +404 -404
  465. package/src/components/OrdersDashboardComponents/OrderNotification/index.js +70 -70
  466. package/src/components/OrdersDashboardComponents/OrdersFilter/index.js +362 -362
  467. package/src/components/OrdersDashboardComponents/OrdersManage/index.js +873 -873
  468. package/src/components/OrdersDashboardComponents/PointsWalletLevels/index.js +123 -123
  469. package/src/components/OrdersDashboardComponents/ReviewCustomer/index.js +113 -113
  470. package/src/components/OrdersDashboardComponents/Schedule/index.js +315 -315
  471. package/src/components/OrdersDashboardComponents/SettingsList/index.js +298 -298
  472. package/src/components/OrdersDashboardComponents/UserFormDetails/index.js +463 -463
  473. package/src/components/OrdersDashboardComponents/UsersList/index.js +944 -944
  474. package/src/components/OrdersDashboardComponents/WebsocketStatus/index.js +77 -77
  475. package/src/components/OrdersDashboardComponents/index.js +57 -57
  476. package/src/components/PageBanner/index.js +107 -107
  477. package/src/components/PaymentOptionCash/index.js +74 -74
  478. package/src/components/PaymentOptionPaypal/index.js +146 -146
  479. package/src/components/PaymentOptionSquare/index.js +336 -336
  480. package/src/components/PaymentOptionStripe/index.js +289 -289
  481. package/src/components/PaymentOptionStripeDirect/index.js +116 -116
  482. package/src/components/PaymentOptionStripeRedirect/StripeRedirectForm/index.js +71 -71
  483. package/src/components/PaymentOptionStripeRedirect/index.js +122 -122
  484. package/src/components/PaymentOptionWallet/index.js +185 -185
  485. package/src/components/PaymentOptions/index.js +262 -262
  486. package/src/components/PaymethodList/index.js +119 -119
  487. package/src/components/PhoneAutocomplete/index.js +318 -318
  488. package/src/components/PlaceSpot/index.js +183 -183
  489. package/src/components/Popup/index.js +169 -169
  490. package/src/components/ProductComponent/index.js +269 -269
  491. package/src/components/ProductForm/index.js +1105 -1105
  492. package/src/components/ProductImages/index.js +64 -64
  493. package/src/components/ProductIngredient/index.js +72 -72
  494. package/src/components/ProductItemAccordion/index.js +72 -72
  495. package/src/components/ProductOption/index.js +42 -42
  496. package/src/components/ProductOptionSuboption/index.js +181 -181
  497. package/src/components/ProductShare/index.js +97 -97
  498. package/src/components/ProductsList/index.js +74 -74
  499. package/src/components/ProductsListing/index.js +166 -166
  500. package/src/components/ProfessionalInfo/index.js +156 -156
  501. package/src/components/PromotionsController/index.js +123 -123
  502. package/src/components/QueryLoginSpoonity/index.js +159 -159
  503. package/src/components/ReCaptcha/index.js +53 -53
  504. package/src/components/ResetPassword/index.js +111 -111
  505. package/src/components/ReviewCustomer/index.js +117 -117
  506. package/src/components/ReviewDriver/index.js +157 -157
  507. package/src/components/ReviewProduct/index.js +162 -162
  508. package/src/components/SearchOptions/index.js +69 -69
  509. package/src/components/Sessions/index.js +217 -217
  510. package/src/components/SignupForm/index.js +555 -555
  511. package/src/components/SingleBusinessCard/index.js +80 -80
  512. package/src/components/SingleOrderCard/index.js +160 -160
  513. package/src/components/SingleProductCard/index.js +130 -130
  514. package/src/components/SingleProfessionalCard/index.js +121 -121
  515. package/src/components/SmartAppBanner/index.js +71 -71
  516. package/src/components/StoreProductList/index.js +303 -303
  517. package/src/components/StripeElementsForm/CardForm/index.js +248 -248
  518. package/src/components/StripeElementsForm/index.js +78 -78
  519. package/src/components/UpsellingPage/index.js +120 -120
  520. package/src/components/UserFormDetails/index.js +742 -742
  521. package/src/components/UserVerification/index.js +242 -242
  522. package/src/components/WalletList/index.js +160 -160
  523. package/src/components/WebsocketStatus/index.js +80 -80
  524. package/src/components/WrapperGoogleMaps/index.js +67 -67
  525. package/src/constants/code-numbers.js +219 -219
  526. package/src/constants/timezones.js +427 -427
  527. package/src/contexts/ApiContext/index.js +59 -59
  528. package/src/contexts/BillingContext/index.js +28 -28
  529. package/src/contexts/BusinessContext/index.js +71 -71
  530. package/src/contexts/ConfigContext/index.js +217 -217
  531. package/src/contexts/CustomerContext/index.js +69 -69
  532. package/src/contexts/EventContext/index.js +31 -31
  533. package/src/contexts/LanguageContext/index.js +144 -144
  534. package/src/contexts/OptimizationLoadContext/index.js +95 -95
  535. package/src/contexts/OrderContext/index.js +1450 -1450
  536. package/src/contexts/OrderingContext/index.js +86 -86
  537. package/src/contexts/OrderingThemeContext/index.js +107 -107
  538. package/src/contexts/ProductContext/index.js +62 -62
  539. package/src/contexts/SessionContext/index.js +172 -172
  540. package/src/contexts/SiteContext/index.js +79 -79
  541. package/src/contexts/ToastContext/index.js +42 -42
  542. package/src/contexts/UtilsContext/index.js +352 -352
  543. package/src/contexts/ValidationsFieldsContext/index.js +65 -65
  544. package/src/contexts/WebsocketContext/index.js +91 -91
  545. package/src/contexts/WebsocketContext/socket.js +92 -92
  546. package/src/index.js +371 -371
  547. package/src/utils/index.js +32 -32
  548. package/src/webStrategy/index.js +18 -18
  549. package/webpack.dev.js +41 -41
  550. package/webpack.prod.js +64 -64
  551. package/_bundles/0.ordering-component.42ec5fef3ccdf425c509.js +0 -1
  552. package/_bundles/7.ordering-component.42ec5fef3ccdf425c509.js +0 -2
  553. package/_bundles/7.ordering-component.42ec5fef3ccdf425c509.js.LICENSE.txt +0 -1
  554. package/_bundles/ordering-component.42ec5fef3ccdf425c509.js +0 -2
@@ -1,384 +1,384 @@
1
- import React, { useState, useEffect } from 'react'
2
- import PropTypes from 'prop-types'
3
- import { useSession } from '../../../contexts/SessionContext'
4
- import { useApi } from '../../../contexts/ApiContext'
5
- import { useWebsocket } from '../../../contexts/WebsocketContext'
6
- import { useConfig } from '../../../contexts/ConfigContext'
7
- import { useLanguage } from '../../../contexts/LanguageContext'
8
- import { useUtils } from '../../../contexts/UtilsContext'
9
-
10
- export const Messages = (props) => {
11
- const {
12
- UIComponent,
13
- orderId,
14
- customHandleSend,
15
- messages: orderMessages,
16
- setMessages: setOrderMessages,
17
- asDashboard,
18
- order,
19
- handleUpdateOrderForUnreadCount
20
- } = props
21
-
22
- const [, t] = useLanguage()
23
- const [ordering] = useApi()
24
- const [configState] = useConfig()
25
- const [{ getOrderState }] = useUtils()
26
- const [{ user, token }] = useSession()
27
- const accessToken = props.accessToken || token
28
-
29
- const [canRead, setCanRead] = useState({ business: true, administrator: true, driver: true, customer: true })
30
- const [message, setMessage] = useState('')
31
- const [messages, setMessages] = useState({ loading: true, error: null, messages: [] })
32
- const [sendMessage, setSendMessages] = useState({ loading: false, error: null })
33
- const [readMessages, setReadMessages] = useState({ loading: true, error: null, messages: [] })
34
- const [image, setImage] = useState(null)
35
- const socket = useWebsocket()
36
-
37
- const googleMapsApiKey = configState?.configs?.google_maps_api_key?.value
38
- const getStaticMapByLocation = (location, size) => {
39
- if (!size) {
40
- size = '250x100'
41
- }
42
- var url = 'https://maps.googleapis.com/maps/api/staticmap?center=' + location.lat + ',' + location.lng + '&zoom=14&size=' + size + '&markers=color:red%7C' + location.lat + ',' + location.lng + '&key=' + googleMapsApiKey
43
- return url
44
- }
45
-
46
- const getLogisticTagStatus = (status) => {
47
- switch (status) {
48
- case 0:
49
- return t('PENDING', 'Pending')
50
- case 1:
51
- return t('IN_PROGRESS', 'In Progress')
52
- case 2:
53
- return t('IN_QUEUE', 'In Queue')
54
- case 3:
55
- return t('EXPIRED', 'Logistic expired')
56
- case 4:
57
- return t('RESOLVED', 'Resolved')
58
- default:
59
- return status
60
- }
61
- }
62
-
63
- const getVehicleSmmary = (vehicle) => {
64
- return vehicle?.type + ' ' + vehicle?.model + ' ' + vehicle?.car_registration + ' ' + vehicle?.color
65
- }
66
-
67
- const getHistoryComment = (message) => {
68
- let comment = ''
69
- const changeAttribute = message?.change?.attribute
70
- if (changeAttribute === 'distance') {
71
- comment = t('THE_DRIVER_IS_CLOSE') + ' <b>(' + message.driver.name + (message.driver.lastname ? ' ' + message.driver.lastname : '') + ')</b>'
72
- } else if (changeAttribute === 'status') {
73
- if (message.change.new === 8 && message.change.estimated) {
74
- const estimatedDelivery = message.change.estimated
75
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
76
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
77
- .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
78
- .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>') + '<br>' + t('ESTIMATED_DELIVERY_TIME')
79
- .replace('_min_', estimatedDelivery)
80
- } else if (message.change.new === 7 && message.change.estimated) {
81
- const estimatedPreparation = message.change.estimated
82
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
83
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
84
- .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
85
- .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>') + '<br>' + t('ESTIMATED_PREPARATION_TIME')
86
- .replace('_min_', estimatedPreparation)
87
- } else {
88
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
89
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
90
- .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
91
- .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>')
92
- }
93
- if (message?.change?.comment) {
94
- comment += '<br>' + '<b>' + t('COMMENT', '') + '</b>: ' + message.change.comment + '.'
95
- }
96
- } else if (changeAttribute === 'driver_id') {
97
- if (message.driver) {
98
- comment = t('DRIVER_ASSIGNED_AS_DRIVER')
99
- .replace('_driver_', '<b>' + message.driver.name + ' ' + (message.driver.lastname ? message.driver.lastname : '') + '</b>')
100
- } else {
101
- comment = t('DRIVER_UNASSIGNED')
102
- }
103
- } else if (['prepared_in', 'delivered_in', 'delivery_datetime'].includes(changeAttribute)) {
104
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
105
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
106
- .replace('_from_', '<b>' + (message.change.old || 0) + '</b>')
107
- .replace('_to_', '<b>' + message.change.new + '</b>')
108
- } else if (changeAttribute === 'logistic_status') {
109
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
110
- .replace('_attribute_', '<b>' + t('LOGISTIC_STATUS', 'logistic status') + '</b>')
111
- .replace('_from_', '<b>' + getLogisticTagStatus(parseInt(message.change.old, 10)) + '</b>')
112
- .replace('_to_', '<b>' + getLogisticTagStatus(parseInt(message.change.new, 10)) + '</b>')
113
- } else if (changeAttribute === 'vehicle') {
114
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
115
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
116
- .replace('_from_', '<b>' + getVehicleSmmary(message.change.old) + '</b>')
117
- .replace('_to_', '<b>' + getVehicleSmmary(message.change.new) + '</b>')
118
- } else if (changeAttribute === 'reject_reason') {
119
- comment = t('ORDER_REJECT_REASON_IS', 'Order <b>reject reason</b> is _reject_reason_.')
120
- .replace('_reject_reason_', '<b>' + t(`REJECT_REASON_${message.change.new.toUpperCase()}`) + '</b>')
121
- } else if (changeAttribute !== 'comment') {
122
- if (message.change.old) {
123
- comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
124
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
125
- .replace('_from_', '<b>' + message.change.old + '</b>')
126
- .replace('_to_', '<b>' + message.change.new + '</b>')
127
- } else {
128
- comment = t('ORDER_ATTRIBUTE_CHANGED_TO')
129
- .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
130
- .replace('_to_', '<b>' + message.change.new + '</b>')
131
- }
132
- }
133
- if (['status', 'reject_reason'].includes(changeAttribute)) {
134
- if (user.level === 0 || user.level === 2) {
135
- comment += '<br>-'
136
- if (message.app_id) comment += '<br><strong>' + t('APP_ID') + ':</strong> ' + message.app_id
137
- comment += '<br><strong>' + t('AUTHOR') + ':</strong> ' + ((message.author) ? (message.author.name + (message.author.lastname ? ' ' + message.author.lastname : '')) : t('GUEST_USER'))
138
- if (message.user_agent) comment += '<br><strong>' + t('USER_AGENT') + ':</strong> ' + message.user_agent
139
- if (message.location) comment += '<br><strong>' + t('LOCATION') + ':</strong> <img src="' + getStaticMapByLocation(message.location, '250x100') + '" />'
140
- comment += '<br><strong>' + t('IP') + ':</strong> ' + message.ip
141
- }
142
- }
143
- return comment
144
- }
145
-
146
- /**
147
- * Method to send message
148
- */
149
- const handleSend = async () => {
150
- if (customHandleSend) {
151
- return customHandleSend(message)
152
- }
153
- try {
154
- setSendMessages({ loading: true, error: null })
155
- const _canRead = []
156
- if (canRead.customer) {
157
- _canRead.push(3)
158
- }
159
- if (canRead.administrator) {
160
- _canRead.push(0)
161
- }
162
- if (canRead.business) {
163
- _canRead.push(2)
164
- }
165
- if (canRead.driver) {
166
- _canRead.push(4)
167
- }
168
- const body = {
169
- comment: message,
170
- type: 2,
171
- can_see: _canRead.join(',')
172
- }
173
- if (image) {
174
- body.type = 3
175
- body.file = image
176
- }
177
- const response = await fetch(`${ordering.root}/orders/${orderId}/messages`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` }, body: JSON.stringify(body) })
178
- const { error, result } = await response.json()
179
- if (!error) {
180
- if (setOrderMessages && orderMessages) {
181
- setOrderMessages({
182
- ...orderMessages,
183
- messages: [
184
- ...orderMessages.messages,
185
- result
186
- ]
187
- })
188
- } else {
189
- setMessages({
190
- ...messages,
191
- messages: [
192
- ...messages.messages,
193
- result
194
- ]
195
- })
196
- }
197
- }
198
- setSendMessages({ loading: false, error: error ? result : null })
199
- } catch (error) {
200
- setSendMessages({ loading: false, error: [error.Messages] })
201
- }
202
- }
203
-
204
- /**
205
- * Method to Load message for first time
206
- */
207
- const loadMessages = async () => {
208
- try {
209
- setMessages({ ...messages, messages: [], loading: true })
210
- const functionFetch = asDashboard
211
- ? `${ordering.root}/orders/${orderId}/messages?mode=dashboard`
212
- : `${ordering.root}/orders/${orderId}/messages`
213
- const response = await fetch(functionFetch, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` } })
214
- const { error, result } = await response.json()
215
- if (!error) {
216
- setMessages({
217
- messages: result,
218
- loading: false,
219
- error: null
220
- })
221
- } else {
222
- setMessages({
223
- ...messages,
224
- loading: false,
225
- error: result
226
- })
227
- }
228
- } catch (error) {
229
- setMessages({ ...messages, loading: false, error: [error.Messages] })
230
- }
231
- }
232
-
233
- /**
234
- * Method to Load message for first time
235
- * @param {number} messageId order message Id
236
- */
237
- const handleReadMessages = async (messageId) => {
238
- if (orderMessages && setOrderMessages) return
239
- try {
240
- setReadMessages({ ...readMessages, loading: true })
241
- const functionFetch = `${ordering.root}/orders/${orderId}/messages/${messageId}/read?order_id=${orderId}&order_message_id=${messageId}`
242
- const response = await fetch(functionFetch, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` } })
243
- const { error, result } = await response.json()
244
- if (!error) {
245
- setReadMessages({
246
- messages: result,
247
- loading: false,
248
- error: null
249
- })
250
- if (messages.messages.length > 0) {
251
- const _messages = messages.messages.filter(message => {
252
- if (message.id === messageId) {
253
- message.read = true
254
- }
255
- return true
256
- })
257
- setMessages({ ...messages, messages: _messages })
258
- }
259
- handleUpdateOrderForUnreadCount && handleUpdateOrderForUnreadCount(null)
260
- handleUpdateOrderForUnreadCount && handleUpdateOrderForUnreadCount(orderId)
261
- } else {
262
- setReadMessages({
263
- ...readMessages,
264
- loading: false,
265
- error: result
266
- })
267
- }
268
- } catch (error) {
269
- setReadMessages({ ...readMessages, loading: false, error: [error.Messages] })
270
- }
271
- }
272
-
273
- useEffect(() => {
274
- if (orderMessages && setOrderMessages) return
275
- loadMessages()
276
- }, [orderId])
277
-
278
- useEffect(() => {
279
- if (messages.loading || (orderMessages && setOrderMessages)) return
280
- const handleNewMessage = (message) => {
281
- if (message.order?.id === orderId) {
282
- const found = messages.messages.find(_message => _message.id === message.id)
283
- if (!found) {
284
- setMessages(prevState => ({
285
- ...prevState,
286
- messages: [...prevState.messages, message]
287
- }))
288
- }
289
- }
290
- }
291
- socket.on('message', handleNewMessage)
292
- return () => {
293
- socket.off('message', handleNewMessage)
294
- }
295
- }, [messages, socket, order?.status])
296
-
297
- useEffect(() => {
298
- if (!socket?.socket) return
299
- if (asDashboard) {
300
- socket.join(`messages_orders_${orderId}_${user?.level}`)
301
- } else {
302
- socket.join(`messages_orders_${user?.id}`)
303
- }
304
- socket.socket.on('connect', () => {
305
- if (asDashboard) {
306
- socket.join(`messages_orders_${orderId}_${user?.level}`)
307
- } else {
308
- socket.join(`messages_orders_${user?.id}`)
309
- }
310
- })
311
- return () => {
312
- if (asDashboard) {
313
- socket.leave(`messages_orders_${orderId}_${user?.level}`)
314
- } else {
315
- socket.leave(`messages_orders_${user?.id}`)
316
- }
317
- }
318
- }, [socket?.socket, orderId])
319
-
320
- return (
321
- <>
322
- {UIComponent && (
323
- <UIComponent
324
- {...props}
325
- messages={messages}
326
- image={image}
327
- canRead={canRead}
328
- handleSend={handleSend}
329
- message={message}
330
- handleReadMessages={handleReadMessages}
331
- setMessage={setMessage}
332
- setCanRead={setCanRead}
333
- sendMessage={sendMessage}
334
- setImage={setImage}
335
- getHistoryComment={getHistoryComment}
336
- />
337
- )}
338
- </>
339
- )
340
- }
341
-
342
- Messages.propTypes = {
343
- /**
344
- * UI Component, this must be containt all graphic elements and use parent props
345
- */
346
- UIComponent: PropTypes.elementType,
347
- /**
348
- * Custom Send messageS
349
- * @param {object} message Message to send
350
- */
351
- handleClickSetDefault: PropTypes.func,
352
- /**
353
- * @param {object} message
354
- * handleCustomClick, function to get click event and return message without default behavior
355
- */
356
- customHandleSend: PropTypes.func,
357
- /**
358
- * Components types before [PUT HERE COMPONENT NAME]
359
- * Array of type components, the parent props will pass to these components
360
- */
361
- beforeComponents: PropTypes.arrayOf(PropTypes.elementType),
362
- /**
363
- * Components types after [PUT HERE COMPONENT NAME]
364
- * Array of type components, the parent props will pass to these components
365
- */
366
- afterComponents: PropTypes.arrayOf(PropTypes.elementType),
367
- /**
368
- * Elements before [PUT HERE COMPONENT NAME]
369
- * Array of HTML/Components elements, these components will not get the parent props
370
- */
371
- beforeElements: PropTypes.arrayOf(PropTypes.element),
372
- /**
373
- * Elements after [PUT HERE COMPONENT NAME]
374
- * Array of HTML/Components elements, these components will not get the parent props
375
- */
376
- afterElements: PropTypes.arrayOf(PropTypes.element)
377
- }
378
-
379
- Messages.defaultProps = {
380
- beforeComponents: [],
381
- afterComponents: [],
382
- beforeElements: [],
383
- afterElements: []
384
- }
1
+ import React, { useState, useEffect } from 'react'
2
+ import PropTypes from 'prop-types'
3
+ import { useSession } from '../../../contexts/SessionContext'
4
+ import { useApi } from '../../../contexts/ApiContext'
5
+ import { useWebsocket } from '../../../contexts/WebsocketContext'
6
+ import { useConfig } from '../../../contexts/ConfigContext'
7
+ import { useLanguage } from '../../../contexts/LanguageContext'
8
+ import { useUtils } from '../../../contexts/UtilsContext'
9
+
10
+ export const Messages = (props) => {
11
+ const {
12
+ UIComponent,
13
+ orderId,
14
+ customHandleSend,
15
+ messages: orderMessages,
16
+ setMessages: setOrderMessages,
17
+ asDashboard,
18
+ order,
19
+ handleUpdateOrderForUnreadCount
20
+ } = props
21
+
22
+ const [, t] = useLanguage()
23
+ const [ordering] = useApi()
24
+ const [configState] = useConfig()
25
+ const [{ getOrderState }] = useUtils()
26
+ const [{ user, token }] = useSession()
27
+ const accessToken = props.accessToken || token
28
+
29
+ const [canRead, setCanRead] = useState({ business: true, administrator: true, driver: true, customer: true })
30
+ const [message, setMessage] = useState('')
31
+ const [messages, setMessages] = useState({ loading: true, error: null, messages: [] })
32
+ const [sendMessage, setSendMessages] = useState({ loading: false, error: null })
33
+ const [readMessages, setReadMessages] = useState({ loading: true, error: null, messages: [] })
34
+ const [image, setImage] = useState(null)
35
+ const socket = useWebsocket()
36
+
37
+ const googleMapsApiKey = configState?.configs?.google_maps_api_key?.value
38
+ const getStaticMapByLocation = (location, size) => {
39
+ if (!size) {
40
+ size = '250x100'
41
+ }
42
+ var url = 'https://maps.googleapis.com/maps/api/staticmap?center=' + location.lat + ',' + location.lng + '&zoom=14&size=' + size + '&markers=color:red%7C' + location.lat + ',' + location.lng + '&key=' + googleMapsApiKey
43
+ return url
44
+ }
45
+
46
+ const getLogisticTagStatus = (status) => {
47
+ switch (status) {
48
+ case 0:
49
+ return t('PENDING', 'Pending')
50
+ case 1:
51
+ return t('IN_PROGRESS', 'In Progress')
52
+ case 2:
53
+ return t('IN_QUEUE', 'In Queue')
54
+ case 3:
55
+ return t('EXPIRED', 'Logistic expired')
56
+ case 4:
57
+ return t('RESOLVED', 'Resolved')
58
+ default:
59
+ return status
60
+ }
61
+ }
62
+
63
+ const getVehicleSmmary = (vehicle) => {
64
+ return vehicle?.type + ' ' + vehicle?.model + ' ' + vehicle?.car_registration + ' ' + vehicle?.color
65
+ }
66
+
67
+ const getHistoryComment = (message) => {
68
+ let comment = ''
69
+ const changeAttribute = message?.change?.attribute
70
+ if (changeAttribute === 'distance') {
71
+ comment = t('THE_DRIVER_IS_CLOSE') + ' <b>(' + message.driver.name + (message.driver.lastname ? ' ' + message.driver.lastname : '') + ')</b>'
72
+ } else if (changeAttribute === 'status') {
73
+ if (message.change.new === 8 && message.change.estimated) {
74
+ const estimatedDelivery = message.change.estimated
75
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
76
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
77
+ .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
78
+ .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>') + '<br>' + t('ESTIMATED_DELIVERY_TIME')
79
+ .replace('_min_', estimatedDelivery)
80
+ } else if (message.change.new === 7 && message.change.estimated) {
81
+ const estimatedPreparation = message.change.estimated
82
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
83
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
84
+ .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
85
+ .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>') + '<br>' + t('ESTIMATED_PREPARATION_TIME')
86
+ .replace('_min_', estimatedPreparation)
87
+ } else {
88
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
89
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
90
+ .replace('_from_', '<b>' + getOrderState(message.change.old * 1) + '</b>')
91
+ .replace('_to_', '<b>' + getOrderState(message.change.new * 1) + '</b>')
92
+ }
93
+ if (message?.change?.comment) {
94
+ comment += '<br>' + '<b>' + t('COMMENT', '') + '</b>: ' + message.change.comment + '.'
95
+ }
96
+ } else if (changeAttribute === 'driver_id') {
97
+ if (message.driver) {
98
+ comment = t('DRIVER_ASSIGNED_AS_DRIVER')
99
+ .replace('_driver_', '<b>' + message.driver.name + ' ' + (message.driver.lastname ? message.driver.lastname : '') + '</b>')
100
+ } else {
101
+ comment = t('DRIVER_UNASSIGNED')
102
+ }
103
+ } else if (['prepared_in', 'delivered_in', 'delivery_datetime'].includes(changeAttribute)) {
104
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
105
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
106
+ .replace('_from_', '<b>' + (message.change.old || 0) + '</b>')
107
+ .replace('_to_', '<b>' + message.change.new + '</b>')
108
+ } else if (changeAttribute === 'logistic_status') {
109
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
110
+ .replace('_attribute_', '<b>' + t('LOGISTIC_STATUS', 'logistic status') + '</b>')
111
+ .replace('_from_', '<b>' + getLogisticTagStatus(parseInt(message.change.old, 10)) + '</b>')
112
+ .replace('_to_', '<b>' + getLogisticTagStatus(parseInt(message.change.new, 10)) + '</b>')
113
+ } else if (changeAttribute === 'vehicle') {
114
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
115
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
116
+ .replace('_from_', '<b>' + getVehicleSmmary(message.change.old) + '</b>')
117
+ .replace('_to_', '<b>' + getVehicleSmmary(message.change.new) + '</b>')
118
+ } else if (changeAttribute === 'reject_reason') {
119
+ comment = t('ORDER_REJECT_REASON_IS', 'Order <b>reject reason</b> is _reject_reason_.')
120
+ .replace('_reject_reason_', '<b>' + t(`REJECT_REASON_${message.change.new.toUpperCase()}`) + '</b>')
121
+ } else if (changeAttribute !== 'comment') {
122
+ if (message.change.old) {
123
+ comment = t('ORDER_ATTRIBUTE_CHANGED_FROM_TO')
124
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
125
+ .replace('_from_', '<b>' + message.change.old + '</b>')
126
+ .replace('_to_', '<b>' + message.change.new + '</b>')
127
+ } else {
128
+ comment = t('ORDER_ATTRIBUTE_CHANGED_TO')
129
+ .replace('_attribute_', '<b>' + t(changeAttribute.toUpperCase()).toLowerCase() + '</b>')
130
+ .replace('_to_', '<b>' + message.change.new + '</b>')
131
+ }
132
+ }
133
+ if (['status', 'reject_reason'].includes(changeAttribute)) {
134
+ if (user.level === 0 || user.level === 2) {
135
+ comment += '<br>-'
136
+ if (message.app_id) comment += '<br><strong>' + t('APP_ID') + ':</strong> ' + message.app_id
137
+ comment += '<br><strong>' + t('AUTHOR') + ':</strong> ' + ((message.author) ? (message.author.name + (message.author.lastname ? ' ' + message.author.lastname : '')) : t('GUEST_USER'))
138
+ if (message.user_agent) comment += '<br><strong>' + t('USER_AGENT') + ':</strong> ' + message.user_agent
139
+ if (message.location) comment += '<br><strong>' + t('LOCATION') + ':</strong> <img src="' + getStaticMapByLocation(message.location, '250x100') + '" />'
140
+ comment += '<br><strong>' + t('IP') + ':</strong> ' + message.ip
141
+ }
142
+ }
143
+ return comment
144
+ }
145
+
146
+ /**
147
+ * Method to send message
148
+ */
149
+ const handleSend = async () => {
150
+ if (customHandleSend) {
151
+ return customHandleSend(message)
152
+ }
153
+ try {
154
+ setSendMessages({ loading: true, error: null })
155
+ const _canRead = []
156
+ if (canRead.customer) {
157
+ _canRead.push(3)
158
+ }
159
+ if (canRead.administrator) {
160
+ _canRead.push(0)
161
+ }
162
+ if (canRead.business) {
163
+ _canRead.push(2)
164
+ }
165
+ if (canRead.driver) {
166
+ _canRead.push(4)
167
+ }
168
+ const body = {
169
+ comment: message,
170
+ type: 2,
171
+ can_see: _canRead.join(',')
172
+ }
173
+ if (image) {
174
+ body.type = 3
175
+ body.file = image
176
+ }
177
+ const response = await fetch(`${ordering.root}/orders/${orderId}/messages`, { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` }, body: JSON.stringify(body) })
178
+ const { error, result } = await response.json()
179
+ if (!error) {
180
+ if (setOrderMessages && orderMessages) {
181
+ setOrderMessages({
182
+ ...orderMessages,
183
+ messages: [
184
+ ...orderMessages.messages,
185
+ result
186
+ ]
187
+ })
188
+ } else {
189
+ setMessages({
190
+ ...messages,
191
+ messages: [
192
+ ...messages.messages,
193
+ result
194
+ ]
195
+ })
196
+ }
197
+ }
198
+ setSendMessages({ loading: false, error: error ? result : null })
199
+ } catch (error) {
200
+ setSendMessages({ loading: false, error: [error.Messages] })
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Method to Load message for first time
206
+ */
207
+ const loadMessages = async () => {
208
+ try {
209
+ setMessages({ ...messages, messages: [], loading: true })
210
+ const functionFetch = asDashboard
211
+ ? `${ordering.root}/orders/${orderId}/messages?mode=dashboard`
212
+ : `${ordering.root}/orders/${orderId}/messages`
213
+ const response = await fetch(functionFetch, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` } })
214
+ const { error, result } = await response.json()
215
+ if (!error) {
216
+ setMessages({
217
+ messages: result,
218
+ loading: false,
219
+ error: null
220
+ })
221
+ } else {
222
+ setMessages({
223
+ ...messages,
224
+ loading: false,
225
+ error: result
226
+ })
227
+ }
228
+ } catch (error) {
229
+ setMessages({ ...messages, loading: false, error: [error.Messages] })
230
+ }
231
+ }
232
+
233
+ /**
234
+ * Method to Load message for first time
235
+ * @param {number} messageId order message Id
236
+ */
237
+ const handleReadMessages = async (messageId) => {
238
+ if (orderMessages && setOrderMessages) return
239
+ try {
240
+ setReadMessages({ ...readMessages, loading: true })
241
+ const functionFetch = `${ordering.root}/orders/${orderId}/messages/${messageId}/read?order_id=${orderId}&order_message_id=${messageId}`
242
+ const response = await fetch(functionFetch, { method: 'GET', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${accessToken}` } })
243
+ const { error, result } = await response.json()
244
+ if (!error) {
245
+ setReadMessages({
246
+ messages: result,
247
+ loading: false,
248
+ error: null
249
+ })
250
+ if (messages.messages.length > 0) {
251
+ const _messages = messages.messages.filter(message => {
252
+ if (message.id === messageId) {
253
+ message.read = true
254
+ }
255
+ return true
256
+ })
257
+ setMessages({ ...messages, messages: _messages })
258
+ }
259
+ handleUpdateOrderForUnreadCount && handleUpdateOrderForUnreadCount(null)
260
+ handleUpdateOrderForUnreadCount && handleUpdateOrderForUnreadCount(orderId)
261
+ } else {
262
+ setReadMessages({
263
+ ...readMessages,
264
+ loading: false,
265
+ error: result
266
+ })
267
+ }
268
+ } catch (error) {
269
+ setReadMessages({ ...readMessages, loading: false, error: [error.Messages] })
270
+ }
271
+ }
272
+
273
+ useEffect(() => {
274
+ if (orderMessages && setOrderMessages) return
275
+ loadMessages()
276
+ }, [orderId])
277
+
278
+ useEffect(() => {
279
+ if (messages.loading || (orderMessages && setOrderMessages)) return
280
+ const handleNewMessage = (message) => {
281
+ if (message.order?.id === orderId) {
282
+ const found = messages.messages.find(_message => _message.id === message.id)
283
+ if (!found) {
284
+ setMessages(prevState => ({
285
+ ...prevState,
286
+ messages: [...prevState.messages, message]
287
+ }))
288
+ }
289
+ }
290
+ }
291
+ socket.on('message', handleNewMessage)
292
+ return () => {
293
+ socket.off('message', handleNewMessage)
294
+ }
295
+ }, [messages, socket, order?.status])
296
+
297
+ useEffect(() => {
298
+ if (!socket?.socket) return
299
+ if (asDashboard) {
300
+ socket.join(`messages_orders_${orderId}_${user?.level}`)
301
+ } else {
302
+ socket.join(`messages_orders_${user?.id}`)
303
+ }
304
+ socket.socket.on('connect', () => {
305
+ if (asDashboard) {
306
+ socket.join(`messages_orders_${orderId}_${user?.level}`)
307
+ } else {
308
+ socket.join(`messages_orders_${user?.id}`)
309
+ }
310
+ })
311
+ return () => {
312
+ if (asDashboard) {
313
+ socket.leave(`messages_orders_${orderId}_${user?.level}`)
314
+ } else {
315
+ socket.leave(`messages_orders_${user?.id}`)
316
+ }
317
+ }
318
+ }, [socket?.socket, orderId])
319
+
320
+ return (
321
+ <>
322
+ {UIComponent && (
323
+ <UIComponent
324
+ {...props}
325
+ messages={messages}
326
+ image={image}
327
+ canRead={canRead}
328
+ handleSend={handleSend}
329
+ message={message}
330
+ handleReadMessages={handleReadMessages}
331
+ setMessage={setMessage}
332
+ setCanRead={setCanRead}
333
+ sendMessage={sendMessage}
334
+ setImage={setImage}
335
+ getHistoryComment={getHistoryComment}
336
+ />
337
+ )}
338
+ </>
339
+ )
340
+ }
341
+
342
+ Messages.propTypes = {
343
+ /**
344
+ * UI Component, this must be containt all graphic elements and use parent props
345
+ */
346
+ UIComponent: PropTypes.elementType,
347
+ /**
348
+ * Custom Send messageS
349
+ * @param {object} message Message to send
350
+ */
351
+ handleClickSetDefault: PropTypes.func,
352
+ /**
353
+ * @param {object} message
354
+ * handleCustomClick, function to get click event and return message without default behavior
355
+ */
356
+ customHandleSend: PropTypes.func,
357
+ /**
358
+ * Components types before [PUT HERE COMPONENT NAME]
359
+ * Array of type components, the parent props will pass to these components
360
+ */
361
+ beforeComponents: PropTypes.arrayOf(PropTypes.elementType),
362
+ /**
363
+ * Components types after [PUT HERE COMPONENT NAME]
364
+ * Array of type components, the parent props will pass to these components
365
+ */
366
+ afterComponents: PropTypes.arrayOf(PropTypes.elementType),
367
+ /**
368
+ * Elements before [PUT HERE COMPONENT NAME]
369
+ * Array of HTML/Components elements, these components will not get the parent props
370
+ */
371
+ beforeElements: PropTypes.arrayOf(PropTypes.element),
372
+ /**
373
+ * Elements after [PUT HERE COMPONENT NAME]
374
+ * Array of HTML/Components elements, these components will not get the parent props
375
+ */
376
+ afterElements: PropTypes.arrayOf(PropTypes.element)
377
+ }
378
+
379
+ Messages.defaultProps = {
380
+ beforeComponents: [],
381
+ afterComponents: [],
382
+ beforeElements: [],
383
+ afterElements: []
384
+ }