ordering-ui-external 1.0.1 → 1.1.2

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 (370) hide show
  1. package/_bundles/{0.ordering-ui.f64ae9230411e0edb7d6.js → 0.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  2. package/_bundles/{1.ordering-ui.f64ae9230411e0edb7d6.js → 1.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  3. package/_bundles/{3.ordering-ui.f64ae9230411e0edb7d6.js → 3.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  4. package/_bundles/{4.ordering-ui.f64ae9230411e0edb7d6.js → 4.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  5. package/_bundles/{5.ordering-ui.f64ae9230411e0edb7d6.js → 5.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  6. package/_bundles/{6.ordering-ui.f64ae9230411e0edb7d6.js → 6.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  7. package/_bundles/{7.ordering-ui.f64ae9230411e0edb7d6.js → 7.ordering-ui.61d857607dc95f3ab08c.js} +2 -2
  8. package/_bundles/{7.ordering-ui.f64ae9230411e0edb7d6.js.LICENSE.txt → 7.ordering-ui.61d857607dc95f3ab08c.js.LICENSE.txt} +0 -0
  9. package/_bundles/{8.ordering-ui.f64ae9230411e0edb7d6.js → 8.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  10. package/_bundles/{9.ordering-ui.f64ae9230411e0edb7d6.js → 9.ordering-ui.61d857607dc95f3ab08c.js} +1 -1
  11. package/_bundles/ordering-ui.61d857607dc95f3ab08c.js +2 -0
  12. package/_bundles/{ordering-ui.f64ae9230411e0edb7d6.js.LICENSE.txt → ordering-ui.61d857607dc95f3ab08c.js.LICENSE.txt} +0 -0
  13. package/_modules/components/BusinessBasicInformation/index.js +17 -7
  14. package/_modules/components/BusinessProductsList/index.js +9 -9
  15. package/_modules/components/BusinessProductsList/layouts/groceries/index.js +9 -9
  16. package/_modules/components/Checkout/index.js +2 -1
  17. package/_modules/components/ForgotPasswordForm/index.js +4 -1
  18. package/_modules/components/LoginForm/index.js +4 -1
  19. package/_modules/components/OrderDetails/index.js +30 -13
  20. package/_modules/components/PaymentOptionSquare/index.js +6 -4
  21. package/_modules/components/PaymentOptionSquare/styles.js +13 -6
  22. package/_modules/components/PaymentOptions/index.js +6 -3
  23. package/_modules/components/ProductItemAccordion/index.js +7 -2
  24. package/_modules/components/RenderProductsLayout/SearchProducts/index.js +6 -2
  25. package/_modules/components/RenderProductsLayout/index.js +24 -34
  26. package/_modules/components/SignUpForm/index.js +4 -1
  27. package/_modules/components/SingleProductCard/index.js +2 -2
  28. package/_modules/components/TaxInformation/index.js +3 -5
  29. package/_modules/components/UserFormDetails/index.js +23 -7
  30. package/_modules/components/UserProfileForm/ProfileOptions/index.js +19 -1
  31. package/_modules/components/UserProfileForm/index.js +28 -6
  32. package/_modules/components/UserProfileForm/styles.js +1 -1
  33. package/_modules/hooks/useCountdownTimer.js +1 -1
  34. package/_modules/index.js +78 -0
  35. package/_modules/themes/callcenterOriginal/src/components/BusinessProductsList/layouts/groceries/styles.js +1 -1
  36. package/_modules/themes/callcenterOriginal/src/components/BusinessProductsList/styles.js +1 -1
  37. package/_modules/themes/callcenterOriginal/src/components/ForgotPasswordForm/index.js +4 -1
  38. package/_modules/themes/callcenterOriginal/src/components/LoginForm/index.js +4 -1
  39. package/_modules/themes/callcenterOriginal/src/components/SignUpBusiness/index.js +4 -1
  40. package/_modules/themes/callcenterOriginal/src/components/SignUpForm/index.js +4 -1
  41. package/_modules/themes/callcenterOriginal/src/components/UserFormDetails/index.js +4 -1
  42. package/_modules/themes/eight/src/components/BusinessProductsList/index.js +9 -9
  43. package/_modules/themes/eight/src/components/LoginForm/index.js +4 -1
  44. package/_modules/themes/eight/src/components/SignUpForm/index.js +4 -1
  45. package/_modules/themes/eight/src/components/SingleProductCard/index.js +2 -2
  46. package/_modules/themes/five/index.js +50 -2
  47. package/_modules/themes/five/src/components/AddressDetails/index.js +2 -20
  48. package/_modules/themes/five/src/components/AddressForm/index.js +18 -6
  49. package/_modules/themes/five/src/components/AddressForm/styles.js +1 -1
  50. package/_modules/themes/five/src/components/AddressList/index.js +24 -11
  51. package/_modules/themes/five/src/components/AddressList/styles.js +11 -7
  52. package/_modules/themes/five/src/components/BusinessInformation/index.js +11 -4
  53. package/_modules/themes/five/src/components/BusinessItemAccordion/index.js +19 -4
  54. package/_modules/themes/five/src/components/BusinessItemAccordion/styles.js +30 -4
  55. package/_modules/themes/five/src/components/BusinessListingSearch/index.js +64 -3
  56. package/_modules/themes/five/src/components/BusinessPreorder/index.js +5 -3
  57. package/_modules/themes/five/src/components/BusinessPreorder/styles.js +1 -1
  58. package/_modules/themes/five/src/components/BusinessProductsCategories/index.js +87 -54
  59. package/_modules/themes/five/src/components/BusinessProductsCategories/styles.js +1 -1
  60. package/_modules/themes/five/src/components/BusinessProductsList/layouts/groceries/index.js +2 -1
  61. package/_modules/themes/five/src/components/BusinessProductsList/layouts/groceries/styles.js +13 -10
  62. package/_modules/themes/five/src/components/BusinessProductsList/styles.js +3 -3
  63. package/_modules/themes/five/src/components/BusinessReviews/index.js +24 -30
  64. package/_modules/themes/five/src/components/BusinessesListing/index.js +22 -5
  65. package/_modules/themes/five/src/components/BusinessesListing/layouts/AppointmentsBusinessListing/index.js +23 -5
  66. package/_modules/themes/five/src/components/BusinessesListing/layouts/AppointmentsBusinessListing/styles.js +3 -3
  67. package/_modules/themes/five/src/components/Cart/index.js +28 -9
  68. package/_modules/themes/five/src/components/Cart/styles.js +4 -4
  69. package/_modules/themes/five/src/components/CartContent/index.js +11 -24
  70. package/_modules/themes/five/src/components/CartPopover/index.js +44 -4
  71. package/_modules/themes/five/src/components/CartPopover/styles.js +13 -3
  72. package/_modules/themes/five/src/components/Checkout/index.js +81 -30
  73. package/_modules/themes/five/src/components/Header/index.js +1 -5
  74. package/_modules/themes/five/src/components/HomeHero/layouts/KioskHomeHero/index.js +2 -1
  75. package/_modules/themes/five/src/components/HomeHero/layouts/KioskHomeHero/styles.js +1 -1
  76. package/_modules/themes/five/src/components/HorizontalOrdersLayout/index.js +4 -6
  77. package/_modules/themes/five/src/components/HorizontalOrdersLayout/styles.js +5 -5
  78. package/_modules/themes/five/src/components/LoginForm/styles.js +29 -29
  79. package/_modules/themes/five/src/components/Modal/index.js +5 -0
  80. package/_modules/themes/five/src/components/Modal/styles.js +20 -15
  81. package/_modules/themes/five/src/components/MomentControl/Layouts/CustomLayout/styles.js +4 -4
  82. package/_modules/themes/five/src/components/NotNetworkConnectivity/index.js +70 -5
  83. package/_modules/themes/five/src/components/OrderDetails/ActionsSection.js +5 -3
  84. package/_modules/themes/five/src/components/OrderDetails/OrderBillSection.js +3 -1
  85. package/_modules/themes/five/src/components/OrderDetails/index.js +121 -39
  86. package/_modules/themes/five/src/components/OrderDetails/layouts/Kiosk/index.js +8 -4
  87. package/_modules/themes/five/src/components/OrderDetails/styles.js +26 -18
  88. package/_modules/themes/five/src/components/OrderProgress/index.js +1 -0
  89. package/_modules/themes/five/src/components/OrdersOption/index.js +6 -0
  90. package/_modules/themes/five/src/components/OrdersOption/styles.js +13 -13
  91. package/_modules/themes/five/src/components/PaymentOptionWallet/index.js +6 -2
  92. package/_modules/themes/five/src/components/PaymentOptions/index.js +25 -3
  93. package/_modules/themes/five/src/components/PhoneAutocomplete/index.js +1 -1
  94. package/_modules/themes/five/src/components/ProductForm/index.js +108 -43
  95. package/_modules/themes/five/src/components/ProductForm/styles.js +19 -21
  96. package/_modules/themes/five/src/components/ProductItemAccordion/index.js +11 -3
  97. package/_modules/themes/five/src/components/ProductOption/index.js +3 -1
  98. package/_modules/themes/five/src/components/ProductOption/styles.js +1 -1
  99. package/_modules/themes/five/src/components/ProfessionalProfile/styles.js +1 -1
  100. package/_modules/themes/five/src/components/ReviewDriver/index.js +330 -0
  101. package/_modules/themes/five/src/components/ReviewDriver/styles.js +137 -0
  102. package/_modules/themes/five/src/components/ReviewOrder/index.js +342 -0
  103. package/_modules/themes/five/src/components/ReviewOrder/styles.js +141 -0
  104. package/_modules/themes/five/src/components/ReviewProduct/index.js +329 -0
  105. package/_modules/themes/five/src/components/ReviewProduct/styles.js +111 -0
  106. package/_modules/themes/five/src/components/ReviewTrigger/index.js +130 -0
  107. package/_modules/themes/five/src/components/ReviewTrigger/styles.js +84 -0
  108. package/_modules/themes/five/src/components/SearchBar/index.js +4 -1
  109. package/_modules/themes/five/src/components/SearchProducts/index.js +1 -0
  110. package/_modules/themes/five/src/components/ServiceForm/index.js +93 -26
  111. package/_modules/themes/five/src/components/ServiceForm/styles.js +38 -14
  112. package/_modules/themes/five/src/components/SignUpBusiness/index.js +4 -1
  113. package/_modules/themes/five/src/components/SignUpDriver/index.js +4 -1
  114. package/_modules/themes/five/src/components/SignUpForm/styles.js +12 -12
  115. package/_modules/themes/five/src/components/SingleOrderCard/index.js +216 -26
  116. package/_modules/themes/five/src/components/SingleOrderCard/styles.js +7 -3
  117. package/_modules/themes/five/src/components/TaxInformation/index.js +3 -5
  118. package/_modules/themes/five/src/components/UserDetails/index.js +132 -9
  119. package/_modules/themes/five/src/components/UserDetails/styles.js +3 -3
  120. package/_modules/themes/five/src/components/UserFormDetails/index.js +69 -20
  121. package/_modules/themes/five/src/components/UserPopover/index.js +13 -7
  122. package/_modules/themes/five/src/components/UserProfileForm/ProfileOptions/index.js +19 -1
  123. package/_modules/themes/five/src/components/UserProfileForm/index.js +119 -23
  124. package/_modules/themes/five/src/components/VerifyCodeForm/index.js +86 -0
  125. package/_modules/themes/five/src/components/VerifyCodeForm/styles.js +32 -0
  126. package/_modules/themes/four/src/components/AccordionDropdown/index.js +46 -0
  127. package/_modules/themes/four/src/components/AccordionDropdown/styles.js +31 -0
  128. package/_modules/themes/four/src/components/BusinessBasicInformation/index.js +2 -5
  129. package/_modules/themes/four/src/components/BusinessProductsCategories/index.js +2 -1
  130. package/_modules/themes/four/src/components/BusinessProductsCategories/layouts/groceries/index.js +128 -0
  131. package/_modules/themes/four/src/components/BusinessProductsCategories/layouts/groceries/styles.js +43 -0
  132. package/_modules/themes/four/src/components/BusinessProductsList/layouts/groceries/index.js +235 -0
  133. package/_modules/themes/four/src/components/BusinessProductsList/layouts/groceries/styles.js +52 -0
  134. package/_modules/themes/four/src/components/BusinessProductsListing/index.js +131 -108
  135. package/_modules/themes/four/src/components/BusinessProductsListing/styles.js +8 -33
  136. package/_modules/themes/four/src/components/ForgotPasswordForm/index.js +4 -1
  137. package/_modules/themes/four/src/components/LoginForm/index.js +4 -1
  138. package/_modules/themes/four/src/components/NotFoundSource/index.js +63 -0
  139. package/_modules/themes/four/src/components/NotFoundSource/styles.js +22 -0
  140. package/_modules/themes/four/src/components/RenderProductsLayout/index.js +301 -0
  141. package/_modules/themes/four/src/components/RenderProductsLayout/styles.js +68 -0
  142. package/_modules/themes/four/src/components/SignUpForm/index.js +4 -1
  143. package/_modules/themes/four/src/components/SingleProductCard/index.js +15 -5
  144. package/_modules/themes/four/src/components/UserFormDetails/index.js +4 -1
  145. package/_modules/themes/franchise/src/components/ForgotPasswordForm/index.js +4 -1
  146. package/_modules/themes/franchise/src/components/LoginForm/index.js +4 -1
  147. package/_modules/themes/franchise/src/components/SignUpForm/index.js +4 -1
  148. package/_modules/themes/franchise/src/components/UserFormDetails/index.js +4 -1
  149. package/_modules/themes/orderAndPay/src/components/ForgotPasswordForm/index.js +4 -1
  150. package/_modules/themes/orderAndPay/src/components/LoginForm/index.js +4 -1
  151. package/_modules/themes/orderAndPay/src/components/SignUpForm/index.js +4 -1
  152. package/_modules/themes/orderAndPay/src/components/UserFormDetails/index.js +4 -1
  153. package/_modules/themes/pwa/src/components/ForgotPasswordForm/index.js +4 -1
  154. package/_modules/themes/pwa/src/components/LoginForm/index.js +4 -1
  155. package/_modules/themes/pwa/src/components/SignUpForm/index.js +4 -1
  156. package/_modules/themes/pwa/src/components/UserFormDetails/index.js +4 -1
  157. package/_modules/themes/seven/index.js +4 -4
  158. package/_modules/themes/seven/src/components/ForgotPasswordForm/index.js +4 -1
  159. package/_modules/themes/seven/src/components/LoginForm/index.js +4 -1
  160. package/_modules/themes/seven/src/components/SignUpForm/index.js +4 -1
  161. package/_modules/themes/seven/src/components/SignUpForm/styles.js +1 -1
  162. package/_modules/themes/seven/src/components/UserFormDetails/index.js +4 -1
  163. package/_modules/themes/six/index.js +3 -3
  164. package/_modules/themes/six/src/components/AddressForm/index.js +3 -3
  165. package/_modules/themes/six/src/components/BusinessBasicInformation/index.js +16 -7
  166. package/_modules/themes/six/src/components/BusinessProductsListing/SearchProducts/index.js +6 -2
  167. package/_modules/themes/six/src/components/BusinessProductsListing/index.js +21 -27
  168. package/_modules/themes/six/src/components/DriverTips/index.js +2 -2
  169. package/_modules/themes/six/src/components/ForgotPasswordForm/index.js +4 -1
  170. package/_modules/themes/six/src/components/LoginForm/index.js +7 -4
  171. package/_modules/themes/six/src/components/PaymentOptionCash/index.js +2 -2
  172. package/_modules/themes/six/src/components/ProductForm/index.js +2 -2
  173. package/_modules/themes/six/src/components/SearchBar/index.js +2 -2
  174. package/_modules/themes/six/src/components/SignUpForm/index.js +8 -5
  175. package/_modules/themes/six/src/components/UserFormDetails/index.js +8 -5
  176. package/_modules/themes/three/src/components/ForgotPasswordForm/index.js +4 -1
  177. package/_modules/themes/three/src/components/LoginForm/index.js +4 -1
  178. package/_modules/themes/three/src/components/SignUpForm/index.js +4 -1
  179. package/_modules/themes/two/src/components/ForgotPasswordForm/index.js +4 -1
  180. package/_modules/themes/two/src/components/LoginForm/index.js +4 -1
  181. package/_modules/themes/two/src/components/SignUpForm/index.js +4 -1
  182. package/package.json +3 -3
  183. package/src/components/BusinessBasicInformation/index.js +64 -41
  184. package/src/components/BusinessProductsList/index.js +3 -3
  185. package/src/components/BusinessProductsList/layouts/groceries/index.js +3 -3
  186. package/src/components/Checkout/index.js +1 -0
  187. package/src/components/ForgotPasswordForm/index.js +3 -1
  188. package/src/components/Header/index.js +1 -1
  189. package/src/components/LoginForm/index.js +30 -28
  190. package/src/components/OrderDetails/index.js +101 -58
  191. package/src/components/PaymentOptionSquare/index.js +4 -8
  192. package/src/components/PaymentOptionSquare/styles.js +4 -1
  193. package/src/components/PaymentOptions/index.js +3 -0
  194. package/src/components/ProductItemAccordion/index.js +5 -3
  195. package/src/components/RenderProductsLayout/SearchProducts/index.js +3 -2
  196. package/src/components/RenderProductsLayout/index.js +13 -25
  197. package/src/components/SignUpForm/index.js +4 -2
  198. package/src/components/SingleProductCard/index.js +3 -3
  199. package/src/components/TaxInformation/index.js +1 -1
  200. package/src/components/UserFormDetails/index.js +35 -26
  201. package/src/components/UserProfileForm/ProfileOptions/index.js +12 -1
  202. package/src/components/UserProfileForm/index.js +70 -41
  203. package/src/components/UserProfileForm/styles.js +3 -1
  204. package/src/hooks/useCountdownTimer.js +9 -9
  205. package/src/index.js +28 -2
  206. package/src/themes/callcenterOriginal/src/components/BusinessProductsList/layouts/groceries/styles.js +1 -0
  207. package/src/themes/callcenterOriginal/src/components/BusinessProductsList/styles.js +4 -0
  208. package/src/themes/callcenterOriginal/src/components/ForgotPasswordForm/index.js +3 -1
  209. package/src/themes/callcenterOriginal/src/components/LoginForm/index.js +3 -1
  210. package/src/themes/callcenterOriginal/src/components/SignUpBusiness/index.js +3 -1
  211. package/src/themes/callcenterOriginal/src/components/SignUpForm/index.js +3 -1
  212. package/src/themes/callcenterOriginal/src/components/UserFormDetails/index.js +21 -19
  213. package/src/themes/eight/src/components/BusinessProductsList/index.js +3 -3
  214. package/src/themes/eight/src/components/LoginForm/index.js +34 -32
  215. package/src/themes/eight/src/components/SignUpForm/index.js +4 -2
  216. package/src/themes/eight/src/components/SingleProductCard/index.js +3 -3
  217. package/src/themes/five/index.js +15 -2
  218. package/src/themes/five/src/components/AddressDetails/index.js +0 -10
  219. package/src/themes/five/src/components/AddressForm/index.js +58 -45
  220. package/src/themes/five/src/components/AddressForm/styles.js +1 -1
  221. package/src/themes/five/src/components/AddressList/index.js +52 -28
  222. package/src/themes/five/src/components/AddressList/styles.js +9 -2
  223. package/src/themes/five/src/components/BusinessInformation/index.js +52 -37
  224. package/src/themes/five/src/components/BusinessItemAccordion/index.js +36 -3
  225. package/src/themes/five/src/components/BusinessItemAccordion/styles.js +46 -0
  226. package/src/themes/five/src/components/BusinessListingSearch/index.js +39 -1
  227. package/src/themes/five/src/components/BusinessPreorder/index.js +8 -4
  228. package/src/themes/five/src/components/BusinessPreorder/styles.js +1 -0
  229. package/src/themes/five/src/components/BusinessProductsCategories/index.js +89 -58
  230. package/src/themes/five/src/components/BusinessProductsCategories/styles.js +1 -1
  231. package/src/themes/five/src/components/BusinessProductsList/layouts/groceries/index.js +1 -1
  232. package/src/themes/five/src/components/BusinessProductsList/layouts/groceries/styles.js +7 -1
  233. package/src/themes/five/src/components/BusinessProductsList/styles.js +8 -3
  234. package/src/themes/five/src/components/BusinessReviews/index.js +84 -56
  235. package/src/themes/five/src/components/BusinessesListing/index.js +8 -7
  236. package/src/themes/five/src/components/BusinessesListing/layouts/AppointmentsBusinessListing/index.js +9 -3
  237. package/src/themes/five/src/components/BusinessesListing/layouts/AppointmentsBusinessListing/styles.js +8 -2
  238. package/src/themes/five/src/components/Cart/index.js +15 -4
  239. package/src/themes/five/src/components/Cart/styles.js +6 -0
  240. package/src/themes/five/src/components/CartContent/index.js +10 -23
  241. package/src/themes/five/src/components/CartPopover/index.js +50 -12
  242. package/src/themes/five/src/components/CartPopover/styles.js +27 -0
  243. package/src/themes/five/src/components/Checkout/index.js +38 -3
  244. package/src/themes/five/src/components/Header/index.js +2 -3
  245. package/src/themes/five/src/components/HomeHero/layouts/KioskHomeHero/index.js +1 -1
  246. package/src/themes/five/src/components/HomeHero/layouts/KioskHomeHero/styles.js +1 -1
  247. package/src/themes/five/src/components/HorizontalOrdersLayout/index.js +2 -2
  248. package/src/themes/five/src/components/HorizontalOrdersLayout/styles.js +18 -0
  249. package/src/themes/five/src/components/LoginForm/styles.js +4 -1
  250. package/src/themes/five/src/components/Modal/index.js +5 -0
  251. package/src/themes/five/src/components/Modal/styles.js +36 -0
  252. package/src/themes/five/src/components/MomentControl/Layouts/CustomLayout/styles.js +22 -0
  253. package/src/themes/five/src/components/NotNetworkConnectivity/index.js +28 -2
  254. package/src/themes/five/src/components/OrderDetails/ActionsSection.js +14 -10
  255. package/src/themes/five/src/components/OrderDetails/OrderBillSection.js +1 -1
  256. package/src/themes/five/src/components/OrderDetails/index.js +102 -61
  257. package/src/themes/five/src/components/OrderDetails/layouts/Kiosk/index.js +6 -5
  258. package/src/themes/five/src/components/OrderDetails/styles.js +64 -1
  259. package/src/themes/five/src/components/OrderProgress/index.js +1 -0
  260. package/src/themes/five/src/components/OrdersOption/index.js +3 -2
  261. package/src/themes/five/src/components/OrdersOption/styles.js +25 -0
  262. package/src/themes/five/src/components/PaymentOptionWallet/index.js +41 -41
  263. package/src/themes/five/src/components/PaymentOptions/index.js +23 -2
  264. package/src/themes/five/src/components/PhoneAutocomplete/index.js +1 -1
  265. package/src/themes/five/src/components/ProductForm/index.js +147 -100
  266. package/src/themes/five/src/components/ProductForm/styles.js +68 -12
  267. package/src/themes/five/src/components/ProductItemAccordion/index.js +9 -5
  268. package/src/themes/five/src/components/ProductOption/index.js +1 -1
  269. package/src/themes/five/src/components/ProductOption/styles.js +5 -1
  270. package/src/themes/five/src/components/ProfessionalProfile/styles.js +1 -0
  271. package/src/themes/five/src/components/ReviewDriver/index.js +253 -0
  272. package/src/themes/five/src/components/ReviewDriver/styles.js +233 -0
  273. package/src/themes/five/src/components/ReviewOrder/index.js +241 -0
  274. package/src/themes/five/src/components/ReviewOrder/styles.js +253 -0
  275. package/src/themes/five/src/components/ReviewProduct/index.js +251 -0
  276. package/src/themes/five/src/components/ReviewProduct/styles.js +158 -0
  277. package/src/themes/five/src/components/ReviewTrigger/index.js +86 -0
  278. package/src/themes/five/src/components/ReviewTrigger/styles.js +121 -0
  279. package/src/themes/five/src/components/SearchBar/index.js +1 -0
  280. package/src/themes/five/src/components/SearchProducts/index.js +2 -0
  281. package/src/themes/five/src/components/ServiceForm/index.js +93 -22
  282. package/src/themes/five/src/components/ServiceForm/styles.js +43 -2
  283. package/src/themes/five/src/components/SignUpBusiness/index.js +5 -3
  284. package/src/themes/five/src/components/SignUpDriver/index.js +5 -3
  285. package/src/themes/five/src/components/SignUpForm/styles.js +33 -0
  286. package/src/themes/five/src/components/SingleOrderCard/index.js +118 -22
  287. package/src/themes/five/src/components/SingleOrderCard/styles.js +5 -0
  288. package/src/themes/five/src/components/TaxInformation/index.js +1 -1
  289. package/src/themes/five/src/components/UserDetails/index.js +122 -19
  290. package/src/themes/five/src/components/UserDetails/styles.js +7 -0
  291. package/src/themes/five/src/components/UserFormDetails/index.js +108 -63
  292. package/src/themes/five/src/components/UserPopover/index.js +6 -6
  293. package/src/themes/five/src/components/UserProfileForm/ProfileOptions/index.js +12 -1
  294. package/src/themes/five/src/components/UserProfileForm/index.js +130 -38
  295. package/src/themes/five/src/components/VerifyCodeForm/index.js +64 -0
  296. package/src/themes/five/src/components/VerifyCodeForm/styles.js +82 -0
  297. package/src/themes/four/src/components/AccordionDropdown/index.js +47 -0
  298. package/src/themes/four/src/components/AccordionDropdown/styles.js +25 -0
  299. package/src/themes/four/src/components/BusinessBasicInformation/index.js +16 -22
  300. package/src/themes/four/src/components/BusinessProductsCategories/index.js +1 -1
  301. package/src/themes/four/src/components/BusinessProductsCategories/layouts/groceries/index.js +125 -0
  302. package/src/themes/four/src/components/BusinessProductsCategories/layouts/groceries/styles.js +52 -0
  303. package/src/themes/four/src/components/BusinessProductsList/layouts/groceries/index.js +237 -0
  304. package/src/themes/four/src/components/BusinessProductsList/layouts/groceries/styles.js +62 -0
  305. package/src/themes/four/src/components/BusinessProductsListing/index.js +69 -113
  306. package/src/themes/four/src/components/BusinessProductsListing/styles.js +1 -71
  307. package/src/themes/four/src/components/ForgotPasswordForm/index.js +3 -1
  308. package/src/themes/four/src/components/LoginForm/index.js +48 -46
  309. package/src/themes/four/src/components/NotFoundSource/index.js +66 -0
  310. package/src/themes/four/src/components/NotFoundSource/styles.js +27 -0
  311. package/src/themes/four/src/components/RenderProductsLayout/index.js +306 -0
  312. package/src/themes/four/src/components/RenderProductsLayout/styles.js +177 -0
  313. package/src/themes/four/src/components/SignUpForm/index.js +4 -2
  314. package/src/themes/four/src/components/SingleProductCard/index.js +35 -23
  315. package/src/themes/four/src/components/UserFormDetails/index.js +21 -19
  316. package/src/themes/franchise/src/components/ForgotPasswordForm/index.js +3 -1
  317. package/src/themes/franchise/src/components/LoginForm/index.js +32 -30
  318. package/src/themes/franchise/src/components/SignUpForm/index.js +3 -1
  319. package/src/themes/franchise/src/components/UserFormDetails/index.js +21 -19
  320. package/src/themes/orderAndPay/src/components/ForgotPasswordForm/index.js +3 -1
  321. package/src/themes/orderAndPay/src/components/LoginForm/index.js +33 -31
  322. package/src/themes/orderAndPay/src/components/SignUpForm/index.js +11 -9
  323. package/src/themes/orderAndPay/src/components/UserFormDetails/index.js +21 -19
  324. package/src/themes/pwa/src/components/ForgotPasswordForm/index.js +3 -1
  325. package/src/themes/pwa/src/components/LoginForm/index.js +32 -30
  326. package/src/themes/pwa/src/components/SignUpForm/index.js +3 -1
  327. package/src/themes/pwa/src/components/UserFormDetails/index.js +3 -1
  328. package/src/themes/seven/index.js +4 -4
  329. package/src/themes/seven/src/components/CouponControl/index.js +0 -1
  330. package/src/themes/seven/src/components/ForgotPasswordForm/index.js +3 -1
  331. package/src/themes/seven/src/components/LoginForm/index.js +5 -3
  332. package/src/themes/seven/src/components/OrderDetails/index.js +1 -1
  333. package/src/themes/seven/src/components/SignUpForm/index.js +3 -1
  334. package/src/themes/seven/src/components/SignUpForm/styles.js +1 -0
  335. package/src/themes/seven/src/components/UserFormDetails/index.js +3 -1
  336. package/src/themes/six/index.js +3 -3
  337. package/src/themes/six/src/components/AddressForm/index.js +1 -1
  338. package/src/themes/six/src/components/BusinessBasicInformation/index.js +57 -34
  339. package/src/themes/six/src/components/BusinessProductsListing/SearchProducts/index.js +3 -2
  340. package/src/themes/six/src/components/BusinessProductsListing/index.js +7 -13
  341. package/src/themes/six/src/components/DriverTips/index.js +1 -1
  342. package/src/themes/six/src/components/ForgotPasswordForm/index.js +3 -1
  343. package/src/themes/six/src/components/LoginForm/index.js +33 -31
  344. package/src/themes/six/src/components/PaymentOptionCash/index.js +1 -1
  345. package/src/themes/six/src/components/ProductForm/index.js +1 -1
  346. package/src/themes/six/src/components/SearchBar/index.js +1 -1
  347. package/src/themes/six/src/components/SignUpForm/index.js +4 -2
  348. package/src/themes/six/src/components/UserFormDetails/index.js +22 -20
  349. package/src/themes/three/src/components/ForgotPasswordForm/index.js +3 -1
  350. package/src/themes/three/src/components/LoginForm/index.js +52 -50
  351. package/src/themes/three/src/components/SignUpForm/index.js +10 -8
  352. package/src/themes/two/src/components/ForgotPasswordForm/index.js +3 -1
  353. package/src/themes/two/src/components/LoginForm/index.js +42 -40
  354. package/src/themes/two/src/components/SignUpForm/index.js +10 -8
  355. package/template/components/ListenPageChanges/index.js +1 -1
  356. package/template/pages/Checkout/index.js +0 -1
  357. package/template/pages/Home/styles.js +0 -14
  358. package/_bundles/ordering-ui.f64ae9230411e0edb7d6.js +0 -2
  359. package/_modules/themes/five/src/components/FavoriteBusinesses/index.js +0 -268
  360. package/_modules/themes/five/src/components/FavoriteBusinesses/styles.js +0 -53
  361. package/_modules/themes/five/src/components/FavoriteOrders/index.js +0 -353
  362. package/_modules/themes/five/src/components/FavoriteOrders/styles.js +0 -53
  363. package/_modules/themes/five/src/components/FavoriteProducts/index.js +0 -190
  364. package/_modules/themes/five/src/components/FavoriteProducts/styles.js +0 -53
  365. package/src/themes/five/src/components/FavoriteBusinesses/index.js +0 -217
  366. package/src/themes/five/src/components/FavoriteBusinesses/styles.js +0 -85
  367. package/src/themes/five/src/components/FavoriteOrders/index.js +0 -225
  368. package/src/themes/five/src/components/FavoriteOrders/styles.js +0 -87
  369. package/src/themes/five/src/components/FavoriteProducts/index.js +0 -165
  370. package/src/themes/five/src/components/FavoriteProducts/styles.js +0 -87
@@ -1,8 +1,9 @@
1
1
  import React, { useEffect, useState, useRef } from 'react'
2
2
  import Skeleton from 'react-loading-skeleton'
3
- import { useSession, useLanguage, useCustomer, useConfig } from 'ordering-components-external'
3
+ import { useSession, useLanguage, useCustomer, useConfig, useOrderingTheme } from 'ordering-components-external'
4
4
  import { useForm } from 'react-hook-form'
5
5
  import parsePhoneNumber from 'libphonenumber-js'
6
+ import { useTheme } from 'styled-components'
6
7
 
7
8
  import {
8
9
  FormInput,
@@ -38,22 +39,32 @@ export const UserFormDetailsUI = (props) => {
38
39
  isCheckout,
39
40
  userData,
40
41
  isCustomerMode,
41
- handleChangePromotions
42
+ setWillVerifyOtpState,
43
+ handleChangePromotions,
44
+ isOldLayout,
45
+ requiredFields
42
46
  } = props
43
47
 
44
48
  const formMethods = useForm()
45
49
  const [, t] = useLanguage()
46
50
  const [{ configs }] = useConfig()
47
-
51
+ const theme = useTheme()
48
52
  const [{ user: userSession }] = useSession()
53
+ const [orderingTheme] = useOrderingTheme()
49
54
  const [isValidPhoneNumber, setIsValidPhoneNumber] = useState(null)
50
55
  const [userPhoneNumber, setUserPhoneNumber] = useState(null)
51
56
  const [alertState, setAlertState] = useState({ open: false, content: [] })
52
57
  const [, { setUserCustomer }] = useCustomer()
58
+ const [isChanged, setIsChanged] = useState(false)
53
59
  const emailInput = useRef(null)
54
60
 
55
61
  const user = userData || userSession
56
62
 
63
+ const showCustomerCellphone = !orderingTheme?.theme?.profile?.components?.cellphone?.hidden
64
+ const showCustomerPassword = !orderingTheme?.theme?.profile?.components?.password?.hidden
65
+ const showCustomerPromotions = !orderingTheme?.theme?.profile?.components?.promotions?.hidden
66
+ const showLangauges = !orderingTheme?.theme?.profile?.components?.languages?.hidden
67
+
57
68
  const closeAlert = () => {
58
69
  setAlertState({
59
70
  open: false,
@@ -131,6 +142,7 @@ export const UserFormDetailsUI = (props) => {
131
142
 
132
143
  const handleChangePhoneNumber = (number, isValid) => {
133
144
  setUserPhoneNumber(number)
145
+ setIsChanged(true)
134
146
 
135
147
  let phoneNumberParser = null
136
148
  let phoneNumber = {
@@ -169,6 +181,10 @@ export const UserFormDetailsUI = (props) => {
169
181
  }
170
182
  }
171
183
 
184
+ const showFieldWithTheme = (name) => {
185
+ return !orderingTheme?.theme?.profile?.components?.[name]?.hidden
186
+ }
187
+
172
188
  useEffect(() => {
173
189
  if (Object.keys(formMethods.errors).length > 0) {
174
190
  const content = Object.values(formMethods.errors).map(error => error.message)
@@ -197,9 +213,8 @@ export const UserFormDetailsUI = (props) => {
197
213
  }
198
214
  if ((user || !isEdit) && !formState?.loading) {
199
215
  setUserCellPhone()
200
- if (!isEdit && !formState?.loading) {
216
+ if (!isEdit) {
201
217
  cleanFormState && cleanFormState({ changes: {} })
202
- setUserCellPhone(true)
203
218
  }
204
219
  }
205
220
  if (!isEdit) onCancel && onCancel()
@@ -214,6 +229,7 @@ export const UserFormDetailsUI = (props) => {
214
229
  }, [validationFields, emailInput.current])
215
230
 
216
231
  useEffect(() => {
232
+ if (requiredFields) return
217
233
  formMethods.register('email', {
218
234
  required: isRequiredField('email')
219
235
  ? t('VALIDATION_ERROR_EMAIL_REQUIRED', 'The field Email is required').replace('_attribute_', t('EMAIL', 'Email'))
@@ -225,6 +241,16 @@ export const UserFormDetailsUI = (props) => {
225
241
  })
226
242
  }, [formMethods])
227
243
 
244
+ useEffect(() => {
245
+ if (isChanged && userPhoneNumber && isValidPhoneNumber && formState?.changes?.country_phone_code && formState?.changes?.cellphone && configs?.verification_phone_required?.value === '1') {
246
+ setWillVerifyOtpState(true)
247
+ }
248
+ }, [isValidPhoneNumber, userPhoneNumber, configs?.verification_phone_required?.value, isChanged])
249
+
250
+ useEffect(() => {
251
+ if (requiredFields && !requiredFields.includes('cellphone')) setIsValidPhoneNumber(true)
252
+ }, [requiredFields])
253
+
228
254
  return (
229
255
  <>
230
256
  {props.beforeElements?.map((BeforeElement, i) => (
@@ -246,64 +272,59 @@ export const UserFormDetailsUI = (props) => {
246
272
  props.beforeMidComponents?.map((BeforeMidComponents, i) => (
247
273
  <BeforeMidComponents key={i} {...props} />))
248
274
  }
249
- <Divider />
275
+ {!requiredFields && <Divider />}
250
276
  {sortInputFields({ values: validationFields?.fields?.checkout }).map(field =>
251
- showField && showField(field.code) && (
277
+ showField && showField(field.code) && showFieldWithTheme(field.code) && (
252
278
  <React.Fragment key={field.id}>
253
279
  {field.code === 'email' ? (
254
- <InputGroup>
255
- <p>{t(field.code.toUpperCase(), field?.name)}</p>
256
- <Input
257
- key={field.id}
258
- type={field.type}
259
- name={field.code}
260
- className='form'
261
- borderBottom
262
- disabled={!isEdit}
263
- placeholder={t(field.code.toUpperCase(), field?.name)}
264
- defaultValue={
265
- formState?.result?.result
266
- ? formState?.result?.result[field.code]
267
- : formState?.changes[field.code] ?? (user && user[field.code]) ?? ''
268
- }
269
- onChange={handleChangeInputEmail}
270
- ref={(e) => {
271
- emailInput.current = e
272
- }}
273
- autoComplete='off'
274
- />
275
- </InputGroup>
280
+ ((requiredFields && requiredFields.includes(field.code)) || !requiredFields) && (
281
+ <InputGroup>
282
+ <p>{t(field.code.toUpperCase(), field?.name)}</p>
283
+ <Input
284
+ key={field.id}
285
+ type={field.type}
286
+ name={field.code}
287
+ className='form'
288
+ borderBottom
289
+ disabled={!isEdit}
290
+ placeholder={t(field.code.toUpperCase(), field?.name)}
291
+ defaultValue={formState?.changes[field.code] ?? (user && user[field.code]) ?? ''}
292
+ onChange={handleChangeInputEmail}
293
+ ref={(e) => {
294
+ emailInput.current = e
295
+ }}
296
+ autoComplete='off'
297
+ />
298
+ </InputGroup>
299
+ )
276
300
  ) : (
277
- <InputGroup>
278
- <p>{t(field.code.toUpperCase(), field?.name)}</p>
279
- <Input
280
- key={field.id}
281
- type={field.type}
282
- borderBottom
283
- name={field.code}
284
- className='form'
285
- disabled={!isEdit}
286
- placeholder={t(field.code.toUpperCase(), field?.name)}
287
- defaultValue={
288
- formState?.result?.result
289
- ? formState?.result?.result[field.code]
290
- : formState?.changes[field.code] ?? (user && user[field.code]) ?? ''
291
- }
292
- onChange={handleChangeInput}
293
- ref={formMethods.register({
294
- required: isRequiredField(field.code)
295
- ? t(`VALIDATION_ERROR_${field.code.toUpperCase()}_REQUIRED`, `${field?.name} is required`).replace('_attribute_', t(field?.name, field.code))
296
- : null
297
- })}
298
- autoComplete='off'
299
- />
300
- </InputGroup>
301
+ ((requiredFields && requiredFields.includes(field.code)) || !requiredFields) && (
302
+ <InputGroup>
303
+ <p>{t(field.code.toUpperCase(), field?.name)}</p>
304
+ <Input
305
+ key={field.id}
306
+ type={field.type}
307
+ borderBottom
308
+ name={field.code}
309
+ className='form'
310
+ disabled={!isEdit}
311
+ placeholder={t(field.code.toUpperCase(), field?.name)}
312
+ defaultValue={formState?.changes[field.code] ?? (user && user[field.code]) ?? ''}
313
+ onChange={handleChangeInput}
314
+ ref={formMethods.register({
315
+ required: isRequiredField(field.code)
316
+ ? t(`VALIDATION_ERROR_${field.code.toUpperCase()}_REQUIRED`, `${field?.name} is required`).replace('_attribute_', t(field?.name, field.code))
317
+ : null
318
+ })}
319
+ autoComplete='off'
320
+ />
321
+ </InputGroup>
322
+ )
301
323
  )}
302
-
303
324
  </React.Fragment>
304
325
  )
305
326
  )}
306
- {!!showInputPhoneNumber && (
327
+ {!!showInputPhoneNumber && showCustomerCellphone && ((requiredFields && requiredFields.includes('cellphone')) || !requiredFields) && (
307
328
  <InputPhoneNumberWrapper>
308
329
  <p>{t('PHONE', 'Phone')}</p>
309
330
  <InputPhoneNumber
@@ -315,7 +336,7 @@ export const UserFormDetailsUI = (props) => {
315
336
  />
316
337
  </InputPhoneNumberWrapper>
317
338
  )}
318
- {!isCheckout && (
339
+ {!isCheckout && showCustomerPassword && !requiredFields && (
319
340
  <InputGroup>
320
341
  <p>{t('PASSWORD', 'Password')}</p>
321
342
  <Input
@@ -338,7 +359,7 @@ export const UserFormDetailsUI = (props) => {
338
359
  />
339
360
  </InputGroup>
340
361
  )}
341
- {!isCheckout && (
362
+ {!isCheckout && showCustomerPromotions && (
342
363
  <PromotionsWrapper>
343
364
  <Checkbox
344
365
  name='promotions'
@@ -357,11 +378,15 @@ export const UserFormDetailsUI = (props) => {
357
378
  </label>
358
379
  </PromotionsWrapper>
359
380
  )}
360
- <Divider />
361
- <LanguageSelectorWrapper>
362
- <p>{t('LANGUAGE', 'Language')}</p>
363
- <LanguageSelector />
364
- </LanguageSelectorWrapper>
381
+ {showLangauges && !requiredFields && (
382
+ <>
383
+ <Divider />
384
+ <LanguageSelectorWrapper>
385
+ <p>{t('LANGUAGE', 'Language')}</p>
386
+ <LanguageSelector />
387
+ </LanguageSelectorWrapper>
388
+ </>
389
+ )}
365
390
  {
366
391
  props.afterMidElements?.map((MidElement, i) => (
367
392
  <React.Fragment key={i}>
@@ -373,7 +398,17 @@ export const UserFormDetailsUI = (props) => {
373
398
  <MidComponent key={i} {...props} />))
374
399
  }
375
400
  <ActionsForm>
376
- {((formState && Object.keys(formState?.changes).length > 0 && isEdit) || formState?.loading) && (
401
+ {onCancel && isOldLayout && (
402
+ <Button
403
+ outline
404
+ type='button'
405
+ onClick={() => onCancel(false)}
406
+ disabled={formState.loading}
407
+ >
408
+ {t('CANCEL', 'Cancel')}
409
+ </Button>
410
+ )}
411
+ {!requiredFields && ((formState && Object.keys(formState?.changes).length > 0 && isEdit) || formState?.loading) && (
377
412
  <Button
378
413
  id='form-btn'
379
414
  color='primary'
@@ -383,6 +418,16 @@ export const UserFormDetailsUI = (props) => {
383
418
  {formState.loading ? t('UPDATING', 'Updating...') : t('UPDATE', 'Update')}
384
419
  </Button>
385
420
  )}
421
+ {requiredFields && (
422
+ <Button
423
+ id='form-btn'
424
+ color='primary'
425
+ type='submit'
426
+ disabled={formState.loading}
427
+ >
428
+ {formState.loading ? t('UPDATING', 'Updating...') : t('CONTINUE', 'Continue')}
429
+ </Button>
430
+ )}
386
431
  </ActionsForm>
387
432
  </>
388
433
  ) : (
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useEffect } from 'react'
2
- import { useLanguage, useSession, LogoutAction as LogoutActionController, useEvent, useCustomer, useConfig } from 'ordering-components-external'
2
+ import { useLanguage, useSession, LogoutAction as LogoutActionController, useEvent, useCustomer, useConfig, useOrderingTheme } from 'ordering-components-external'
3
3
  import { usePopper } from 'react-popper'
4
4
  import {
5
5
  HeaderItem,
@@ -16,11 +16,11 @@ import { DropDownCircleImage } from '../../../../../components/Dropdown/style'
16
16
  import FaUserAlt from '@meronex/icons/fa/FaUserAlt'
17
17
  import { capitalize } from '../../../../../utils'
18
18
  import AiOutlineMenu from '@meronex/icons/ai/AiOutlineMenu'
19
- import { useTheme } from 'styled-components'
20
19
 
21
20
  const optionsDefault = [
22
- { name: 'search', pathname: '/explore', displayName: 'explore', key: 'explore' },
23
- { name: 'orders', pathname: '/profile/orders', displayName: 'orders', key: 'orders' }
21
+ { name: 'search', pathname: '/explore', displayName: 'My home', key: 'my_home' },
22
+ { name: 'business_search', pathname: '/business_search', displayName: 'Browse & Search', key: 'browse_search' },
23
+ { name: 'orders', pathname: '/profile/orders', displayName: 'orders', key: 'orders' },
24
24
  ]
25
25
 
26
26
  export const UserPopover = (props) => {
@@ -35,14 +35,14 @@ export const UserPopover = (props) => {
35
35
  const [, t] = useLanguage()
36
36
  const [events] = useEvent()
37
37
  const [{ configs }] = useConfig()
38
- const theme = useTheme()
38
+ const [orderingTheme] = useOrderingTheme()
39
39
  const referenceElement = useRef()
40
40
  const popperElement = useRef()
41
41
  const arrowElement = useRef()
42
42
 
43
43
  const isWalletEnabled = configs?.cash_wallet?.value && configs?.wallet_enabled?.value === '1' && (configs?.wallet_cash_enabled?.value === '1' || configs?.wallet_credit_point_enabled?.value === '1')
44
44
  const isPromotionsEnabled = configs?.advanced_offers_module?.value === '1' || configs?.advanced_offers_module?.value === true
45
- const isAddressListNewPage = theme.layouts?.profile?.components?.address_list?.components?.layout?.position === 'new_page'
45
+ const isAddressListNewPage = orderingTheme?.theme?.profile?.components?.address_list?.components?.layout?.position === 'new_page'
46
46
 
47
47
  const extraOptions = [
48
48
  { name: 'profile', pathname: '/profile', displayName: 'view account', key: 'view_account', isActive: true },
@@ -3,12 +3,16 @@ import { FlexTabs } from './styles'
3
3
  import { Tabs, Tab } from '../../../styles/Tabs'
4
4
  import BsPerson from '@meronex/icons/bs/BsPerson'
5
5
  import AiOutlineUnorderedList from '@meronex/icons/ai/AiOutlineUnorderedList'
6
- import { useEvent, useLanguage } from 'ordering-components-external'
6
+ import FaAddressBook from '@meronex/icons/fa/FaAddressBook'
7
+ import { useEvent, useLanguage, useOrderingTheme } from 'ordering-components-external'
7
8
 
8
9
  export const ProfileOptions = ({ value }) => {
9
10
  const [tabValue] = useState(value)
10
11
  const [, t] = useLanguage()
11
12
  const [events] = useEvent()
13
+ const [orderingTheme] = useOrderingTheme()
14
+
15
+ const showAddressListTab = orderingTheme?.theme?.profile?.components?.address_list?.components?.layout?.position === 'new_page'
12
16
 
13
17
  const handleGoToPage = (data) => {
14
18
  events.emit('go_to_page', data)
@@ -22,6 +26,13 @@ export const ProfileOptions = ({ value }) => {
22
26
  <BsPerson /> {t('MY_ACCOUNT', 'My Account')}
23
27
  </a>
24
28
  </Tab>
29
+ {showAddressListTab && (
30
+ <Tab active={tabValue === 'addresses'}>
31
+ <a onClick={() => handleGoToPage({ page: 'addresses' })}>
32
+ <FaAddressBook /> {t('MY_ADDRESSES', 'My Addresses')}
33
+ </a>
34
+ </Tab>
35
+ )}
25
36
  <Tab active={tabValue === 'orders'}>
26
37
  <a onClick={() => handleGoToPage({ page: 'orders' })}>
27
38
  <AiOutlineUnorderedList /> {t('MY_ORDERS', 'My orders')}
@@ -5,20 +5,23 @@ import {
5
5
  useLanguage,
6
6
  useSession,
7
7
  DragAndDrop,
8
- ExamineClick
8
+ ExamineClick,
9
+ useOrderingTheme
9
10
  } from 'ordering-components-external'
10
11
 
11
12
  import { UserFormDetailsUI } from '../UserFormDetails'
13
+ import { UserFormDetailsUI as UserFormDetailsOldUI } from '../../../../../components/UserFormDetails'
14
+ import { Modal } from '../Modal'
15
+ import { VerifyCodeForm } from '../VerifyCodeForm'
16
+ import { useCountdownTimer } from '../../../../../hooks/useCountdownTimer'
12
17
  import { AddressList } from '../AddressList'
13
18
  import { Alert } from '../Confirm'
14
19
 
15
20
  import { ProfileOptions } from './ProfileOptions'
16
-
17
21
  import { bytesConverter } from '../../../../../utils'
18
-
19
22
  import FiCamera from '@meronex/icons/fi/FiCamera'
20
23
  import BiImage from '@meronex/icons/bi/BiImage'
21
-
24
+ import { useTheme } from 'styled-components'
22
25
  import {
23
26
  Container,
24
27
  UserProfileContainer,
@@ -26,7 +29,6 @@ import {
26
29
  Image,
27
30
  SideForm,
28
31
  Camera,
29
- UserData,
30
32
  SavedPlaces,
31
33
  UploadImageIcon,
32
34
  SkeletonWrapper,
@@ -41,15 +43,26 @@ const UserProfileFormUI = (props) => {
41
43
  formState,
42
44
  cleanFormState,
43
45
  toggleIsEdit,
44
- isHiddenAddress
46
+ isHiddenAddress,
47
+ handleSendVerifyCode,
48
+ verifyPhoneState,
49
+ setFormState
45
50
  } = props
46
51
 
47
52
  const [, t] = useLanguage()
53
+ const theme = useTheme()
48
54
  const [{ user }] = useSession()
49
- const [edit, setEdit] = useState(false)
55
+ const [orderingTheme] = useOrderingTheme()
56
+ const [willVerifyOtpState, setWillVerifyOtpState] = useState(false)
57
+ const [otpLeftTime, , resetOtpLeftTime] = useCountdownTimer(
58
+ 600, willVerifyOtpState)
50
59
  const [alertState, setAlertState] = useState({ open: false, content: [] })
51
60
  const inputRef = useRef(null)
52
61
 
62
+ const showCustomerPicture = !orderingTheme?.theme?.profile?.components?.picture?.hidden
63
+ const showAddressList = !orderingTheme?.theme?.profile?.components?.address_list?.hidden
64
+ const userFormLayoutRow = orderingTheme?.theme?.profile?.components?.layout?.position === 'row'
65
+
53
66
  const handleFiles = (files) => {
54
67
  if (files.length === 1) {
55
68
  const type = files[0].type.split('/')[0]
@@ -73,7 +86,6 @@ const UserProfileFormUI = (props) => {
73
86
  }
74
87
 
75
88
  const toggleEditState = (val) => {
76
- setEdit(val)
77
89
  toggleIsEdit()
78
90
  if (!val) {
79
91
  cleanFormState({ changes: {} })
@@ -91,6 +103,19 @@ const UserProfileFormUI = (props) => {
91
103
  })
92
104
  }
93
105
 
106
+ const handleSendOtp = () => {
107
+ if (willVerifyOtpState && formState?.changes?.cellphone && formState?.changes?.country_phone_code) {
108
+ const { cellphone, country_phone_code: countryPhoneCode } = formState?.changes
109
+
110
+ resetOtpLeftTime()
111
+
112
+ handleSendVerifyCode({
113
+ cellphone: cellphone,
114
+ country_phone_code: countryPhoneCode
115
+ })
116
+ }
117
+ }
118
+
94
119
  useEffect(() => {
95
120
  if (formState.changes?.photo) {
96
121
  const isImage = true
@@ -98,10 +123,43 @@ const UserProfileFormUI = (props) => {
98
123
  }
99
124
  }, [formState.changes?.photo])
100
125
 
126
+ useEffect(() => {
127
+ if (verifyPhoneState?.result?.error) {
128
+ setAlertState({
129
+ open: true,
130
+ content: verifyPhoneState?.result?.result || [t('ERROR', 'Error')]
131
+ })
132
+ } else { resetOtpLeftTime() }
133
+ }, [verifyPhoneState?.result?.result])
134
+
101
135
  useEffect(() => {
102
136
  toggleIsEdit()
103
137
  }, [])
104
138
 
139
+ useEffect(() => {
140
+ handleSendOtp()
141
+ }, [willVerifyOtpState])
142
+
143
+ useEffect(() => {
144
+ if (otpLeftTime === 0) {
145
+ setAlertState({
146
+ open: true,
147
+ content: t('TIME_IS_UP_PLEASE_RESEND_CODE', 'Time is up. Please resend code again')
148
+ })
149
+ }
150
+ }, [otpLeftTime])
151
+
152
+ const handleSendPhoneCode = (values) => {
153
+ setWillVerifyOtpState(false)
154
+ setFormState({
155
+ ...formState,
156
+ changes: {
157
+ ...formState?.changes,
158
+ verification_code: values?.code
159
+ }
160
+ })
161
+ }
162
+
105
163
  return (
106
164
  <>
107
165
  {props.beforeElements?.map((BeforeElement, i) => (
@@ -115,44 +173,62 @@ const UserProfileFormUI = (props) => {
115
173
  )}
116
174
  <Container>
117
175
  <UserProfileContainer mbottom={isHiddenAddress && 25}>
118
- <UserImage className='user-image'>
119
- <Image onClick={() => handleClickImage()} isImage={user?.photo || (formState?.changes?.photo && !formState.result.error)}>
120
- <ExamineClick onFiles={handleFiles} childRef={(e) => { inputRef.current = e }} accept='image/png, image/jpeg, image/jpg' disabled={formState.loading}>
121
- <DragAndDrop onDrop={dataTransfer => handleFiles(dataTransfer.files)} accept='image/png, image/jpeg, image/jpg' disabled={formState.loading}>
122
- {formState.changes?.photo && formState.loading
123
- ? (<SkeletonWrapper><Skeleton /></SkeletonWrapper>)
124
- : ((!formState.changes?.photo || formState.result?.result === 'Network Error' || formState.result.error)
125
- ? user?.photo
126
- ? (<img src={user?.photo} alt='user image' width='200px' height='200px' loading='lazy' />)
127
- : (
128
- <UploadImageIcon>
129
- <BiImage />
130
- <span>{t('DRAG_DROP_IMAGE_HERE', 'Put your image here')}</span>
131
- </UploadImageIcon>
176
+ {showCustomerPicture && (
177
+ <UserImage className='user-image'>
178
+ <Image onClick={() => handleClickImage()} isImage={user?.photo || (formState?.changes?.photo && !formState.result.error)}>
179
+ <ExamineClick onFiles={handleFiles} childRef={(e) => { inputRef.current = e }} accept='image/png, image/jpeg, image/jpg' disabled={formState.loading}>
180
+ <DragAndDrop onDrop={dataTransfer => handleFiles(dataTransfer.files)} accept='image/png, image/jpeg, image/jpg' disabled={formState.loading}>
181
+ {formState.changes?.photo && formState.loading
182
+ ? (<SkeletonWrapper><Skeleton /></SkeletonWrapper>)
183
+ : ((!formState.changes?.photo || formState.result?.result === 'Network Error' || formState.result.error)
184
+ ? user?.photo
185
+ ? (<img src={user?.photo} alt='user image' width='200px' height='200px' loading='lazy' />)
186
+ : (
187
+ <UploadImageIcon>
188
+ <BiImage />
189
+ <span>{t('DRAG_DROP_IMAGE_HERE', 'Put your image here')}</span>
190
+ </UploadImageIcon>
191
+ )
192
+ : formState?.changes?.photo && formState.result.error &&
193
+ (
194
+ <img
195
+ src={formState?.changes?.photo}
196
+ alt='user image'
197
+ loading='lazy'
198
+ />
132
199
  )
133
- : formState?.changes?.photo && formState.result.error &&
134
- <img src={formState?.changes?.photo} alt='user image' loading='lazy' />
135
- )}
136
- </DragAndDrop>
137
- </ExamineClick>
138
- </Image>
139
- <Camera><FiCamera /></Camera>
140
- </UserImage>
200
+ )}
201
+ </DragAndDrop>
202
+ </ExamineClick>
203
+ </Image>
204
+ <Camera><FiCamera /></Camera>
205
+ </UserImage>
206
+ )}
141
207
  <SideForm className='user-form'>
142
208
  <WrapperForm>
143
- <UserFormDetailsUI
144
- {...props}
145
- onCancel={toggleEditState}
146
- onCloseProfile={() => setEdit(false)}
147
- isHiddenAddress={isHiddenAddress}
148
- />
209
+ {userFormLayoutRow ? (
210
+ <UserFormDetailsOldUI
211
+ {...props}
212
+ onCancel={toggleEditState}
213
+ isOriginalLayout
214
+ isHiddenAddress={isHiddenAddress}
215
+ isOldLayout
216
+ />
217
+ ) : (
218
+ <UserFormDetailsUI
219
+ {...props}
220
+ onCancel={toggleEditState}
221
+ isHiddenAddress={isHiddenAddress}
222
+ setWillVerifyOtpState={setWillVerifyOtpState}
223
+ />
224
+ )}
149
225
  </WrapperForm>
150
226
  </SideForm>
151
227
  </UserProfileContainer>
152
- {(userData?.addresses || user?.addresses) && !isHiddenAddress && (
228
+ {(userData?.addresses || user?.addresses) && !isHiddenAddress && showAddressList && (
153
229
  <SavedPlaces>
154
230
  <h1>{t('MY_ADDRESSES', 'My Saved places')}</h1>
155
- <AddressList isModal addressList={user?.addresses} />
231
+ <AddressList isModal addressList={user?.addresses} isProfile />
156
232
  </SavedPlaces>
157
233
  )}
158
234
  </Container>
@@ -165,6 +241,22 @@ const UserProfileFormUI = (props) => {
165
241
  onAccept={() => closeAlert()}
166
242
  closeOnBackdrop={false}
167
243
  />
244
+ <Modal
245
+ title={t('ENTER_VERIFICATION_CODE', 'Enter verification code')}
246
+ open={willVerifyOtpState}
247
+ width='700px'
248
+ height='420px'
249
+ onClose={() => setWillVerifyOtpState(false)}
250
+ >
251
+ <VerifyCodeForm
252
+ otpLeftTime={otpLeftTime}
253
+ credentials={formState?.changes}
254
+ handleSendOtp={handleSendOtp}
255
+ handleCheckPhoneCode={handleSendPhoneCode}
256
+ email={(userData?.email || user?.email)}
257
+ isPhone
258
+ />
259
+ </Modal>
168
260
  {props.afterComponents?.map((AfterComponent, i) => (
169
261
  <AfterComponent key={i} {...props} />))}
170
262
  {props.afterElements?.map((AfterElement, i) => (
@@ -0,0 +1,64 @@
1
+ import React, { useState, useEffect } from 'react'
2
+ import { useLanguage } from 'ordering-components-external'
3
+ import OtpInput from 'react-otp-input'
4
+ import { Button } from '../../styles/Buttons'
5
+ import { formatSeconds } from '../../../../../utils'
6
+
7
+ import {
8
+ Container,
9
+ OtpWrapper,
10
+ DownTimer
11
+ } from './styles'
12
+
13
+ export const VerifyCodeForm = (props) => {
14
+ const {
15
+ otpLeftTime,
16
+ handleSendOtp,
17
+ handleCheckPhoneCode,
18
+ credentials,
19
+ email,
20
+ isPhone
21
+ } = props
22
+
23
+ const [, t] = useLanguage()
24
+ const [otpState, setOtpState] = useState('')
25
+
26
+ const numOtpInputs = 4
27
+
28
+ useEffect(() => {
29
+ if (otpState?.length === numOtpInputs) {
30
+ const { cellphone, country_phone_code: countryPhoneCode } = credentials
31
+
32
+ handleCheckPhoneCode({
33
+ cellphone: cellphone,
34
+ country_phone_code: countryPhoneCode,
35
+ code: otpState
36
+ })
37
+ }
38
+ }, [otpState])
39
+
40
+ return (
41
+ <Container>
42
+ <p>{t('SENT_VERIFY_CODE_ON_EMAIL', 'We sent you a verication code on _email_').replace('_email_', isPhone ? credentials?.cellphone : email)}</p>
43
+ <DownTimer>{formatSeconds(otpLeftTime)}</DownTimer>
44
+ <OtpWrapper>
45
+ <OtpInput
46
+ value={otpState}
47
+ onChange={otp => setOtpState(otp)}
48
+ numInputs={numOtpInputs}
49
+ containerStyle='otp-container'
50
+ inputStyle='otp-input'
51
+ isInputNum
52
+ shouldAutoFocus
53
+ />
54
+ </OtpWrapper>
55
+ <Button
56
+ color='primaryContrast'
57
+ naked
58
+ onClick={handleSendOtp}
59
+ >
60
+ {t('RESEND_CODE', 'Resend code')}
61
+ </Button>
62
+ </Container>
63
+ )
64
+ }