ordering-ui-external 1.4.5 → 1.5.1

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 (155) hide show
  1. package/_bundles/{0.ordering-ui.9c913f613f7ccfd32dd9.js → 0.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  2. package/_bundles/{1.ordering-ui.9c913f613f7ccfd32dd9.js → 1.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  3. package/_bundles/{2.ordering-ui.9c913f613f7ccfd32dd9.js → 2.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  4. package/_bundles/{4.ordering-ui.9c913f613f7ccfd32dd9.js → 4.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  5. package/_bundles/{5.ordering-ui.9c913f613f7ccfd32dd9.js → 5.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  6. package/_bundles/{6.ordering-ui.9c913f613f7ccfd32dd9.js → 6.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  7. package/_bundles/{7.ordering-ui.9c913f613f7ccfd32dd9.js → 7.ordering-ui.5de718771fdf8a9bc402.js} +2 -2
  8. package/_bundles/{7.ordering-ui.9c913f613f7ccfd32dd9.js.LICENSE.txt → 7.ordering-ui.5de718771fdf8a9bc402.js.LICENSE.txt} +0 -0
  9. package/_bundles/{8.ordering-ui.9c913f613f7ccfd32dd9.js → 8.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  10. package/_bundles/{9.ordering-ui.9c913f613f7ccfd32dd9.js → 9.ordering-ui.5de718771fdf8a9bc402.js} +1 -1
  11. package/_bundles/{ordering-ui.9c913f613f7ccfd32dd9.js → ordering-ui.5de718771fdf8a9bc402.js} +2 -2
  12. package/_bundles/{ordering-ui.9c913f613f7ccfd32dd9.js.LICENSE.txt → ordering-ui.5de718771fdf8a9bc402.js.LICENSE.txt} +0 -0
  13. package/_modules/components/LogoutButton/index.js +9 -4
  14. package/_modules/components/PaymentOptions/index.js +14 -7
  15. package/_modules/components/SpinnerLoader/styles.js +1 -1
  16. package/_modules/components/UserProfileForm/index.js +15 -2
  17. package/_modules/components/UserProfileForm/styles.js +1 -1
  18. package/_modules/hooks/useRecaptcha.js +62 -0
  19. package/_modules/themes/five/src/components/AddressForm/styles.js +3 -3
  20. package/_modules/themes/five/src/components/AddressList/index.js +1 -1
  21. package/_modules/themes/five/src/components/AddressList/styles.js +1 -1
  22. package/_modules/themes/five/src/components/BusinessBasicInformation/index.js +5 -5
  23. package/_modules/themes/five/src/components/BusinessBasicInformation/styles.js +12 -10
  24. package/_modules/themes/five/src/components/BusinessController/index.js +6 -4
  25. package/_modules/themes/five/src/components/BusinessController/styles.js +10 -4
  26. package/_modules/themes/five/src/components/BusinessListingSearch/index.js +21 -6
  27. package/_modules/themes/five/src/components/BusinessProductsCategories/index.js +6 -17
  28. package/_modules/themes/five/src/components/BusinessProductsCategories/styles.js +3 -4
  29. package/_modules/themes/five/src/components/BusinessProductsListing/index.js +11 -3
  30. package/_modules/themes/five/src/components/BusinessProductsListing/styles.js +2 -2
  31. package/_modules/themes/five/src/components/BusinessReviews/index.js +16 -8
  32. package/_modules/themes/five/src/components/BusinessReviews/styles.js +6 -4
  33. package/_modules/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/index.js +58 -34
  34. package/_modules/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/styles.js +40 -23
  35. package/_modules/themes/five/src/components/DriverTips/styles.js +1 -1
  36. package/_modules/themes/five/src/components/Footer/index.js +2 -1
  37. package/_modules/themes/five/src/components/Footer/styles.js +1 -1
  38. package/_modules/themes/five/src/components/Header/index.js +18 -11
  39. package/_modules/themes/five/src/components/Header/styles.js +7 -7
  40. package/_modules/themes/five/src/components/HomeHero/index.js +0 -15
  41. package/_modules/themes/five/src/components/HomeHero/layouts/OriginalHomeHero/index.js +116 -31
  42. package/_modules/themes/five/src/components/HomeHero/layouts/OriginalHomeHero/styles.js +36 -37
  43. package/_modules/themes/five/src/components/LoginForm/index.js +62 -21
  44. package/_modules/themes/five/src/components/LoginForm/styles.js +1 -1
  45. package/_modules/themes/five/src/components/Messages/index.js +19 -3
  46. package/_modules/themes/five/src/components/MultiOrdersDetails/styles.js +6 -6
  47. package/_modules/themes/five/src/components/MyOrders/index.js +4 -4
  48. package/_modules/themes/five/src/components/NavigationBar/index.js +145 -34
  49. package/_modules/themes/five/src/components/NavigationBar/styles.js +1 -1
  50. package/_modules/themes/five/src/components/OrderDetails/index.js +46 -7
  51. package/_modules/themes/five/src/components/OrderDetails/styles.js +11 -3
  52. package/_modules/themes/five/src/components/PaymentOptionStripe/index.js +2 -14
  53. package/_modules/themes/five/src/components/PaymentOptions/index.js +23 -16
  54. package/_modules/themes/five/src/components/PaymentOptions/styles.js +1 -1
  55. package/_modules/themes/five/src/components/ProductForm/index.js +9 -7
  56. package/_modules/themes/five/src/components/ProductItemAccordion/index.js +10 -4
  57. package/_modules/themes/five/src/components/ProductItemAccordion/styles.js +11 -3
  58. package/_modules/themes/five/src/components/ProductShare/ProductCopyURL.js +61 -0
  59. package/_modules/themes/five/src/components/ProductShare/index.js +107 -0
  60. package/_modules/themes/five/src/components/ProductShare/styles.js +40 -0
  61. package/_modules/themes/five/src/components/RenderProductsLayout/index.js +3 -2
  62. package/_modules/themes/five/src/components/RenderProductsLayout/styles.js +18 -16
  63. package/_modules/themes/five/src/components/ReviewProduct/index.js +5 -3
  64. package/_modules/themes/five/src/components/ReviewProduct/styles.js +19 -3
  65. package/_modules/themes/five/src/components/SearchProducts/index.js +13 -2
  66. package/_modules/themes/five/src/components/SignUpApproval/index.js +6 -6
  67. package/_modules/themes/five/src/components/SignUpBusiness/layouts/NewSignUpBusiness/index.js +57 -17
  68. package/_modules/themes/five/src/components/SignUpBusiness/layouts/OldSignUpBusiness/index.js +57 -17
  69. package/_modules/themes/five/src/components/SignUpDriver/layouts/NewSignUpDriver/index.js +57 -17
  70. package/_modules/themes/five/src/components/SignUpDriver/layouts/OldSignUpDriver/index.js +57 -17
  71. package/_modules/themes/five/src/components/SignUpForm/index.js +60 -20
  72. package/_modules/themes/five/src/components/SignUpForm/styles.js +2 -2
  73. package/_modules/themes/five/src/components/SingleProductCard/index.js +36 -2
  74. package/_modules/themes/five/src/components/UserProfileForm/index.js +105 -8
  75. package/_modules/themes/five/src/components/UserProfileForm/styles.js +30 -17
  76. package/_modules/utils/index.js +26 -11
  77. package/index-template.js +11 -1
  78. package/package.json +2 -2
  79. package/src/components/LogoutButton/index.js +10 -8
  80. package/src/components/PaymentOptions/index.js +16 -11
  81. package/src/components/SpinnerLoader/styles.js +1 -0
  82. package/src/components/UserProfileForm/index.js +12 -2
  83. package/src/components/UserProfileForm/styles.js +1 -1
  84. package/src/hooks/useRecaptcha.js +40 -0
  85. package/src/themes/five/src/components/AddressForm/styles.js +3 -2
  86. package/src/themes/five/src/components/AddressList/index.js +1 -1
  87. package/src/themes/five/src/components/AddressList/styles.js +2 -2
  88. package/src/themes/five/src/components/BusinessBasicInformation/index.js +74 -71
  89. package/src/themes/five/src/components/BusinessBasicInformation/styles.js +69 -20
  90. package/src/themes/five/src/components/BusinessController/index.js +3 -1
  91. package/src/themes/five/src/components/BusinessController/styles.js +8 -0
  92. package/src/themes/five/src/components/BusinessListingSearch/index.js +16 -1
  93. package/src/themes/five/src/components/BusinessProductsCategories/index.js +6 -18
  94. package/src/themes/five/src/components/BusinessProductsCategories/styles.js +1 -1
  95. package/src/themes/five/src/components/BusinessProductsListing/index.js +2 -0
  96. package/src/themes/five/src/components/BusinessProductsListing/styles.js +2 -3
  97. package/src/themes/five/src/components/BusinessReviews/index.js +17 -10
  98. package/src/themes/five/src/components/BusinessReviews/styles.js +7 -0
  99. package/src/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/index.js +64 -19
  100. package/src/themes/five/src/components/BusinessesListing/layouts/OriginalBusinessesListing/styles.js +99 -1
  101. package/src/themes/five/src/components/DriverTips/styles.js +1 -1
  102. package/src/themes/five/src/components/Footer/index.js +9 -5
  103. package/src/themes/five/src/components/Footer/styles.js +2 -6
  104. package/src/themes/five/src/components/Header/index.js +16 -8
  105. package/src/themes/five/src/components/Header/styles.js +49 -8
  106. package/src/themes/five/src/components/HomeHero/index.js +0 -6
  107. package/src/themes/five/src/components/HomeHero/layouts/OriginalHomeHero/index.js +163 -60
  108. package/src/themes/five/src/components/HomeHero/layouts/OriginalHomeHero/styles.js +145 -82
  109. package/src/themes/five/src/components/LoginForm/index.js +30 -4
  110. package/src/themes/five/src/components/LoginForm/styles.js +8 -0
  111. package/src/themes/five/src/components/Messages/index.js +8 -2
  112. package/src/themes/five/src/components/MultiOrdersDetails/styles.js +34 -1
  113. package/src/themes/five/src/components/MyOrders/index.js +4 -4
  114. package/src/themes/five/src/components/NavigationBar/index.js +153 -39
  115. package/src/themes/five/src/components/NavigationBar/styles.js +2 -2
  116. package/src/themes/five/src/components/OrderDetails/index.js +45 -8
  117. package/src/themes/five/src/components/OrderDetails/styles.js +50 -0
  118. package/src/themes/five/src/components/PaymentOptionStripe/index.js +2 -14
  119. package/src/themes/five/src/components/PaymentOptions/index.js +13 -7
  120. package/src/themes/five/src/components/PaymentOptions/styles.js +5 -0
  121. package/src/themes/five/src/components/ProductForm/index.js +9 -7
  122. package/src/themes/five/src/components/ProductItemAccordion/index.js +67 -53
  123. package/src/themes/five/src/components/ProductItemAccordion/styles.js +26 -0
  124. package/src/themes/five/src/components/ProductShare/ProductCopyURL.js +53 -0
  125. package/src/themes/five/src/components/ProductShare/index.js +104 -0
  126. package/src/themes/five/src/components/ProductShare/styles.js +165 -0
  127. package/src/themes/five/src/components/RenderProductsLayout/index.js +2 -8
  128. package/src/themes/five/src/components/RenderProductsLayout/styles.js +5 -0
  129. package/src/themes/five/src/components/ReviewProduct/index.js +10 -3
  130. package/src/themes/five/src/components/ReviewProduct/styles.js +43 -0
  131. package/src/themes/five/src/components/SearchProducts/index.js +16 -3
  132. package/src/themes/five/src/components/SignUpApproval/index.js +8 -7
  133. package/src/themes/five/src/components/SignUpBusiness/layouts/NewSignUpBusiness/index.js +26 -2
  134. package/src/themes/five/src/components/SignUpBusiness/layouts/OldSignUpBusiness/index.js +26 -2
  135. package/src/themes/five/src/components/SignUpDriver/layouts/NewSignUpDriver/index.js +26 -2
  136. package/src/themes/five/src/components/SignUpDriver/layouts/OldSignUpDriver/index.js +26 -2
  137. package/src/themes/five/src/components/SignUpForm/index.js +26 -1
  138. package/src/themes/five/src/components/SignUpForm/styles.js +9 -2
  139. package/src/themes/five/src/components/SingleProductCard/index.js +26 -1
  140. package/src/themes/five/src/components/UserPopover/index.js +1 -1
  141. package/src/themes/five/src/components/UserProfileForm/index.js +83 -5
  142. package/src/themes/five/src/components/UserProfileForm/styles.js +49 -0
  143. package/src/utils/index.js +36 -9
  144. package/template/app.js +12 -11
  145. package/template/assets/images/amex.svg +30 -0
  146. package/template/assets/images/diners.svg +16 -0
  147. package/template/assets/images/discover.svg +17 -0
  148. package/template/assets/images/jcb.svg +33 -0
  149. package/template/assets/images/unionpay.svg +25 -0
  150. package/template/components/HelmetTags/index.js +1 -1
  151. package/template/components/ScrollToTop/index.js +7 -5
  152. package/template/pages/BusinessProductsList/index.js +8 -4
  153. package/template/pages/MyOrders/index.js +4 -1
  154. package/template/pages/OrderDetails/index.js +11 -2
  155. package/template/pages/Profile/index.js +8 -2
@@ -100,7 +100,6 @@ const BusinessProductsCategoriesUI = (props) => {
100
100
  })
101
101
 
102
102
  const navbar = document.getElementById('category-lists')
103
- const cart = document.getElementById('BusinessCartContainer')
104
103
  const search = document.getElementById('WrapperSearchAbsolute')
105
104
  const wrapperCategories = document.getElementById('wrapper-categories')
106
105
  const limit = window.pageYOffset >= wrapperCategories?.offsetTop && window.pageYOffset > 0
@@ -109,12 +108,10 @@ const BusinessProductsCategoriesUI = (props) => {
109
108
  const classAdded = navbar.classList.contains('sticky-prod-cat')
110
109
  if (!classAdded) {
111
110
  navbar && navbar.classList.add('sticky-prod-cat')
112
- cart && cart.classList.add('sticky-prod-cart')
113
111
  search && search.classList.add('sticky-search')
114
112
  }
115
113
  } else {
116
114
  navbar && navbar.classList.remove('sticky-prod-cat')
117
- cart && cart.classList.remove('sticky-prod-cart')
118
115
  search && search.classList.remove('sticky-search')
119
116
  }
120
117
  }
@@ -131,26 +128,17 @@ const BusinessProductsCategoriesUI = (props) => {
131
128
  style0 += `width: calc(100% - ${useKioskApp ? '50px' : '155px'}) !important;`
132
129
  style0 += '}'
133
130
 
134
- let style1 = '.sticky-prod-cart {'
131
+ let style1 = '.sticky-search {'
135
132
  style1 += 'position: fixed !important;'
136
- style1 += 'top: 38px !important;'
137
- style1 += 'right: 2.5% !important;'
138
- style1 += 'width: 28.5% !important;'
139
- style1 += 'margin-top: 32px !important;'
133
+ style1 += 'top: 0px !important;'
134
+ style1 += 'right: 0% !important;'
135
+ style1 += 'z-index: 9999 !important;'
136
+ style1 += 'width: 50px !important;'
137
+ style1 += `background-color: ${theme.colors.backgroundPage} !important;`
140
138
  style1 += '}'
141
139
 
142
- let style2 = '.sticky-search {'
143
- style2 += 'position: fixed !important;'
144
- style2 += 'top: 0px !important;'
145
- style2 += 'right: 0% !important;'
146
- style2 += 'z-index: 9999 !important;'
147
- style2 += 'width: 50px !important;'
148
- style2 += `background-color: ${theme.colors.backgroundPage} !important;`
149
- style2 += '}'
150
-
151
140
  styleSheet.insertRule(style0, 0)
152
141
  styleSheet.insertRule(style1, 1)
153
- styleSheet.insertRule(style2, 2)
154
142
 
155
143
  window.addEventListener('scroll', handleScroll)
156
144
  return () => window.removeEventListener('scroll', handleScroll)
@@ -10,7 +10,7 @@ export const CategoriesContainer = styled.div`
10
10
  top: 0;
11
11
  border-bottom: 1px solid #D9D9D9;
12
12
  text-align: center;
13
- width: ${props => props.w ?? '100%'};
13
+ width: ${props => props.w || '100%'};
14
14
 
15
15
  div.category {
16
16
  text-overflow: ellipsis;
@@ -430,6 +430,7 @@ const BusinessProductsListingUI = (props) => {
430
430
  professionalList={business?.professionals}
431
431
  professionalSelected={professionalSelected}
432
432
  handleChangeProfessional={handleChangeProfessionalSelected}
433
+ productAddedToCartLength={currentCart?.products?.reduce((productsLength, Cproduct) => { return productsLength + (Cproduct?.id === (productModal.product || curProduct)?.id ? Cproduct?.quantity : 0) }, 0) || 0}
433
434
  />
434
435
  ) : (
435
436
  <ProductForm
@@ -438,6 +439,7 @@ const BusinessProductsListingUI = (props) => {
438
439
  product={productModal.product || curProduct}
439
440
  businessId={business?.id}
440
441
  onSave={handlerProductAction}
442
+ productAddedToCartLength={currentCart?.products?.reduce((productsLength, Cproduct) => { return productsLength + (Cproduct?.id === (productModal.product || curProduct)?.id ? Cproduct?.quantity : 0) }, 0) || 0}
441
443
  />
442
444
  )}
443
445
  </>
@@ -3,7 +3,6 @@ import styled, { css } from 'styled-components'
3
3
  export const ProductsContainer = styled.div`
4
4
  width: 95%;
5
5
  margin: 20px auto 0px;
6
- overflow-x: hidden;
7
6
  > svg {
8
7
  color: ${props => props.theme.colors.headingColor};
9
8
  font-size: 24px;
@@ -32,12 +31,12 @@ export const MobileCartViewWrapper = styled.div`
32
31
  left: 0;
33
32
  bottom: 0;
34
33
  background-color: white;
35
- padding: 10px 25px;
34
+ padding: 15px 25px;
36
35
  display: flex;
37
36
  align-items: center;
38
37
  justify-content: space-between;
39
38
  box-sizing: border-box;
40
- z-index: 1000;
39
+ z-index: 1006;
41
40
  box-shadow: 0px 4px 10px rgb(0 0 0 / 12%);
42
41
 
43
42
  span {
@@ -19,19 +19,24 @@ import {
19
19
  ReviewTime,
20
20
  ReviewItemHeader,
21
21
  ReviewItemContent,
22
- SearchContainer
22
+ SearchContainer,
23
+ ReviewStars
23
24
  } from './styles'
24
25
 
25
26
  import BsFillStarFill from '@meronex/icons/bs/BsFillStarFill'
27
+ import { StarFill } from 'react-bootstrap-icons'
26
28
 
27
29
  export const BusinessReviewsUI = (props) => {
28
- const { stars, reviewsList, handleClickOption } = props
30
+ const { stars, reviewsList, handleClickOption, onChangeReview } = props
29
31
  const [, t] = useLanguage()
30
32
  const [theme] = useTheme()
31
33
  const [orderingTheme] = useOrderingTheme()
32
34
  const handleOnChange = (evt) => {
33
- if (evt.target.value === '') handleClickOption('all')
34
- else handleClickOption(evt.target.value)
35
+ if (evt.target.value) onChangeReview(evt.target.value)
36
+ else onChangeReview('')
37
+ }
38
+ const handleClickRaiting = (raiting) => {
39
+ if (raiting) handleClickOption(raiting)
35
40
  }
36
41
 
37
42
  const showRanking = !orderingTheme?.theme?.business_view?.components?.reviews?.components?.ranking?.hidden
@@ -40,7 +45,7 @@ export const BusinessReviewsUI = (props) => {
40
45
  const showSearch = !orderingTheme?.theme?.business_view?.components?.reviews?.components?.search?.hidden
41
46
  const hideElement = !(!showReviewDate && !showCustomerComments)
42
47
 
43
- const reviewPoints = [t('TERRIBLE', 'Terrible'), t('BAD', 'Bad'), t('OKAY', 'Okay'), t('GOOD', 'Good'), t('GREAT', 'Great')]
48
+ const reviewPoints = [1, 2, 3, 4, 5]
44
49
 
45
50
  return (
46
51
  <>
@@ -71,9 +76,7 @@ export const BusinessReviewsUI = (props) => {
71
76
  ? (
72
77
  <SearchContainer>
73
78
  <input
74
- type='number'
75
- min='1'
76
- max='5'
79
+ type= 'text'
77
80
  onChange={handleOnChange}
78
81
  placeholder={t('SEARCH', 'Search')}
79
82
  style={{ backgroundImage: `url(${theme?.images?.general?.searchIcon})` }}
@@ -85,7 +88,7 @@ export const BusinessReviewsUI = (props) => {
85
88
  )}
86
89
  {showRanking && (
87
90
  <ReviewsProgressWrapper>
88
- <p>{t('REVIEW_ORDER', 'Review order')}</p>
91
+ <p>{t('CUSTOMER_REVIEWS', 'Customers reviews')}</p>
89
92
  <ReviewsProgressContent>
90
93
  <ReviewsProgressBar style={{ width: `${(stars / 5) * 100}%` }} />
91
94
  {reviewPoints.map((reviewPoint, i) => {
@@ -93,12 +96,16 @@ export const BusinessReviewsUI = (props) => {
93
96
  return (
94
97
  <ReviewsMarkPoint
95
98
  key={i}
99
+ onClick={() => handleClickRaiting(i + 1)}
96
100
  style={{
97
101
  left: theme.rtl !== isLastReviewPoint ? 'initial' : `${25 * (isLastReviewPoint ? 0 : i)}%`,
98
102
  right: theme.rtl !== isLastReviewPoint ? `${25 * (isLastReviewPoint ? 0 : i)}%` : 'initial'
99
103
  }}
100
104
  >
101
- {reviewPoint}
105
+ <ReviewStars>
106
+ {reviewPoint}
107
+ <StarFill className='start' />
108
+ </ReviewStars>
102
109
  </ReviewsMarkPoint>
103
110
  )
104
111
  })}
@@ -121,6 +121,7 @@ export const ReviewsMarkPoint = styled.span`
121
121
  top: 15px;
122
122
  font-size: 12px;
123
123
  color: #CED4DA;
124
+ cursor: pointer
124
125
  `
125
126
 
126
127
  export const ReviewTime = styled.p`
@@ -159,3 +160,9 @@ export const SearchContainer = styled.div`
159
160
  `}
160
161
  }
161
162
  `
163
+
164
+ export const ReviewStars = styled.div`
165
+ display: flex;
166
+ align-items: center;
167
+ gap: 5px;
168
+ `
@@ -4,6 +4,7 @@ import FiMap from '@meronex/icons/fi/FiMap'
4
4
  import FiFilter from '@meronex/icons/fi/FiFilter'
5
5
  import IosRadioButtonOff from '@meronex/icons/ios/IosRadioButtonOff'
6
6
  import RiRadioButtonFill from '@meronex/icons/ri/RiRadioButtonFill'
7
+ import FaMapMarkerAlt from '@meronex/icons/fa/FaMapMarkerAlt'
7
8
  import {
8
9
  useOrder,
9
10
  useSession,
@@ -26,9 +27,14 @@ import {
26
27
  BusinessCityList,
27
28
  CityItem,
28
29
  BusinessLogo,
29
- BusinessLogosContainer
30
+ BusinessLogosContainer,
31
+ BusinessBanner,
32
+ BusinessFeatures,
33
+ AddressMenu,
34
+ FeatureItems,
35
+ ItemInline
30
36
  } from './styles'
31
-
37
+ import { useWindowSize } from '../../../../../../../hooks/useWindowSize'
32
38
  import { Button } from '../../../../styles/Buttons'
33
39
  import { NotFoundSource } from '../../../NotFoundSource'
34
40
 
@@ -48,6 +54,8 @@ import { BusinessPreorder } from '../../../BusinessPreorder'
48
54
  import { OrderProgress } from '../../../OrderProgress'
49
55
 
50
56
  import Skeleton from 'react-loading-skeleton'
57
+ import { MomentPopover } from '../../../../../../pwa/src/components/MomentPopover'
58
+ import { OrderTypeSelectorHeader } from '../../../../../../../components/OrderTypeSelectorHeader'
51
59
 
52
60
  const PIXELS_TO_SCROLL = 300
53
61
 
@@ -75,10 +83,12 @@ const BusinessesListingUI = (props) => {
75
83
  const [orderState, { changeCityFilter }] = useOrder()
76
84
  const [{ auth }] = useSession()
77
85
  const [{ configs }] = useConfig()
86
+ const windowSize = useWindowSize()
78
87
  const theme = useTheme()
79
88
  const [modals, setModals] = useState({ listOpen: false, formOpen: false, citiesOpen: false })
80
89
  const [alertState, setAlertState] = useState({ open: false, content: [] })
81
90
  const [activeMap, setActiveMap] = useState(false)
91
+ const [openPopover, setOpenPopover] = useState({})
82
92
  const [mapErrors, setMapErrors] = useState('')
83
93
  const [isPreorder, setIsPreorder] = useState(false)
84
94
  const [preorderBusiness, setPreorderBusiness] = useState(null)
@@ -112,6 +122,20 @@ const BusinessesListingUI = (props) => {
112
122
  }
113
123
  }
114
124
 
125
+ const handleTogglePopover = (type) => {
126
+ setOpenPopover({
127
+ ...openPopover,
128
+ [type]: !openPopover[type]
129
+ })
130
+ }
131
+
132
+ const handleClosePopover = (type) => {
133
+ setOpenPopover({
134
+ ...openPopover,
135
+ [type]: false
136
+ })
137
+ }
138
+
115
139
  const handleFindBusinesses = () => {
116
140
  if (!orderState?.options?.address?.location) {
117
141
  setAlertState({ open: true, content: [t('SELECT_AN_ADDRESS_TO_SEARCH', 'Select or add an address to search')] })
@@ -248,18 +272,45 @@ const BusinessesListingUI = (props) => {
248
272
  {props.beforeComponents?.map((BeforeComponent, i) => (
249
273
  <BeforeComponent key={i} {...props} />))}
250
274
  <BusinessContainer>
251
- <BusinessHeroImg
252
- bgimage={theme.images?.general?.businessHero}
253
- height={theme?.business_listing_view?.components?.business_hero?.style?.height}
254
- />
255
- <OrderProgressWrapper>
256
- <OrderProgress
257
- franchiseId={props.franchiseId}
258
- userCustomerId={userCustomer?.id}
259
- asDashboard={isCustomerMode}
260
- isCustomerMode={isCustomerMode}
275
+ <BusinessBanner>
276
+ {windowSize.width < 576 && (
277
+ <BusinessFeatures>
278
+ <AddressMenu
279
+ onClick={() => handleClickAddress()}
280
+ >
281
+ <FaMapMarkerAlt />
282
+ <span>{orderState.options?.address?.address || t('WHERE_DO_WE_DELIVERY', 'Where do we delivery?')}</span>
283
+ </AddressMenu>
284
+ <FeatureItems>
285
+ <ItemInline>
286
+ <OrderTypeSelectorHeader />
287
+ </ItemInline>
288
+ <ItemInline>
289
+ <MomentPopover
290
+ open={openPopover.moment}
291
+ onClick={() => handleTogglePopover('moment')}
292
+ onClose={() => handleClosePopover('moment')}
293
+ isBanner
294
+ />
295
+ </ItemInline>
296
+ </FeatureItems>
297
+ </BusinessFeatures>
298
+ )}
299
+ <BusinessHeroImg
300
+ bgimage={theme.images?.general?.businessHero}
301
+ height={theme?.business_listing_view?.components?.business_hero?.style?.height}
261
302
  />
262
- </OrderProgressWrapper>
303
+ </BusinessBanner>
304
+ {!!Object.values(orderState?.carts)?.length && (
305
+ <OrderProgressWrapper>
306
+ <OrderProgress
307
+ franchiseId={props.franchiseId}
308
+ userCustomerId={userCustomer?.id}
309
+ asDashboard={isCustomerMode}
310
+ isCustomerMode={isCustomerMode}
311
+ />
312
+ </OrderProgressWrapper>
313
+ )}
263
314
  {isCustomerMode && (
264
315
  <OrdersSection titleContent={t('PREVIOUS_ORDERS', 'Previous orders')} />
265
316
  )}
@@ -413,11 +464,6 @@ const BusinessesListingUI = (props) => {
413
464
  />
414
465
  ))
415
466
  )}
416
- {businessesList.error && businessesList.error.length > 0 && businessesList.businesses.length === 0 && (
417
- businessesList.error.map((e, i) => (
418
- <ErrorMessage key={i}>{t('ERROR', 'ERROR')}: [{e?.message || e}]</ErrorMessage>
419
- ))
420
- )}
421
467
  </BusinessList>
422
468
  </>
423
469
  <Modal
@@ -513,6 +559,5 @@ export const OriginalBusinessesListing = (props) => {
513
559
  UIComponent: BusinessesListingUI,
514
560
  paginationSettings: { initialPage: 1, pageSize: 25, controlType: 'infinity' }
515
561
  }
516
-
517
562
  return <BusinessListController {...businessListingProps} />
518
563
  }
@@ -7,6 +7,104 @@ export const BusinessContainer = styled.div`
7
7
  width: 100%;
8
8
  `
9
9
 
10
+ export const BusinessBanner = styled.div`
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ margin-bottom: 30px;
15
+ position: relative;
16
+ @media (max-width: 481px) {
17
+ margin-bottom: 0px;
18
+ }
19
+ `
20
+
21
+ export const BusinessFeatures = styled.div`
22
+ position: absolute;
23
+ top: 10%;
24
+ width: 100%;
25
+ padding: 0 15px;
26
+ box-sizing: border-box;
27
+ `
28
+
29
+ export const AddressMenu = styled.div`
30
+ cursor: pointer;
31
+ font-size: 14px;
32
+ display: flex;
33
+ align-items: center;
34
+ background-color: #fff;
35
+ color: #344050;
36
+ font-weight: 600;
37
+ border-radius: 50px;
38
+ padding: 13px 19px;
39
+ margin-bottom: 10px;
40
+ span {
41
+ width: 100%;
42
+ overflow: hidden;
43
+ text-overflow: ellipsis;
44
+ white-space: nowrap;
45
+ }
46
+ svg {
47
+ margin-right: 5px;
48
+ color: #B1BCCC;
49
+ ${props => props.theme?.rtl && css`
50
+ margin-left: 5px;
51
+ margin-right: 0;
52
+ `}
53
+ }
54
+ `
55
+
56
+ export const FeatureItems = styled.div`
57
+ width: 100%;
58
+ display: flex;
59
+ justify-content: space-between;
60
+ `
61
+
62
+ export const ItemInline = styled.div`
63
+ > span #select-input {
64
+ background-color: #F8F9FA !important;
65
+ border: none;
66
+ border-radius: 7.6px;
67
+ svg {
68
+ font-size: 14px;
69
+ }
70
+ #list {
71
+ background-color: #fff;
72
+ border: none;
73
+ border-radius: 7.6px;
74
+ left: 0px;
75
+ right: initial;
76
+ ${props => props.theme.rtl && css`
77
+ left: initial;
78
+ right: 0px;
79
+ `}
80
+ }
81
+ > div:first-child {
82
+ font-size: 11px;
83
+ }
84
+ }
85
+ .moment-popover {
86
+ > div:first-child {
87
+ font-size: 11px;
88
+ padding: 4px 7px;
89
+ svg {
90
+ font-size: 14px;
91
+ }
92
+ }
93
+ }
94
+ `
95
+
96
+ export const BusinessSearch = styled.div`
97
+ display: flex;
98
+ background-color: #f8f9fa;
99
+ align-items: center;
100
+ padding: 7px;
101
+ border-radius: 7px;
102
+ font-size: 11px;
103
+ svg {
104
+ font-size: 15px;
105
+ }
106
+ `
107
+
10
108
  export const BusinessList = styled.div`
11
109
  display: flex;
12
110
  flex-wrap: wrap;
@@ -87,7 +185,7 @@ export const BusinessesTitle = styled.h1`
87
185
  export const BusinessHeroImgStyled = styled.div`
88
186
  margin-bottom: 30px;
89
187
  width: 100%;
90
- height: 230px;
188
+ height: calc(65vh - 98px);
91
189
  ${({ bgimage }) => bgimage && css`
92
190
  background-repeat: no-repeat, repeat;
93
191
  background-size: cover;
@@ -80,7 +80,7 @@ export const DriverTipMessage = styled.p`
80
80
  export const WrapperTips = styled.div`
81
81
  display: flex;
82
82
  width: 100%;
83
- justify-content: space-between;
83
+ justify-content: flex-start;
84
84
  align-items: center;
85
85
  flex-wrap: wrap;
86
86
 
@@ -1,6 +1,8 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
  import { useApi } from 'ordering-components-external'
3
3
 
4
+ import { Container } from './styles'
5
+
4
6
  export const Footer = () => {
5
7
  const [footerState, setfooterState] = useState({ body: null, loading: false, error: null })
6
8
  const [ordering] = useApi()
@@ -35,15 +37,17 @@ export const Footer = () => {
35
37
  }, [])
36
38
 
37
39
  return (
38
- <>
40
+ <Container>
39
41
  {
40
42
  footerState.body && (
41
- <div style={{ wordBreak: 'break-all', padding: '0px 10px'}} dangerouslySetInnerHTML={{
42
- __html: footerState.body
43
- }}
43
+ <div
44
+ style={{ wordBreak: 'break-all', padding: '0px 10px' }}
45
+ dangerouslySetInnerHTML={{
46
+ __html: footerState.body
47
+ }}
44
48
  />
45
49
  )
46
50
  }
47
- </>
51
+ </Container>
48
52
  )
49
53
  }
@@ -1,14 +1,10 @@
1
1
  import styled, { css } from 'styled-components'
2
2
 
3
3
  export const Container = styled.div`
4
- box-sizing: border-box;
5
- width: 100%;
6
- border-top: 1px solid #d9d9d9;
7
- padding: 15px;
8
- background: #F8F9FA;
4
+ display: none;
9
5
 
10
6
  @media (min-width: 768px) {
11
- padding: 30px 40px 30px;
7
+ display: block;
12
8
  }
13
9
  `
14
10
 
@@ -212,7 +212,7 @@ export const Header = (props) => {
212
212
  <BeforeComponent key={i} {...props} />))}
213
213
  <HeaderContainer>
214
214
  <InnerHeader>
215
- <LeftHeader>
215
+ <LeftHeader id='left-side'>
216
216
  <SidebarMenu
217
217
  auth={auth}
218
218
  isHideSignup={isHideSignup}
@@ -227,7 +227,7 @@ export const Header = (props) => {
227
227
  </LogoHeader>
228
228
  </LeftHeader>
229
229
  {isShowOrderOptions && !props.isCustomLayout && (
230
- <Menu className='left-header' isCustomerMode={isCustomerMode}>
230
+ <Menu id='center-side' className='left-header' isCustomerMode={isCustomerMode}>
231
231
  {windowSize.width > 820 && isFarAway && (
232
232
  <FarAwayMessage>
233
233
  <TiWarningOutline />
@@ -240,7 +240,8 @@ export const Header = (props) => {
240
240
  isCustomerMode={isCustomerMode}
241
241
  onClick={(e) => handleClickUserCustomer(e)}
242
242
  >
243
- <GeoAlt /> {orderState.options?.address?.address?.split(',')?.[0] || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
243
+ <GeoAlt />
244
+ <span>{orderState.options?.address?.address || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}</span>
244
245
  </AddressMenu>
245
246
  <Divider />
246
247
  </>
@@ -268,7 +269,12 @@ export const Header = (props) => {
268
269
  <AddressMenu
269
270
  onClick={() => openModal('address')}
270
271
  >
271
- <GeoAlt /> {orderState.options?.address?.address?.split(',')?.[0] || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
272
+ <GeoAlt />
273
+ <span>
274
+ <p>
275
+ {orderState.options?.address?.address || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
276
+ </p>
277
+ </span>
272
278
  </AddressMenu>
273
279
  )}
274
280
  {!isCustomerMode && (isPreOrderSetting || configState?.configs?.preorder_status_enabled?.value === undefined) && (
@@ -301,7 +307,7 @@ export const Header = (props) => {
301
307
  </Menu>
302
308
  )}
303
309
  {onlineStatus && (
304
- <RightHeader>
310
+ <RightHeader id='right-side'>
305
311
  <Menu isCustomerMode={isCustomerMode}>
306
312
  {
307
313
  !auth && windowSize.width > 920 && (
@@ -374,7 +380,7 @@ export const Header = (props) => {
374
380
  <AddressMenu
375
381
  onClick={() => openModal('address')}
376
382
  >
377
- <GeoAlt /> {orderState.options?.address?.address?.split(',')?.[0] || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
383
+ <GeoAlt /> {orderState.options?.address?.address || t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
378
384
  </AddressMenu>
379
385
  {!isCustomerMode && (isPreOrderSetting || configState?.configs?.preorder_status_enabled?.value === undefined) && (
380
386
  <HeaderOption
@@ -396,7 +402,7 @@ export const Header = (props) => {
396
402
  )}
397
403
  <HeaderOption
398
404
  variant='address'
399
- addressState={orderState?.options?.address?.address?.split(',')?.[0]}
405
+ addressState={orderState?.options?.address?.address}
400
406
  onClick={(variant) => openModal(variant)}
401
407
  />
402
408
  {!isCustomerMode && (isPreOrderSetting || configState?.configs?.preorder_status_enabled?.value === undefined) && (
@@ -413,9 +419,10 @@ export const Header = (props) => {
413
419
  )}
414
420
  {modalIsOpen && (
415
421
  <Modal
422
+ title={(!auth && modalSelected === 'address') && t('WHAT_IS_YOUR_ADDRESS', 'What\'s your address?')}
416
423
  open={modalIsOpen}
417
424
  onClose={() => setModalIsOpen(false)}
418
- width={modalSelected === 'address' ? '70%' : '700px'}
425
+ width={modalSelected === 'address' ? orderState?.options?.user_id ? '70%' : '50%' : '700px'}
419
426
  >
420
427
  {modalSelected === 'cart' && (
421
428
  <CartContent
@@ -504,6 +511,7 @@ export const Header = (props) => {
504
511
  onClose={() => closeAuthModal()}
505
512
  width='50%'
506
513
  authModal
514
+ closeOnBackdrop={false}
507
515
  >
508
516
  {modalPageToShow === 'login' && (
509
517
  <LoginForm