ordering-components-external 13.1.7 → 13.1.8

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 (550) hide show
  1. package/.babelrc +22 -22
  2. package/.vscode/settings.json +3 -3
  3. package/_bundles/{0.ordering-component.949cbfb0cbd9c20d005d.js → 0.ordering-component.94a28b3a5bfb4d729a1b.js} +1 -1
  4. package/_bundles/{1.ordering-component.949cbfb0cbd9c20d005d.js → 1.ordering-component.94a28b3a5bfb4d729a1b.js} +1 -1
  5. package/_bundles/{7.ordering-component.949cbfb0cbd9c20d005d.js → 7.ordering-component.94a28b3a5bfb4d729a1b.js} +1 -1
  6. package/_bundles/ordering-component.94a28b3a5bfb4d729a1b.js +2 -0
  7. package/_modules/components/AddressDetails/index.js +34 -34
  8. package/_modules/components/AddressForm/index.js +59 -59
  9. package/_modules/components/AddressList/index.js +52 -52
  10. package/_modules/components/Analitycs/index.js +11 -11
  11. package/_modules/components/AnalyticsSegment/index.js +10 -10
  12. package/_modules/components/AppleLogin/index.js +35 -35
  13. package/_modules/components/BaseComponent/index.js +15 -15
  14. package/_modules/components/BusinessAndProductList/index.js +28 -28
  15. package/_modules/components/BusinessBasicInformation/index.js +28 -28
  16. package/_modules/components/BusinessController/index.js +62 -62
  17. package/_modules/components/BusinessInformation/BusinessOption/index.js +22 -22
  18. package/_modules/components/BusinessInformation/index.js +24 -24
  19. package/_modules/components/BusinessList/index.js +54 -54
  20. package/_modules/components/BusinessMenuListing/index.js +29 -29
  21. package/_modules/components/BusinessProductsCategories/index.js +18 -18
  22. package/_modules/components/BusinessProductsSearch/index.js +16 -16
  23. package/_modules/components/BusinessReviews/index.js +36 -36
  24. package/_modules/components/BusinessSearchList/index.js +30 -30
  25. package/_modules/components/BusinessSortControl/index.js +34 -34
  26. package/_modules/components/BusinessTypeFilter/index.js +35 -35
  27. package/_modules/components/BusinessesMap/index.js +33 -33
  28. package/_modules/components/Cart/index.js +47 -47
  29. package/_modules/components/CartStoresListing/index.js +13 -13
  30. package/_modules/components/Checkout/index.js +72 -72
  31. package/_modules/components/CmsContent/index.js +29 -29
  32. package/_modules/components/Contacts/index.js +36 -36
  33. package/_modules/components/CouponControl/index.js +29 -29
  34. package/_modules/components/DragAndDrop/index.js +4 -4
  35. package/_modules/components/DriverList/index.js +30 -30
  36. package/_modules/components/DriverTips/index.js +41 -41
  37. package/_modules/components/Emitter/index.js +3 -3
  38. package/_modules/components/FacebookLoginButton/index.js +49 -49
  39. package/_modules/components/FacebookPixel/index.js +8 -8
  40. package/_modules/components/FavoriteList/index.js +40 -40
  41. package/_modules/components/FirebaseGoogleLoginButton/index.js +19 -19
  42. package/_modules/components/FloatingButton/index.js +22 -22
  43. package/_modules/components/ForgotPasswordForm/index.js +52 -52
  44. package/_modules/components/GiftCard/GiftCardOrdersList/index.js +13 -13
  45. package/_modules/components/GiftCard/PurchaseGiftCard/index.js +15 -15
  46. package/_modules/components/GiftCard/RedeemGiftCard/index.js +13 -13
  47. package/_modules/components/GiftCard/SendGiftCard/index.js +13 -13
  48. package/_modules/components/GoogleAutocompleteInput/index.js +25 -25
  49. package/_modules/components/GoogleIdentity/index.js +37 -37
  50. package/_modules/components/GoogleLoginButton/index.js +58 -58
  51. package/_modules/components/GoogleMaps/index.js +44 -44
  52. package/_modules/components/GpsButton/index.js +27 -27
  53. package/_modules/components/LanguageSelector/index.js +37 -37
  54. package/_modules/components/LoginForm/index.js +67 -67
  55. package/_modules/components/LogoutAction/index.js +110 -36
  56. package/_modules/components/MainSearch/index.js +40 -40
  57. package/_modules/components/MapView/index.js +10 -10
  58. package/_modules/components/MenuControl/index.js +58 -58
  59. package/_modules/components/Messages/index.js +34 -34
  60. package/_modules/components/MomentOption/index.js +57 -57
  61. package/_modules/components/MultiCartCreate/index.js +9 -9
  62. package/_modules/components/MultiCartsPaymethodsAndWallets/index.js +20 -20
  63. package/_modules/components/MultiCheckout/index.js +24 -24
  64. package/_modules/components/MultiOrdersDetails/index.js +18 -18
  65. package/_modules/components/MyOrders/index.js +33 -33
  66. package/_modules/components/MyOrdersList/index.js +34 -34
  67. package/_modules/components/NewOrderNotification/index.js +8 -8
  68. package/_modules/components/OrderChange/index.js +29 -29
  69. package/_modules/components/OrderDetails/index.js +55 -55
  70. package/_modules/components/OrderList/index.js +56 -56
  71. package/_modules/components/OrderListGroups/index.js +12 -12
  72. package/_modules/components/OrderReview/index.js +31 -31
  73. package/_modules/components/OrderTypeControl/index.js +23 -23
  74. package/_modules/components/OrderVerticalList/index.js +11 -11
  75. package/_modules/components/OrdersControlFilters/index.js +14 -14
  76. package/_modules/components/OrdersDashboardComponents/Appointments/index.js +13 -13
  77. package/_modules/components/OrdersDashboardComponents/BusinessProductsListing/index.js +38 -38
  78. package/_modules/components/OrdersDashboardComponents/CheckPassword/index.js +33 -33
  79. package/_modules/components/OrdersDashboardComponents/CityList/index.js +32 -32
  80. package/_modules/components/OrdersDashboardComponents/CountryList/index.js +29 -29
  81. package/_modules/components/OrdersDashboardComponents/CustomOrderDetails/index.js +21 -21
  82. package/_modules/components/OrdersDashboardComponents/DashboardBusinessList/index.js +67 -67
  83. package/_modules/components/OrdersDashboardComponents/DashboardOrdersList/index.js +71 -71
  84. package/_modules/components/OrdersDashboardComponents/DriversList/index.js +69 -69
  85. package/_modules/components/OrdersDashboardComponents/ExportCSV/index.js +25 -25
  86. package/_modules/components/OrdersDashboardComponents/GiftCardsList/index.js +15 -15
  87. package/_modules/components/OrdersDashboardComponents/GoogleMapsApiKeySetting/index.js +13 -13
  88. package/_modules/components/OrdersDashboardComponents/LogisticInformation/index.js +28 -28
  89. package/_modules/components/OrdersDashboardComponents/Logistics/index.js +28 -28
  90. package/_modules/components/OrdersDashboardComponents/Messages/index.js +39 -39
  91. package/_modules/components/OrdersDashboardComponents/MetaFields/index.js +37 -37
  92. package/_modules/components/OrdersDashboardComponents/OrderDetails/index.js +47 -47
  93. package/_modules/components/OrdersDashboardComponents/OrderNotification/index.js +19 -19
  94. package/_modules/components/OrdersDashboardComponents/OrdersFilter/index.js +73 -73
  95. package/_modules/components/OrdersDashboardComponents/OrdersManage/index.js +68 -68
  96. package/_modules/components/OrdersDashboardComponents/PointsWalletLevels/index.js +37 -37
  97. package/_modules/components/OrdersDashboardComponents/ReviewCustomer/index.js +25 -25
  98. package/_modules/components/OrdersDashboardComponents/Schedule/index.js +56 -56
  99. package/_modules/components/OrdersDashboardComponents/SettingsList/index.js +50 -50
  100. package/_modules/components/OrdersDashboardComponents/UserFormDetails/index.js +80 -80
  101. package/_modules/components/OrdersDashboardComponents/UsersList/index.js +65 -65
  102. package/_modules/components/OrdersDashboardComponents/WebsocketStatus/index.js +10 -10
  103. package/_modules/components/PageBanner/index.js +16 -16
  104. package/_modules/components/PaymentOptionCash/index.js +26 -26
  105. package/_modules/components/PaymentOptionPaypal/index.js +32 -32
  106. package/_modules/components/PaymentOptionSquare/index.js +10 -10
  107. package/_modules/components/PaymentOptionStripe/index.js +41 -41
  108. package/_modules/components/PaymentOptionStripeDirect/index.js +32 -32
  109. package/_modules/components/PaymentOptionStripeRedirect/StripeRedirectForm/index.js +23 -23
  110. package/_modules/components/PaymentOptionStripeRedirect/index.js +38 -38
  111. package/_modules/components/PaymentOptionWallet/index.js +8 -8
  112. package/_modules/components/PaymentOptions/index.js +36 -36
  113. package/_modules/components/PaymethodList/index.js +29 -29
  114. package/_modules/components/PhoneAutocomplete/index.js +27 -27
  115. package/_modules/components/PlaceSpot/index.js +13 -13
  116. package/_modules/components/Popup/index.js +38 -38
  117. package/_modules/components/ProductComponent/index.js +36 -36
  118. package/_modules/components/ProductForm/index.js +130 -130
  119. package/_modules/components/ProductImages/index.js +20 -20
  120. package/_modules/components/ProductIngredient/index.js +19 -19
  121. package/_modules/components/ProductItemAccordion/index.js +15 -15
  122. package/_modules/components/ProductOption/index.js +9 -9
  123. package/_modules/components/ProductOptionSuboption/index.js +36 -36
  124. package/_modules/components/ProductShare/index.js +26 -26
  125. package/_modules/components/ProductsList/index.js +26 -26
  126. package/_modules/components/ProductsListing/index.js +48 -48
  127. package/_modules/components/ProfessionalInfo/index.js +32 -32
  128. package/_modules/components/PromotionsController/index.js +8 -8
  129. package/_modules/components/QueryLoginSpoonity/index.js +29 -29
  130. package/_modules/components/ReCaptcha/index.js +9 -9
  131. package/_modules/components/ResetPassword/index.js +29 -29
  132. package/_modules/components/ReviewCustomer/index.js +25 -25
  133. package/_modules/components/ReviewDriver/index.js +29 -29
  134. package/_modules/components/ReviewProduct/index.js +34 -34
  135. package/_modules/components/SearchOptions/index.js +23 -23
  136. package/_modules/components/Sessions/index.js +30 -30
  137. package/_modules/components/SignupForm/index.js +66 -66
  138. package/_modules/components/SingleBusinessCard/index.js +29 -29
  139. package/_modules/components/SingleOrderCard/index.js +30 -30
  140. package/_modules/components/SingleProductCard/index.js +27 -27
  141. package/_modules/components/SingleProfessionalCard/index.js +27 -27
  142. package/_modules/components/SmartAppBanner/index.js +13 -13
  143. package/_modules/components/StoreProductList/index.js +34 -34
  144. package/_modules/components/StripeElementsForm/CardForm/index.js +34 -34
  145. package/_modules/components/StripeElementsForm/index.js +24 -24
  146. package/_modules/components/UpsellingPage/index.js +26 -26
  147. package/_modules/components/UserFormDetails/index.js +79 -79
  148. package/_modules/components/UserVerification/index.js +24 -24
  149. package/_modules/components/WalletList/index.js +8 -8
  150. package/_modules/components/WebsocketStatus/index.js +10 -10
  151. package/_modules/components/WrapperGoogleMaps/index.js +9 -9
  152. package/_modules/contexts/ApiContext/index.js +13 -13
  153. package/_modules/contexts/BillingContext/index.js +7 -7
  154. package/_modules/contexts/BusinessContext/index.js +16 -16
  155. package/_modules/contexts/ConfigContext/index.js +17 -17
  156. package/_modules/contexts/CustomerContext/index.js +7 -7
  157. package/_modules/contexts/EventContext/index.js +9 -9
  158. package/_modules/contexts/LanguageContext/index.js +20 -20
  159. package/_modules/contexts/OptimizationLoadContext/index.js +15 -15
  160. package/_modules/contexts/OrderContext/index.js +72 -72
  161. package/_modules/contexts/OrderingContext/index.js +7 -7
  162. package/_modules/contexts/OrderingThemeContext/index.js +18 -18
  163. package/_modules/contexts/ProductContext/index.js +14 -14
  164. package/_modules/contexts/SessionContext/index.js +16 -16
  165. package/_modules/contexts/SiteContext/index.js +16 -16
  166. package/_modules/contexts/ToastContext/index.js +4 -4
  167. package/_modules/contexts/UtilsContext/index.js +14 -14
  168. package/_modules/contexts/ValidationsFieldsContext/index.js +7 -7
  169. package/_modules/contexts/WebsocketContext/index.js +16 -16
  170. package/_modules/contexts/WebsocketContext/socket.js +4 -4
  171. package/_modules/native/src/NativeStrategy/index.js +6 -6
  172. package/_modules/native/src/contexts/OrderingContext/index.js +7 -7
  173. package/_modules/webStrategy/index.js +5 -5
  174. package/cypress/fixtures/example.json +4 -4
  175. package/cypress/integration/naked/BusinessProductsCategories.spec.js +9 -9
  176. package/cypress/integration/naked/PhoneAutocomplete.spec.js +22 -22
  177. package/cypress/integration/naked/activeOrders.spec.js +15 -15
  178. package/cypress/integration/naked/addressDetails.spec.js +10 -10
  179. package/cypress/integration/naked/appleLogin.spec.js +14 -14
  180. package/cypress/integration/naked/businessBasicInformation.spec.js +14 -14
  181. package/cypress/integration/naked/businessController.spec.js +9 -9
  182. package/cypress/integration/naked/businessInformation.spec.js +19 -19
  183. package/cypress/integration/naked/businessProductsSearch.spec.js +9 -9
  184. package/cypress/integration/naked/businessReviews.spec.js +16 -16
  185. package/cypress/integration/naked/businessSortControl.spec.js +9 -9
  186. package/cypress/integration/naked/businessTypeFilter.spec.js +10 -10
  187. package/cypress/integration/naked/businessesMap.spec.js +13 -13
  188. package/cypress/integration/naked/cms.spec.js +9 -9
  189. package/cypress/integration/naked/config.spec.js +34 -34
  190. package/cypress/integration/naked/driverTips.spec.js +10 -10
  191. package/cypress/integration/naked/events.spec.js +13 -13
  192. package/cypress/integration/naked/facebookLogin.spec.js +13 -13
  193. package/cypress/integration/naked/floatingButton.spec.js +13 -13
  194. package/cypress/integration/naked/forgotPassword.spec.js +20 -20
  195. package/cypress/integration/naked/googleLogin.spec.js +11 -11
  196. package/cypress/integration/naked/languageExamples.spec.js +25 -25
  197. package/cypress/integration/naked/languageSelector.spec.js +10 -10
  198. package/cypress/integration/naked/login.spec.js +38 -38
  199. package/cypress/integration/naked/logout.spec.js +15 -15
  200. package/cypress/integration/naked/mainSearch.spec.js +9 -9
  201. package/cypress/integration/naked/menuControl.spec.js +9 -9
  202. package/cypress/integration/naked/messages.spec.js +25 -25
  203. package/cypress/integration/naked/momentOption.spec.js +10 -10
  204. package/cypress/integration/naked/myOrders.spec.js +11 -11
  205. package/cypress/integration/naked/myOrdersList.spec.js +9 -9
  206. package/cypress/integration/naked/orderContextAdvanced.spec.js +23 -23
  207. package/cypress/integration/naked/orderDetails.spec.js +11 -11
  208. package/cypress/integration/naked/paymentOptionCash.spec.js +21 -21
  209. package/cypress/integration/naked/paymentOptionStripe.spec.js +11 -11
  210. package/cypress/integration/naked/paymentOptionStripeDirect.spec.js +11 -11
  211. package/cypress/integration/naked/paymentOptions.spec.js +9 -9
  212. package/cypress/integration/naked/popupExample.spec.js +17 -17
  213. package/cypress/integration/naked/productImages.spec.js +11 -11
  214. package/cypress/integration/naked/productOptionExample.spec.js +21 -21
  215. package/cypress/integration/naked/productShare.spec.js +9 -9
  216. package/cypress/integration/naked/productsList.spec.js +9 -9
  217. package/cypress/integration/naked/resetPassword.spec.js +11 -11
  218. package/cypress/integration/naked/reviewOrders.spec.js +13 -13
  219. package/cypress/integration/naked/searchOptions.spec.js +18 -18
  220. package/cypress/integration/naked/signup.spec.js +31 -31
  221. package/cypress/integration/naked/upselling.spec.js +13 -13
  222. package/cypress/integration/naked/userDetails.spec.js +12 -12
  223. package/cypress/plugins/index.js +21 -21
  224. package/cypress/support/commands.js +35 -35
  225. package/cypress/support/index.js +20 -20
  226. package/cypress.json +12 -12
  227. package/example/App.js +263 -263
  228. package/example/components/ActiveOrdersUI/index.js +72 -72
  229. package/example/components/AddressDetailsUI/index.js +101 -101
  230. package/example/components/AddressFormUI/index.js +161 -161
  231. package/example/components/AddressListUI/index.js +33 -33
  232. package/example/components/AlertPopup/index.js +10 -10
  233. package/example/components/AlertUI/index.js +49 -49
  234. package/example/components/AlertUI/style.css +5 -5
  235. package/example/components/AppleLoginUI/index.js +40 -40
  236. package/example/components/BaseComponentUI/index.js +34 -34
  237. package/example/components/BusinessBasicInformationUI/index.js +118 -118
  238. package/example/components/BusinessControllerUI/index.js +89 -89
  239. package/example/components/BusinessInformationUI/BusinessOptionUI/index.js +83 -83
  240. package/example/components/BusinessInformationUI/index.js +83 -83
  241. package/example/components/BusinessProductsCategoriesUI/index.js +42 -42
  242. package/example/components/BusinessProductsSearchUI/index.js +38 -38
  243. package/example/components/BusinessReviewsUI/index.js +77 -77
  244. package/example/components/BusinessSortControlUI/index.js +47 -47
  245. package/example/components/BusinessTypeFilterUI/index.js +53 -53
  246. package/example/components/BusinessesMapUI/index.js +57 -57
  247. package/example/components/CartUI/index.js +154 -154
  248. package/example/components/ChangeView/index.js +19 -19
  249. package/example/components/CheckoutUI/index.js +206 -206
  250. package/example/components/CmsContentUI/index.js +52 -52
  251. package/example/components/ConfigsExample/index.js +118 -118
  252. package/example/components/CouponControlUI/index.js +63 -63
  253. package/example/components/DriverTipsUI/index.js +58 -58
  254. package/example/components/FacebookLoginButtonUI/index.js +48 -48
  255. package/example/components/FloatingButtonUI/index.js +145 -145
  256. package/example/components/ForgotPasswordFormUI/index.js +93 -93
  257. package/example/components/GoogleLoginUI/index.js +30 -30
  258. package/example/components/GpsButtonUI/index.js +22 -22
  259. package/example/components/Header/index.js +18 -18
  260. package/example/components/LanguageSelectorUI/index.js +57 -57
  261. package/example/components/LanguagesExample/index.js +51 -51
  262. package/example/components/LoginFormUI/index.js +159 -159
  263. package/example/components/LogoutButtonUI/index.js +21 -21
  264. package/example/components/MainSearchUI/index.js +131 -131
  265. package/example/components/MenuControlUI/index.js +103 -103
  266. package/example/components/MessagesUI/index.js +162 -162
  267. package/example/components/ModalUI/index.js +36 -36
  268. package/example/components/ModalUI/style.css +5 -5
  269. package/example/components/MomentOptionUI/index.js +68 -68
  270. package/example/components/MyOrdersListUI/index.js +51 -51
  271. package/example/components/MyOrdersUI/index.js +52 -52
  272. package/example/components/OrderChangeUI/index.js +54 -54
  273. package/example/components/OrderDetailsUI/index.js +174 -174
  274. package/example/components/OrderReviewUI/index.js +125 -125
  275. package/example/components/OrderTypeControlUI/index.js +32 -32
  276. package/example/components/PaymentOptionCashUI/index.js +60 -60
  277. package/example/components/PaymentOptionPaypalUI/index.js +50 -50
  278. package/example/components/PaymentOptionStripeDirectUI/index.js +89 -89
  279. package/example/components/PaymentOptionStripeRedirectUI/index.js +97 -97
  280. package/example/components/PaymentOptionStripeUI/index.js +129 -129
  281. package/example/components/PaymentOptionsUI/index.js +169 -169
  282. package/example/components/PhoneAutocompleteUI/index.js +67 -67
  283. package/example/components/PhoneAutocompleteUI/styles.css +49 -49
  284. package/example/components/ProductComponentUI/index.js +113 -113
  285. package/example/components/ProductFormUI/index.js +131 -131
  286. package/example/components/ProductImagesUI/index.js +82 -82
  287. package/example/components/ProductIngredientUI/index.js +21 -21
  288. package/example/components/ProductOptionSuboptionUI/index.js +65 -65
  289. package/example/components/ProductOptionUI/index.js +31 -31
  290. package/example/components/ProductShareUI/index.js +48 -48
  291. package/example/components/ProductsListUI/index.js +108 -108
  292. package/example/components/ProductsListingUI/index.js +42 -42
  293. package/example/components/ResetPasswordUI/index.js +121 -121
  294. package/example/components/SearchOptionsUI/index.js +82 -82
  295. package/example/components/SignupFormUI/index.js +117 -117
  296. package/example/components/SingleBusinessCardUI/index.js +82 -82
  297. package/example/components/SingleOrderCardUI/index.js +52 -52
  298. package/example/components/SingleProductCardUI/index.js +47 -47
  299. package/example/components/StripeElementsFormUI/CardFormUI/index.js +51 -51
  300. package/example/components/StripeElementsFormUI/CardFormUI/style.css +118 -118
  301. package/example/components/StripeElementsFormUI/index.js +38 -38
  302. package/example/components/StripeRedirectFormUI/index.js +99 -99
  303. package/example/components/TestComponent/index.js +5 -5
  304. package/example/components/UpsellingPageUI/index.js +26 -26
  305. package/example/components/UserDetailsUI/index.js +94 -94
  306. package/example/components/UserProfileUI/index.js +156 -156
  307. package/example/views/ActiveOrders/index.js +86 -86
  308. package/example/views/AddressDetailsExample/index.js +57 -57
  309. package/example/views/AppleLoginExample/index.js +51 -51
  310. package/example/views/BaseComponentExample/index.js +35 -35
  311. package/example/views/BusinessBasicInformationExample/index.js +43 -43
  312. package/example/views/BusinessControllerExample/index.js +55 -55
  313. package/example/views/BusinessInformationExample/index.js +68 -68
  314. package/example/views/BusinessProductsCategoriesExample/index.js +50 -50
  315. package/example/views/BusinessProductsSearchExample/index.js +39 -39
  316. package/example/views/BusinessReviewsExample/index.js +43 -43
  317. package/example/views/BusinessSortControlExample/index.js +53 -53
  318. package/example/views/BusinessTypeFilterExample/index.js +53 -53
  319. package/example/views/BusinessesMapExample/index.js +57 -57
  320. package/example/views/CheckoutExample/index.js +143 -143
  321. package/example/views/CmsContentExample/index.js +44 -44
  322. package/example/views/DriverTipsExample/index.js +47 -47
  323. package/example/views/EventsExample/index.js +26 -26
  324. package/example/views/FacebookLogin/index.js +63 -63
  325. package/example/views/FloatingButtonExample/index.js +47 -47
  326. package/example/views/ForgotPassword/index.js +77 -77
  327. package/example/views/GoogleLoginExample/index.js +85 -85
  328. package/example/views/Home/index.js +200 -200
  329. package/example/views/LanguageSelectorExample/index.js +55 -55
  330. package/example/views/Login/index.js +84 -84
  331. package/example/views/MainSearchExample/index.js +43 -43
  332. package/example/views/MenuControlExample/index.js +68 -68
  333. package/example/views/MessagesExample/index.js +58 -58
  334. package/example/views/MomentOptionExample/index.js +52 -52
  335. package/example/views/MyOrdersExample/index.js +35 -35
  336. package/example/views/MyOrdersListExample/index.js +50 -50
  337. package/example/views/OrderChangeExample/index.js +46 -46
  338. package/example/views/OrderContextExample/index.js +139 -139
  339. package/example/views/OrderDetailsExample/index.js +50 -50
  340. package/example/views/OrderReviewExample/index.js +64 -64
  341. package/example/views/PaymentOptionCashExample/index.js +51 -51
  342. package/example/views/PaymentOptionPaypalExample/index.js +71 -71
  343. package/example/views/PaymentOptionStripeDirectExample/index.js +43 -43
  344. package/example/views/PaymentOptionStripeExample/index.js +47 -47
  345. package/example/views/PaymentOptionStripeRedirectExample/index.js +56 -56
  346. package/example/views/PaymentOptionsExample/index.js +47 -47
  347. package/example/views/PhoneAutocompleteExample/index.js +34 -34
  348. package/example/views/PlacesExample/index.js +94 -94
  349. package/example/views/PopupExample/index.js +78 -78
  350. package/example/views/PopupExample/style.css +18 -18
  351. package/example/views/ProductDetail/index.js +323 -323
  352. package/example/views/ProductImagesExample/index.js +43 -43
  353. package/example/views/ProductOptionExample/index.js +88 -88
  354. package/example/views/ProductShareExample/index.js +51 -51
  355. package/example/views/ProductsListExample/index.js +77 -77
  356. package/example/views/ProductsListingExample/index.js +47 -47
  357. package/example/views/ResetPasswordExample/index.js +60 -60
  358. package/example/views/SearchOptionsExample/index.js +42 -42
  359. package/example/views/SessionManager/index.js +122 -122
  360. package/example/views/Signup/index.js +64 -64
  361. package/example/views/UpsellingPageExample/index.js +35 -35
  362. package/example/views/UserDetailsExample/index.js +69 -69
  363. package/example/views/UserProfile/index.js +73 -73
  364. package/index-example.js +23 -23
  365. package/index.html +13 -13
  366. package/native/index.js +257 -257
  367. package/native/src/NativeStrategy/index.js +20 -20
  368. package/native/src/contexts/OrderingContext/index.js +85 -85
  369. package/package.json +92 -92
  370. package/src/components/AddressDetails/index.js +149 -149
  371. package/src/components/AddressForm/index.js +372 -372
  372. package/src/components/AddressList/index.js +254 -254
  373. package/src/components/Analitycs/index.js +119 -119
  374. package/src/components/AnalyticsSegment/index.js +145 -145
  375. package/src/components/AppleLogin/index.js +164 -164
  376. package/src/components/BaseComponent/index.js +52 -52
  377. package/src/components/BusinessAndProductList/index.js +982 -982
  378. package/src/components/BusinessBasicInformation/index.js +119 -119
  379. package/src/components/BusinessController/index.js +351 -351
  380. package/src/components/BusinessInformation/BusinessOption/index.js +86 -86
  381. package/src/components/BusinessInformation/index.js +93 -93
  382. package/src/components/BusinessList/index.js +670 -670
  383. package/src/components/BusinessMenuListing/index.js +99 -99
  384. package/src/components/BusinessProductsCategories/index.js +60 -60
  385. package/src/components/BusinessProductsSearch/index.js +54 -54
  386. package/src/components/BusinessReviews/index.js +187 -187
  387. package/src/components/BusinessSearchList/index.js +363 -363
  388. package/src/components/BusinessSortControl/index.js +100 -100
  389. package/src/components/BusinessTypeFilter/index.js +142 -142
  390. package/src/components/BusinessesMap/index.js +110 -110
  391. package/src/components/Cart/index.js +211 -211
  392. package/src/components/CartStoresListing/index.js +157 -157
  393. package/src/components/Checkout/index.js +636 -636
  394. package/src/components/CmsContent/index.js +97 -97
  395. package/src/components/Contacts/index.js +512 -512
  396. package/src/components/CouponControl/index.js +171 -171
  397. package/src/components/DragAndDrop/index.js +41 -41
  398. package/src/components/DriverList/index.js +112 -112
  399. package/src/components/DriverTips/index.js +141 -141
  400. package/src/components/Emitter/index.js +36 -36
  401. package/src/components/ExamineClick/index.js +40 -40
  402. package/src/components/FacebookLoginButton/index.js +214 -214
  403. package/src/components/FacebookPixel/index.js +148 -148
  404. package/src/components/FavoriteList/index.js +278 -278
  405. package/src/components/FirebaseGoogleLoginButton/index.js +93 -93
  406. package/src/components/FloatingButton/index.js +70 -70
  407. package/src/components/ForgotPasswordForm/index.js +180 -180
  408. package/src/components/GiftCard/GiftCardOrdersList/index.js +155 -155
  409. package/src/components/GiftCard/PurchaseGiftCard/index.js +127 -127
  410. package/src/components/GiftCard/RedeemGiftCard/index.js +77 -77
  411. package/src/components/GiftCard/SendGiftCard/index.js +83 -83
  412. package/src/components/GoogleAutocompleteInput/index.js +154 -154
  413. package/src/components/GoogleIdentity/index.js +144 -144
  414. package/src/components/GoogleLoginButton/index.js +276 -276
  415. package/src/components/GoogleMaps/index.js +499 -499
  416. package/src/components/GpsButton/index.js +127 -127
  417. package/src/components/LanguageSelector/index.js +163 -163
  418. package/src/components/LoginForm/index.js +527 -527
  419. package/src/components/LogoutAction/index.js +211 -165
  420. package/src/components/MainSearch/index.js +149 -149
  421. package/src/components/MapView/index.js +110 -110
  422. package/src/components/MenuControl/index.js +238 -238
  423. package/src/components/Messages/index.js +166 -166
  424. package/src/components/MomentOption/index.js +322 -322
  425. package/src/components/MultiCartCreate/index.js +70 -70
  426. package/src/components/MultiCartsPaymethodsAndWallets/index.js +201 -201
  427. package/src/components/MultiCheckout/index.js +375 -375
  428. package/src/components/MultiOrdersDetails/index.js +109 -109
  429. package/src/components/MyOrders/index.js +150 -150
  430. package/src/components/MyOrdersList/index.js +104 -104
  431. package/src/components/NewOrderNotification/index.js +30 -30
  432. package/src/components/OrderChange/index.js +128 -128
  433. package/src/components/OrderDetails/index.js +684 -684
  434. package/src/components/OrderList/index.js +800 -800
  435. package/src/components/OrderListGroups/index.js +1240 -1240
  436. package/src/components/OrderReview/index.js +180 -180
  437. package/src/components/OrderTypeControl/index.js +75 -75
  438. package/src/components/OrderVerticalList/index.js +422 -422
  439. package/src/components/OrdersControlFilters/index.js +75 -75
  440. package/src/components/OrdersDashboardComponents/Appointments/index.js +72 -72
  441. package/src/components/OrdersDashboardComponents/BusinessProductsListing/index.js +629 -629
  442. package/src/components/OrdersDashboardComponents/CheckPassword/index.js +177 -177
  443. package/src/components/OrdersDashboardComponents/CityList/index.js +98 -98
  444. package/src/components/OrdersDashboardComponents/CountryList/index.js +162 -162
  445. package/src/components/OrdersDashboardComponents/CustomOrderDetails/index.js +238 -238
  446. package/src/components/OrdersDashboardComponents/DashboardBusinessList/index.js +617 -617
  447. package/src/components/OrdersDashboardComponents/DashboardOrdersList/index.js +943 -943
  448. package/src/components/OrdersDashboardComponents/DriversList/index.js +448 -448
  449. package/src/components/OrdersDashboardComponents/ExportCSV/index.js +192 -192
  450. package/src/components/OrdersDashboardComponents/GiftCardsList/index.js +189 -189
  451. package/src/components/OrdersDashboardComponents/GoogleMapsApiKeySetting/index.js +77 -77
  452. package/src/components/OrdersDashboardComponents/LogisticInformation/index.js +97 -97
  453. package/src/components/OrdersDashboardComponents/Logistics/index.js +174 -174
  454. package/src/components/OrdersDashboardComponents/Messages/index.js +384 -384
  455. package/src/components/OrdersDashboardComponents/MetaFields/index.js +186 -186
  456. package/src/components/OrdersDashboardComponents/OrderDetails/index.js +404 -404
  457. package/src/components/OrdersDashboardComponents/OrderNotification/index.js +70 -70
  458. package/src/components/OrdersDashboardComponents/OrdersFilter/index.js +362 -362
  459. package/src/components/OrdersDashboardComponents/OrdersManage/index.js +873 -873
  460. package/src/components/OrdersDashboardComponents/PointsWalletLevels/index.js +123 -123
  461. package/src/components/OrdersDashboardComponents/ReviewCustomer/index.js +113 -113
  462. package/src/components/OrdersDashboardComponents/Schedule/index.js +315 -315
  463. package/src/components/OrdersDashboardComponents/SettingsList/index.js +298 -298
  464. package/src/components/OrdersDashboardComponents/UserFormDetails/index.js +463 -463
  465. package/src/components/OrdersDashboardComponents/UsersList/index.js +944 -944
  466. package/src/components/OrdersDashboardComponents/WebsocketStatus/index.js +77 -77
  467. package/src/components/OrdersDashboardComponents/index.js +57 -57
  468. package/src/components/PageBanner/index.js +107 -107
  469. package/src/components/PaymentOptionCash/index.js +74 -74
  470. package/src/components/PaymentOptionPaypal/index.js +146 -146
  471. package/src/components/PaymentOptionSquare/index.js +336 -336
  472. package/src/components/PaymentOptionStripe/index.js +289 -289
  473. package/src/components/PaymentOptionStripeDirect/index.js +116 -116
  474. package/src/components/PaymentOptionStripeRedirect/StripeRedirectForm/index.js +71 -71
  475. package/src/components/PaymentOptionStripeRedirect/index.js +122 -122
  476. package/src/components/PaymentOptionWallet/index.js +185 -185
  477. package/src/components/PaymentOptions/index.js +262 -262
  478. package/src/components/PaymethodList/index.js +119 -119
  479. package/src/components/PhoneAutocomplete/index.js +318 -318
  480. package/src/components/PlaceSpot/index.js +183 -183
  481. package/src/components/Popup/index.js +169 -169
  482. package/src/components/ProductComponent/index.js +269 -269
  483. package/src/components/ProductForm/index.js +1101 -1101
  484. package/src/components/ProductImages/index.js +64 -64
  485. package/src/components/ProductIngredient/index.js +72 -72
  486. package/src/components/ProductItemAccordion/index.js +72 -72
  487. package/src/components/ProductOption/index.js +42 -42
  488. package/src/components/ProductOptionSuboption/index.js +181 -181
  489. package/src/components/ProductShare/index.js +97 -97
  490. package/src/components/ProductsList/index.js +74 -74
  491. package/src/components/ProductsListing/index.js +166 -166
  492. package/src/components/ProfessionalInfo/index.js +156 -156
  493. package/src/components/PromotionsController/index.js +123 -123
  494. package/src/components/QueryLoginSpoonity/index.js +159 -159
  495. package/src/components/ReCaptcha/index.js +53 -53
  496. package/src/components/ResetPassword/index.js +111 -111
  497. package/src/components/ReviewCustomer/index.js +117 -117
  498. package/src/components/ReviewDriver/index.js +157 -157
  499. package/src/components/ReviewProduct/index.js +162 -162
  500. package/src/components/SearchOptions/index.js +69 -69
  501. package/src/components/Sessions/index.js +217 -217
  502. package/src/components/SignupForm/index.js +555 -555
  503. package/src/components/SingleBusinessCard/index.js +80 -80
  504. package/src/components/SingleOrderCard/index.js +160 -160
  505. package/src/components/SingleProductCard/index.js +130 -130
  506. package/src/components/SingleProfessionalCard/index.js +121 -121
  507. package/src/components/SmartAppBanner/index.js +71 -71
  508. package/src/components/StoreProductList/index.js +303 -303
  509. package/src/components/StripeElementsForm/CardForm/index.js +248 -248
  510. package/src/components/StripeElementsForm/index.js +78 -78
  511. package/src/components/UpsellingPage/index.js +120 -120
  512. package/src/components/UserFormDetails/index.js +742 -742
  513. package/src/components/UserVerification/index.js +242 -242
  514. package/src/components/WalletList/index.js +160 -160
  515. package/src/components/WebsocketStatus/index.js +80 -80
  516. package/src/components/WrapperGoogleMaps/index.js +67 -67
  517. package/src/constants/code-numbers.js +218 -218
  518. package/src/constants/timezones.js +427 -427
  519. package/src/contexts/ApiContext/index.js +59 -59
  520. package/src/contexts/BillingContext/index.js +28 -28
  521. package/src/contexts/BusinessContext/index.js +71 -71
  522. package/src/contexts/ConfigContext/index.js +217 -217
  523. package/src/contexts/CustomerContext/index.js +69 -69
  524. package/src/contexts/EventContext/index.js +31 -31
  525. package/src/contexts/LanguageContext/index.js +144 -144
  526. package/src/contexts/OptimizationLoadContext/index.js +95 -95
  527. package/src/contexts/OrderContext/index.js +1434 -1434
  528. package/src/contexts/OrderingContext/index.js +86 -86
  529. package/src/contexts/OrderingThemeContext/index.js +107 -107
  530. package/src/contexts/ProductContext/index.js +62 -62
  531. package/src/contexts/SessionContext/index.js +172 -172
  532. package/src/contexts/SiteContext/index.js +79 -79
  533. package/src/contexts/ToastContext/index.js +42 -42
  534. package/src/contexts/UtilsContext/index.js +352 -352
  535. package/src/contexts/ValidationsFieldsContext/index.js +65 -65
  536. package/src/contexts/WebsocketContext/index.js +91 -91
  537. package/src/contexts/WebsocketContext/socket.js +92 -92
  538. package/src/index.js +371 -371
  539. package/src/utils/index.js +32 -32
  540. package/src/webStrategy/index.js +18 -18
  541. package/webpack.dev.js +41 -41
  542. package/webpack.prod.js +64 -64
  543. package/_bundles/ordering-component.949cbfb0cbd9c20d005d.js +0 -2
  544. /package/_bundles/{2.ordering-component.949cbfb0cbd9c20d005d.js → 2.ordering-component.94a28b3a5bfb4d729a1b.js} +0 -0
  545. /package/_bundles/{4.ordering-component.949cbfb0cbd9c20d005d.js → 4.ordering-component.94a28b3a5bfb4d729a1b.js} +0 -0
  546. /package/_bundles/{5.ordering-component.949cbfb0cbd9c20d005d.js → 5.ordering-component.94a28b3a5bfb4d729a1b.js} +0 -0
  547. /package/_bundles/{6.ordering-component.949cbfb0cbd9c20d005d.js → 6.ordering-component.94a28b3a5bfb4d729a1b.js} +0 -0
  548. /package/_bundles/{7.ordering-component.949cbfb0cbd9c20d005d.js.LICENSE.txt → 7.ordering-component.94a28b3a5bfb4d729a1b.js.LICENSE.txt} +0 -0
  549. /package/_bundles/{8.ordering-component.949cbfb0cbd9c20d005d.js → 8.ordering-component.94a28b3a5bfb4d729a1b.js} +0 -0
  550. /package/_bundles/{ordering-component.949cbfb0cbd9c20d005d.js.LICENSE.txt → ordering-component.94a28b3a5bfb4d729a1b.js.LICENSE.txt} +0 -0
@@ -1,336 +1,336 @@
1
- import React, { useEffect, useState } from 'react'
2
- import propTypes from 'prop-types'
3
- import { useLanguage } from '../../contexts/LanguageContext'
4
- import { useSession } from '../../contexts/SessionContext'
5
- import { useOrder } from '../../contexts/OrderContext'
6
-
7
- export const PaymentOptionSquare = (props) => {
8
- const {
9
- UIComponent,
10
- cartTotal,
11
- onPlaceOrderClick,
12
- body,
13
- data,
14
- setCreateOrder
15
- } = props
16
-
17
- const [, t] = useLanguage()
18
- const [{ user }] = useSession()
19
- const [, { confirmCart, placeCart }] = useOrder()
20
- const [isSquareReady, setIsSquareReady] = useState(false)
21
- const [methodSelected, setMethodSelected] = useState('')
22
- const [isLoading, setIsLoading] = useState(true)
23
- const [isLoadingMethod, setIsLoadingMethod] = useState(false)
24
- const [isLoadingPlace, setIsLoadingPlace] = useState(false)
25
-
26
- const [alertState, setAlertState] = useState({ open: false, content: [] })
27
- const [payments, setPayments] = useState(null)
28
- const [paymentRequest, setPaymentRequest] = useState({})
29
- const [digitalWalletPaymethod, setDigitalWalletPaymethod] = useState('')
30
- const paymentMethods = [
31
- { name: t('CARD_PAYMENTS', 'Card payments'), value: 'card_payments' },
32
- { name: t('ACH_BANK_TRANSFER', 'ACH Back transfer'), value: 'ach_bank_transfer' },
33
- // { name: t('DIGITAL_WALLETS', 'Digital Wallets'), value: 'digital_wallets' },
34
- { name: t('GIFT_CARDS', 'Gift Cards'), value: 'gift_cards' }
35
- ]
36
-
37
- const params = {
38
- paymethod_id: body.paymethod_id,
39
- amount: body.amount,
40
- delivery_zone_id: body.delivery_zone_id
41
- }
42
-
43
- useEffect(() => {
44
- const script = document.createElement('script')
45
- script.type = 'text/javascript'
46
- script.src = 'https://sandbox.web.squarecdn.com/v1/square.js'
47
- script.async = true
48
- script.onload = () => {
49
- setIsLoading(false)
50
- setIsSquareReady(true)
51
- initPaymentObject()
52
- }
53
- script.onerror = () => {
54
- setIsLoading(false)
55
- throw new Error('Square could not be loaded.')
56
- }
57
-
58
- document.body.appendChild(script)
59
-
60
- return () => {
61
- script.onload = null
62
- const cardButton = document.getElementById('card-button')
63
- cardButton && cardButton.removeEventListener('click')
64
- const achButton = document.getElementById('ach-button')
65
- achButton && achButton.removeEventListener('click')
66
- const giftCardButton = document.getElementById('gift-card-button')
67
- giftCardButton && giftCardButton.removeEventListener('click')
68
- }
69
- }, [])
70
-
71
- const initPaymentObject = async () => {
72
- const payments = window.Square.payments(
73
- data?.application_id,
74
- data?.location_id
75
- )
76
- setPayments(payments)
77
- }
78
-
79
- const initCardPayments = async () => {
80
- setIsLoadingMethod(true)
81
- const card = await payments.card()
82
- await card.attach('#card-container')
83
- setIsLoadingMethod(false)
84
-
85
- const eventHandler = async (e) => {
86
- e.preventDefault()
87
-
88
- setIsLoadingPlace(true)
89
- setCreateOrder && setCreateOrder(true)
90
- try {
91
- const result = await card.tokenize()
92
- if (result.status === 'OK') {
93
- params.paymethod_data = { token: result.token }
94
- const response = await placeCart(body.cartUuid, params)
95
- if (!response?.error && response?.result) {
96
- onPlaceOrderClick(null, null, response?.result)
97
- return
98
- }
99
- if (response?.result) {
100
- setAlertState({
101
- open: true,
102
- content: response?.result
103
- })
104
- }
105
- }
106
- if (result.status === 'INVALID') {
107
- setAlertState({
108
- open: true,
109
- content: result.errors.map(() => `ValidationError: ${result.errors[0].field}: ${result.errors[0].message}`)
110
- })
111
- }
112
- } catch (e) {
113
- setAlertState({
114
- open: true,
115
- content: e.message
116
- })
117
- }
118
- setCreateOrder && setCreateOrder(false)
119
- setIsLoadingPlace(false)
120
- }
121
-
122
- const cardButton = document.getElementById('card-button')
123
- cardButton.addEventListener('click', eventHandler)
124
- }
125
-
126
- const initACHBankTransfer = async () => {
127
- setIsLoadingMethod(true)
128
- const ach = await payments.ach()
129
- setIsLoadingMethod(false)
130
-
131
- const eventHandler = async (e) => {
132
- e.preventDefault()
133
- try {
134
- const result = await ach.tokenize({
135
- accountHolderName: user?.name
136
- })
137
- if (result.status === 'OK') {
138
- setIsLoadingPlace(true)
139
- setCreateOrder && setCreateOrder(true)
140
- params.paymethod_data = { token: result.token }
141
- const response = await placeCart(body.cartUuid, params)
142
- if (!response?.error && response?.result) {
143
- const resultConfirm = await confirmCart(body.cartUuid)
144
- if (!resultConfirm?.error && resultConfirm?.result) {
145
- onPlaceOrderClick(null, null, resultConfirm?.result)
146
- return
147
- }
148
- setAlertState({
149
- open: true,
150
- content: resultConfirm
151
- })
152
- return
153
- }
154
- if (response?.result) {
155
- setAlertState({
156
- open: true,
157
- content: response?.result
158
- })
159
- }
160
- }
161
- } catch (e) {
162
- setAlertState({
163
- open: true,
164
- content: e.message
165
- })
166
- }
167
- setIsLoadingPlace(false)
168
- setCreateOrder && setCreateOrder(false)
169
- }
170
- const achButton = document.getElementById('ach-button')
171
- achButton.addEventListener('click', eventHandler)
172
- }
173
-
174
- const initGiftCard = async () => {
175
- setIsLoadingMethod(true)
176
- const giftCard = await payments.giftCard()
177
- await giftCard.attach('#gift-card-container')
178
- setIsLoadingMethod(false)
179
- const eventHandler = async (e) => {
180
- e.preventDefault()
181
- setIsLoadingPlace(true)
182
- setCreateOrder && setCreateOrder(true)
183
- try {
184
- const result = await giftCard.tokenize()
185
- if (result.status === 'OK') {
186
- params.paymethod_data = { token: result.token }
187
- const response = await placeCart(body.cartUuid, params)
188
- if (!response?.error && response?.result) {
189
- onPlaceOrderClick(null, null, response?.result)
190
- return
191
- }
192
- if (response?.result) {
193
- setAlertState({
194
- open: true,
195
- content: response?.result
196
- })
197
- }
198
- }
199
- } catch (e) {
200
- setAlertState({
201
- open: true,
202
- content: e.message
203
- })
204
- }
205
- setIsLoadingPlace(false)
206
- setCreateOrder && setCreateOrder(false)
207
- }
208
- const giftCardButton = document.getElementById('gift-card-button')
209
- giftCardButton.addEventListener('click', eventHandler)
210
- }
211
-
212
- const initDigitalWallets = async () => {
213
- // setIsLoadingMethod(true)
214
- const paymentRequest = payments.paymentRequest({
215
- countryCode: 'US',
216
- currencyCode: 'USD',
217
- total: {
218
- amount: cartTotal.toString(),
219
- label: t('TOTAL', 'Total')
220
- }
221
- })
222
- console.log(paymentRequest)
223
- setPaymentRequest(paymentRequest)
224
- }
225
-
226
- const applePay = async () => {
227
- const applePay = await payments.applePay(paymentRequest)
228
- console.log(applePay)
229
- setIsLoadingMethod(false)
230
- const eventHandler = async (e) => {
231
- e.preventDefault()
232
- try {
233
- const result = await applePay.tokenize()
234
- if (result.status === 'OK') {
235
- params.paymethod_data = { token: result.token }
236
- const { error, result: resultApi } = await placeCart(body.cartUuid, params)
237
- console.log(resultApi)
238
- if (!error) {
239
- onPlaceOrderClick(null, null, resultApi)
240
- }
241
- }
242
- } catch (e) {
243
- setAlertState({
244
- open: true,
245
- content: e.message
246
- })
247
- }
248
- }
249
- const applePayButtonTarget = document.getElementById('apple-pay-button')
250
- applePayButtonTarget.addEventListener('click', eventHandler)
251
- }
252
-
253
- const googlePay = async () => {
254
- const googlePay = await payments.googlePay(paymentRequest)
255
- console.log(googlePay)
256
- await googlePay.attach('#google-pay-button')
257
-
258
- setIsLoadingMethod(false)
259
- const eventHandler = async (e) => {
260
- e.preventDefault()
261
- try {
262
- const result = await googlePay.tokenize()
263
- if (result.status === 'OK') {
264
- params.paymethod_data = { token: result.token }
265
- const { error, result: resultApi } = await placeCart(body.cartUuid, params)
266
- console.log(resultApi)
267
- if (!error) {
268
- onPlaceOrderClick(null, null, resultApi)
269
- }
270
- }
271
- } catch (e) {
272
- setAlertState({
273
- open: true,
274
- content: e.message
275
- })
276
- }
277
- }
278
- const googlePayButtonTarget = document.getElementById('google-pay-button')
279
- googlePayButtonTarget.addEventListener('click', eventHandler)
280
- }
281
-
282
- const handleChangeMethodSelected = (method) => {
283
- setDigitalWalletPaymethod(null)
284
- setMethodSelected(method)
285
- method === 'card_payments'
286
- ? initCardPayments()
287
- : method === 'ach_bank_transfer'
288
- ? initACHBankTransfer()
289
- : method === 'digital_wallets'
290
- ? initDigitalWallets()
291
- : initGiftCard()
292
- }
293
-
294
- useEffect(() => {
295
- if (methodSelected !== 'digital_wallets') return
296
- if (digitalWalletPaymethod === 'apple_pay') applePay()
297
- if (digitalWalletPaymethod === 'google_pay') googlePay()
298
- }, [digitalWalletPaymethod])
299
-
300
- return (
301
- <>
302
- {UIComponent && (
303
- <UIComponent
304
- {...props}
305
- isSquareReady={isSquareReady}
306
- isLoading={isLoading}
307
- isLoadingMethod={isLoadingMethod}
308
- paymentMethods={paymentMethods}
309
- methodSelected={methodSelected}
310
- alertState={alertState}
311
- digitalWalletPaymethod={digitalWalletPaymethod}
312
- initCardPayments={initCardPayments}
313
- setDigitalWalletPaymethod={setDigitalWalletPaymethod}
314
- handleChangeMethodSelected={handleChangeMethodSelected}
315
- setAlertState={setAlertState}
316
- applePay={applePay}
317
- isLoadingPlace={isLoadingPlace}
318
- />
319
- )}
320
- </>
321
- )
322
- }
323
-
324
- PaymentOptionSquare.propTypes = {
325
- /**
326
- * UI Component, this must be containt all graphic elements and use parent props
327
- */
328
- UIComponent: propTypes.elementType
329
- }
330
-
331
- PaymentOptionSquare.defaultProps = {
332
- beforeComponents: [],
333
- afterComponents: [],
334
- beforeElements: [],
335
- afterElements: []
336
- }
1
+ import React, { useEffect, useState } from 'react'
2
+ import propTypes from 'prop-types'
3
+ import { useLanguage } from '../../contexts/LanguageContext'
4
+ import { useSession } from '../../contexts/SessionContext'
5
+ import { useOrder } from '../../contexts/OrderContext'
6
+
7
+ export const PaymentOptionSquare = (props) => {
8
+ const {
9
+ UIComponent,
10
+ cartTotal,
11
+ onPlaceOrderClick,
12
+ body,
13
+ data,
14
+ setCreateOrder
15
+ } = props
16
+
17
+ const [, t] = useLanguage()
18
+ const [{ user }] = useSession()
19
+ const [, { confirmCart, placeCart }] = useOrder()
20
+ const [isSquareReady, setIsSquareReady] = useState(false)
21
+ const [methodSelected, setMethodSelected] = useState('')
22
+ const [isLoading, setIsLoading] = useState(true)
23
+ const [isLoadingMethod, setIsLoadingMethod] = useState(false)
24
+ const [isLoadingPlace, setIsLoadingPlace] = useState(false)
25
+
26
+ const [alertState, setAlertState] = useState({ open: false, content: [] })
27
+ const [payments, setPayments] = useState(null)
28
+ const [paymentRequest, setPaymentRequest] = useState({})
29
+ const [digitalWalletPaymethod, setDigitalWalletPaymethod] = useState('')
30
+ const paymentMethods = [
31
+ { name: t('CARD_PAYMENTS', 'Card payments'), value: 'card_payments' },
32
+ { name: t('ACH_BANK_TRANSFER', 'ACH Back transfer'), value: 'ach_bank_transfer' },
33
+ // { name: t('DIGITAL_WALLETS', 'Digital Wallets'), value: 'digital_wallets' },
34
+ { name: t('GIFT_CARDS', 'Gift Cards'), value: 'gift_cards' }
35
+ ]
36
+
37
+ const params = {
38
+ paymethod_id: body.paymethod_id,
39
+ amount: body.amount,
40
+ delivery_zone_id: body.delivery_zone_id
41
+ }
42
+
43
+ useEffect(() => {
44
+ const script = document.createElement('script')
45
+ script.type = 'text/javascript'
46
+ script.src = 'https://sandbox.web.squarecdn.com/v1/square.js'
47
+ script.async = true
48
+ script.onload = () => {
49
+ setIsLoading(false)
50
+ setIsSquareReady(true)
51
+ initPaymentObject()
52
+ }
53
+ script.onerror = () => {
54
+ setIsLoading(false)
55
+ throw new Error('Square could not be loaded.')
56
+ }
57
+
58
+ document.body.appendChild(script)
59
+
60
+ return () => {
61
+ script.onload = null
62
+ const cardButton = document.getElementById('card-button')
63
+ cardButton && cardButton.removeEventListener('click')
64
+ const achButton = document.getElementById('ach-button')
65
+ achButton && achButton.removeEventListener('click')
66
+ const giftCardButton = document.getElementById('gift-card-button')
67
+ giftCardButton && giftCardButton.removeEventListener('click')
68
+ }
69
+ }, [])
70
+
71
+ const initPaymentObject = async () => {
72
+ const payments = window.Square.payments(
73
+ data?.application_id,
74
+ data?.location_id
75
+ )
76
+ setPayments(payments)
77
+ }
78
+
79
+ const initCardPayments = async () => {
80
+ setIsLoadingMethod(true)
81
+ const card = await payments.card()
82
+ await card.attach('#card-container')
83
+ setIsLoadingMethod(false)
84
+
85
+ const eventHandler = async (e) => {
86
+ e.preventDefault()
87
+
88
+ setIsLoadingPlace(true)
89
+ setCreateOrder && setCreateOrder(true)
90
+ try {
91
+ const result = await card.tokenize()
92
+ if (result.status === 'OK') {
93
+ params.paymethod_data = { token: result.token }
94
+ const response = await placeCart(body.cartUuid, params)
95
+ if (!response?.error && response?.result) {
96
+ onPlaceOrderClick(null, null, response?.result)
97
+ return
98
+ }
99
+ if (response?.result) {
100
+ setAlertState({
101
+ open: true,
102
+ content: response?.result
103
+ })
104
+ }
105
+ }
106
+ if (result.status === 'INVALID') {
107
+ setAlertState({
108
+ open: true,
109
+ content: result.errors.map(() => `ValidationError: ${result.errors[0].field}: ${result.errors[0].message}`)
110
+ })
111
+ }
112
+ } catch (e) {
113
+ setAlertState({
114
+ open: true,
115
+ content: e.message
116
+ })
117
+ }
118
+ setCreateOrder && setCreateOrder(false)
119
+ setIsLoadingPlace(false)
120
+ }
121
+
122
+ const cardButton = document.getElementById('card-button')
123
+ cardButton.addEventListener('click', eventHandler)
124
+ }
125
+
126
+ const initACHBankTransfer = async () => {
127
+ setIsLoadingMethod(true)
128
+ const ach = await payments.ach()
129
+ setIsLoadingMethod(false)
130
+
131
+ const eventHandler = async (e) => {
132
+ e.preventDefault()
133
+ try {
134
+ const result = await ach.tokenize({
135
+ accountHolderName: user?.name
136
+ })
137
+ if (result.status === 'OK') {
138
+ setIsLoadingPlace(true)
139
+ setCreateOrder && setCreateOrder(true)
140
+ params.paymethod_data = { token: result.token }
141
+ const response = await placeCart(body.cartUuid, params)
142
+ if (!response?.error && response?.result) {
143
+ const resultConfirm = await confirmCart(body.cartUuid)
144
+ if (!resultConfirm?.error && resultConfirm?.result) {
145
+ onPlaceOrderClick(null, null, resultConfirm?.result)
146
+ return
147
+ }
148
+ setAlertState({
149
+ open: true,
150
+ content: resultConfirm
151
+ })
152
+ return
153
+ }
154
+ if (response?.result) {
155
+ setAlertState({
156
+ open: true,
157
+ content: response?.result
158
+ })
159
+ }
160
+ }
161
+ } catch (e) {
162
+ setAlertState({
163
+ open: true,
164
+ content: e.message
165
+ })
166
+ }
167
+ setIsLoadingPlace(false)
168
+ setCreateOrder && setCreateOrder(false)
169
+ }
170
+ const achButton = document.getElementById('ach-button')
171
+ achButton.addEventListener('click', eventHandler)
172
+ }
173
+
174
+ const initGiftCard = async () => {
175
+ setIsLoadingMethod(true)
176
+ const giftCard = await payments.giftCard()
177
+ await giftCard.attach('#gift-card-container')
178
+ setIsLoadingMethod(false)
179
+ const eventHandler = async (e) => {
180
+ e.preventDefault()
181
+ setIsLoadingPlace(true)
182
+ setCreateOrder && setCreateOrder(true)
183
+ try {
184
+ const result = await giftCard.tokenize()
185
+ if (result.status === 'OK') {
186
+ params.paymethod_data = { token: result.token }
187
+ const response = await placeCart(body.cartUuid, params)
188
+ if (!response?.error && response?.result) {
189
+ onPlaceOrderClick(null, null, response?.result)
190
+ return
191
+ }
192
+ if (response?.result) {
193
+ setAlertState({
194
+ open: true,
195
+ content: response?.result
196
+ })
197
+ }
198
+ }
199
+ } catch (e) {
200
+ setAlertState({
201
+ open: true,
202
+ content: e.message
203
+ })
204
+ }
205
+ setIsLoadingPlace(false)
206
+ setCreateOrder && setCreateOrder(false)
207
+ }
208
+ const giftCardButton = document.getElementById('gift-card-button')
209
+ giftCardButton.addEventListener('click', eventHandler)
210
+ }
211
+
212
+ const initDigitalWallets = async () => {
213
+ // setIsLoadingMethod(true)
214
+ const paymentRequest = payments.paymentRequest({
215
+ countryCode: 'US',
216
+ currencyCode: 'USD',
217
+ total: {
218
+ amount: cartTotal.toString(),
219
+ label: t('TOTAL', 'Total')
220
+ }
221
+ })
222
+ console.log(paymentRequest)
223
+ setPaymentRequest(paymentRequest)
224
+ }
225
+
226
+ const applePay = async () => {
227
+ const applePay = await payments.applePay(paymentRequest)
228
+ console.log(applePay)
229
+ setIsLoadingMethod(false)
230
+ const eventHandler = async (e) => {
231
+ e.preventDefault()
232
+ try {
233
+ const result = await applePay.tokenize()
234
+ if (result.status === 'OK') {
235
+ params.paymethod_data = { token: result.token }
236
+ const { error, result: resultApi } = await placeCart(body.cartUuid, params)
237
+ console.log(resultApi)
238
+ if (!error) {
239
+ onPlaceOrderClick(null, null, resultApi)
240
+ }
241
+ }
242
+ } catch (e) {
243
+ setAlertState({
244
+ open: true,
245
+ content: e.message
246
+ })
247
+ }
248
+ }
249
+ const applePayButtonTarget = document.getElementById('apple-pay-button')
250
+ applePayButtonTarget.addEventListener('click', eventHandler)
251
+ }
252
+
253
+ const googlePay = async () => {
254
+ const googlePay = await payments.googlePay(paymentRequest)
255
+ console.log(googlePay)
256
+ await googlePay.attach('#google-pay-button')
257
+
258
+ setIsLoadingMethod(false)
259
+ const eventHandler = async (e) => {
260
+ e.preventDefault()
261
+ try {
262
+ const result = await googlePay.tokenize()
263
+ if (result.status === 'OK') {
264
+ params.paymethod_data = { token: result.token }
265
+ const { error, result: resultApi } = await placeCart(body.cartUuid, params)
266
+ console.log(resultApi)
267
+ if (!error) {
268
+ onPlaceOrderClick(null, null, resultApi)
269
+ }
270
+ }
271
+ } catch (e) {
272
+ setAlertState({
273
+ open: true,
274
+ content: e.message
275
+ })
276
+ }
277
+ }
278
+ const googlePayButtonTarget = document.getElementById('google-pay-button')
279
+ googlePayButtonTarget.addEventListener('click', eventHandler)
280
+ }
281
+
282
+ const handleChangeMethodSelected = (method) => {
283
+ setDigitalWalletPaymethod(null)
284
+ setMethodSelected(method)
285
+ method === 'card_payments'
286
+ ? initCardPayments()
287
+ : method === 'ach_bank_transfer'
288
+ ? initACHBankTransfer()
289
+ : method === 'digital_wallets'
290
+ ? initDigitalWallets()
291
+ : initGiftCard()
292
+ }
293
+
294
+ useEffect(() => {
295
+ if (methodSelected !== 'digital_wallets') return
296
+ if (digitalWalletPaymethod === 'apple_pay') applePay()
297
+ if (digitalWalletPaymethod === 'google_pay') googlePay()
298
+ }, [digitalWalletPaymethod])
299
+
300
+ return (
301
+ <>
302
+ {UIComponent && (
303
+ <UIComponent
304
+ {...props}
305
+ isSquareReady={isSquareReady}
306
+ isLoading={isLoading}
307
+ isLoadingMethod={isLoadingMethod}
308
+ paymentMethods={paymentMethods}
309
+ methodSelected={methodSelected}
310
+ alertState={alertState}
311
+ digitalWalletPaymethod={digitalWalletPaymethod}
312
+ initCardPayments={initCardPayments}
313
+ setDigitalWalletPaymethod={setDigitalWalletPaymethod}
314
+ handleChangeMethodSelected={handleChangeMethodSelected}
315
+ setAlertState={setAlertState}
316
+ applePay={applePay}
317
+ isLoadingPlace={isLoadingPlace}
318
+ />
319
+ )}
320
+ </>
321
+ )
322
+ }
323
+
324
+ PaymentOptionSquare.propTypes = {
325
+ /**
326
+ * UI Component, this must be containt all graphic elements and use parent props
327
+ */
328
+ UIComponent: propTypes.elementType
329
+ }
330
+
331
+ PaymentOptionSquare.defaultProps = {
332
+ beforeComponents: [],
333
+ afterComponents: [],
334
+ beforeElements: [],
335
+ afterElements: []
336
+ }