ordering-ui-react-native 0.19.7-testing → 0.19.8-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/VerifyPhone/styles.tsx +1 -2
  6. package/src/components/shared/OToast.tsx +3 -2
  7. package/src/utils/index.tsx +2 -2
  8. package/themes/business/index.tsx +2 -0
  9. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  10. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  11. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  12. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  13. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  14. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  15. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  16. package/themes/business/src/components/Chat/index.tsx +41 -13
  17. package/themes/business/src/components/DriverMap/index.tsx +4 -2
  18. package/themes/business/src/components/DriverSchedule/index.tsx +5 -5
  19. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  20. package/themes/business/src/components/MapView/index.tsx +11 -7
  21. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  22. package/themes/business/src/components/NewOrderNotification/index.tsx +138 -106
  23. package/themes/business/src/components/OrderDetails/Delivery.tsx +19 -10
  24. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +88 -51
  25. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +26 -6
  26. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  27. package/themes/business/src/components/OrderSummary/index.tsx +27 -13
  28. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  29. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  30. package/themes/business/src/components/OrdersOption/index.tsx +83 -37
  31. package/themes/business/src/components/PreviousMessages/FooterMessageComponent.tsx +103 -0
  32. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  33. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +24 -31
  34. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  35. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  36. package/themes/business/src/components/PreviousOrders/index.tsx +192 -220
  37. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  38. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  39. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  40. package/themes/business/src/components/StoresList/index.tsx +5 -3
  41. package/themes/business/src/components/UserProfileForm/index.tsx +26 -10
  42. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  43. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  44. package/themes/business/src/types/index.tsx +10 -0
  45. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  46. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  47. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  48. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  49. package/themes/kiosk/src/components/LoginForm/index.tsx +124 -96
  50. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  51. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  52. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  53. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  54. package/themes/original/index.tsx +7 -3
  55. package/themes/original/src/components/AddressForm/index.tsx +2 -2
  56. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  57. package/themes/original/src/components/AddressList/index.tsx +4 -7
  58. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  59. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  60. package/themes/original/src/components/BusinessBasicInformation/index.tsx +3 -3
  61. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  62. package/themes/original/src/components/BusinessController/index.tsx +9 -6
  63. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  64. package/themes/original/src/components/BusinessInformation/index.tsx +35 -3
  65. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  66. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  67. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  68. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  69. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  70. package/themes/original/src/components/BusinessListingSearch/index.tsx +56 -361
  71. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  72. package/themes/original/src/components/BusinessPreorder/index.tsx +3 -4
  73. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  74. package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
  75. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  76. package/themes/original/src/components/BusinessProductsListing/index.tsx +43 -19
  77. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  78. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  79. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  80. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  81. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  82. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  83. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  84. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +29 -402
  85. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  86. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  87. package/themes/original/src/components/Cart/index.tsx +27 -8
  88. package/themes/original/src/components/CartContent/index.tsx +61 -39
  89. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  90. package/themes/original/src/components/Checkout/index.tsx +199 -55
  91. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  92. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  93. package/themes/original/src/components/DatePicker/index.tsx +17 -0
  94. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  95. package/themes/original/src/components/Favorite/index.tsx +4 -9
  96. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  97. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  98. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  99. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  100. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  101. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  102. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  103. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  104. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  105. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  106. package/themes/original/src/components/GoogleMap/index.tsx +50 -5
  107. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  108. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  109. package/themes/original/src/components/Home/index.tsx +1 -1
  110. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  111. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  112. package/themes/original/src/components/LoginForm/Otp/index.tsx +53 -47
  113. package/themes/original/src/components/LoginForm/index.tsx +6 -1
  114. package/themes/original/src/components/Messages/index.tsx +9 -4
  115. package/themes/original/src/components/Messages/styles.tsx +1 -1
  116. package/themes/original/src/components/MomentOption/index.tsx +4 -4
  117. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  118. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  119. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +13 -4
  120. package/themes/original/src/components/MultiCheckout/index.tsx +226 -52
  121. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  122. package/themes/original/src/components/MultiOrdersDetails/index.tsx +19 -14
  123. package/themes/original/src/components/MyOrders/index.tsx +5 -5
  124. package/themes/original/src/components/NavBar/index.tsx +3 -1
  125. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  126. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  127. package/themes/original/src/components/Notifications/index.tsx +4 -8
  128. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  129. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +7 -3
  130. package/themes/original/src/components/OrderDetails/index.tsx +716 -667
  131. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  132. package/themes/original/src/components/OrderProgress/index.tsx +7 -7
  133. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  134. package/themes/original/src/components/OrderSummary/index.tsx +5 -3
  135. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  136. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  137. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  138. package/themes/original/src/components/OrdersOption/index.tsx +4 -3
  139. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  140. package/themes/original/src/components/PageBanner/index.tsx +3 -0
  141. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  142. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  143. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  144. package/themes/original/src/components/PaymentOptions/index.tsx +75 -33
  145. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  146. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  147. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  148. package/themes/original/src/components/ProductForm/index.tsx +81 -167
  149. package/themes/original/src/components/ProductForm/styles.tsx +1 -1
  150. package/themes/original/src/components/ProductItemAccordion/index.tsx +5 -0
  151. package/themes/original/src/components/ProductOptionSubOption/index.tsx +120 -79
  152. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +10 -9
  153. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  154. package/themes/original/src/components/Promotions/index.tsx +4 -4
  155. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  156. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  157. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  158. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  159. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  160. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  161. package/themes/original/src/components/SingleOrderCard/index.tsx +4 -3
  162. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  163. package/themes/original/src/components/StripeCardsList/index.tsx +23 -8
  164. package/themes/original/src/components/StripeElementsForm/index.tsx +5 -3
  165. package/themes/original/src/components/StripeElementsForm/naked.tsx +12 -1
  166. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  167. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  168. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  169. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  170. package/themes/original/src/components/UserFormDetails/index.tsx +53 -7
  171. package/themes/original/src/components/UserProfile/index.tsx +1 -1
  172. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  173. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  174. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  175. package/themes/original/src/components/Wallets/index.tsx +8 -9
  176. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  177. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  178. package/themes/original/src/components/shared/OInput.tsx +1 -4
  179. package/themes/original/src/components/shared/OModal.tsx +12 -14
  180. package/themes/original/src/layouts/Container.tsx +5 -3
  181. package/themes/original/src/types/index.tsx +10 -2
  182. package/themes/original/src/utils/index.tsx +124 -0
  183. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  184. package/src/navigators/BottomNavigator.tsx +0 -117
  185. package/src/navigators/CheckoutNavigator.tsx +0 -66
  186. package/src/navigators/HomeNavigator.tsx +0 -202
  187. package/src/navigators/NavigationRef.tsx +0 -7
  188. package/src/navigators/RootNavigator.tsx +0 -269
  189. package/src/pages/Account.tsx +0 -34
  190. package/src/pages/AddressForm.tsx +0 -62
  191. package/src/pages/AddressList.tsx +0 -24
  192. package/src/pages/BusinessProductsList.tsx +0 -81
  193. package/src/pages/BusinessesListing.tsx +0 -43
  194. package/src/pages/CartList.tsx +0 -49
  195. package/src/pages/Checkout.tsx +0 -101
  196. package/src/pages/ForgotPassword.tsx +0 -24
  197. package/src/pages/Help.tsx +0 -23
  198. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  199. package/src/pages/HelpGuide.tsx +0 -23
  200. package/src/pages/HelpOrder.tsx +0 -23
  201. package/src/pages/Home.tsx +0 -36
  202. package/src/pages/IntroductoryTutorial.tsx +0 -170
  203. package/src/pages/Login.tsx +0 -47
  204. package/src/pages/MomentOption.tsx +0 -30
  205. package/src/pages/MultiCheckout.tsx +0 -31
  206. package/src/pages/MultiOrdersDetails.tsx +0 -27
  207. package/src/pages/MyOrders.tsx +0 -40
  208. package/src/pages/NetworkError.tsx +0 -24
  209. package/src/pages/NotFound.tsx +0 -22
  210. package/src/pages/OrderDetails.tsx +0 -25
  211. package/src/pages/ProductDetails.tsx +0 -55
  212. package/src/pages/Profile.tsx +0 -36
  213. package/src/pages/ReviewDriver.tsx +0 -30
  214. package/src/pages/ReviewOrder.tsx +0 -32
  215. package/src/pages/ReviewProducts.tsx +0 -30
  216. package/src/pages/Sessions.tsx +0 -22
  217. package/src/pages/Signup.tsx +0 -53
  218. package/src/pages/SpinnerLoader.tsx +0 -10
  219. package/src/pages/Splash.tsx +0 -21
@@ -14,8 +14,7 @@ import {
14
14
 
15
15
  export const Favorite = (props: any) => {
16
16
  const {
17
- navigation,
18
- franchiseId
17
+ navigation
19
18
  } = props
20
19
  const [, t] = useLanguage()
21
20
  const theme = useTheme()
@@ -35,15 +34,14 @@ export const Favorite = (props: any) => {
35
34
  }
36
35
 
37
36
  return (
38
- <Container
39
- pdng={Platform.OS === 'ios' ? '10px' : '20px'}
40
- >
37
+ <Container>
41
38
  <NavBar
42
39
  title={t('FAVORITE', 'Favorite')}
43
40
  titleAlign={'center'}
44
41
  onActionLeft={goToBack}
45
42
  showCall={false}
46
- paddingTop={10}
43
+ paddingTop={Platform.OS === 'ios' ? 20 : 10}
44
+ style={{ paddingVertical: 0 }}
47
45
  btnStyle={{ paddingLeft: 0 }}
48
46
  />
49
47
  <TabContainer>
@@ -73,7 +71,6 @@ export const Favorite = (props: any) => {
73
71
  originalURL='business'
74
72
  location={`${orderState.options?.address?.location?.lat},${orderState.options?.address?.location?.lng}`}
75
73
  propsToFetch={['id', 'name', 'header', 'logo', 'location', 'address', 'ribbon', 'timezone', 'schedule', 'open', 'delivery_price', 'distance', 'delivery_time', 'pickup_time', 'reviews', 'featured', 'offers', 'food', 'laundry', 'alcohol', 'groceries', 'slug']}
76
- franchiseId={franchiseId}
77
74
  />
78
75
  )}
79
76
  {tabSelected === 'products' && (
@@ -82,7 +79,6 @@ export const Favorite = (props: any) => {
82
79
  originalURL='products'
83
80
  onNavigationRedirect={onRedirect}
84
81
  isProduct
85
- franchiseId={franchiseId}
86
82
  />
87
83
  )}
88
84
  {tabSelected === 'orders' && (
@@ -91,7 +87,6 @@ export const Favorite = (props: any) => {
91
87
  favoriteURL='favorite_orders'
92
88
  originalURL='orders'
93
89
  isOrder
94
- franchiseId={franchiseId}
95
90
  />
96
91
  )}
97
92
  </Container>
@@ -16,7 +16,5 @@ export const Tab = styled.TouchableOpacity`
16
16
  `
17
17
 
18
18
  export const Container = styled.View`
19
- padding-horizontal: 40px;
20
19
  padding-bottom: 20px;
21
- padding-top: ${(props: any) => props.pdng};
22
20
  `
@@ -5,7 +5,7 @@ export const Container = styled.View`
5
5
  bottom: 0px;
6
6
  left: 0;
7
7
  right: 0;
8
- padding: 12px 40px;
8
+ padding: 12px 20px;
9
9
  flex-direction: row;
10
10
  border-top-width: 1px;
11
11
  border-color: ${(props: any) => props.theme.colors.border};
@@ -61,7 +61,7 @@ export const GPSButton = (props: any) => {
61
61
  if (trackingStatus === 'not-determined') {
62
62
  trackingStatus = await requestTrackingPermission()
63
63
  }
64
- if (trackingStatus === 'authorized' || trackingStatus === 'unavailable') {
64
+ if ( trackingStatus === 'authorized' || trackingStatus === 'denied' || trackingStatus === 'unavailable') {
65
65
  setLoading(true)
66
66
  Geolocation.getCurrentPosition((pos) => {
67
67
  geoCodePosition(pos.coords)
@@ -56,7 +56,7 @@ export const GiftCardUI = React.memo((props: any) => {
56
56
  <View style={style.actionWrapper}>
57
57
  <OButton
58
58
  onClick={() => setOpenModal('purchase')}
59
- text={t('PURCHASE_GIFT_CARD', 'Purchase gift card')}
59
+ text={t('PURCHASE', 'Purchase')}
60
60
  bgColor={theme.colors.primary}
61
61
  borderColor={theme.colors.primary}
62
62
  textStyle={{ color: 'white', fontSize: 13 }}
@@ -66,7 +66,7 @@ export const GiftCardUI = React.memo((props: any) => {
66
66
 
67
67
  <OButton
68
68
  onClick={() => setOpenModal('redeem')}
69
- text={t('REDEEM_GIFT_CARD', 'Redeem gift card')}
69
+ text={t('REDEEM', 'Redeem')}
70
70
  bgColor={theme.colors.lightPrimary}
71
71
  borderColor={theme.colors.lightPrimary}
72
72
  textStyle={{ color: theme.colors.primary, fontSize: 13 }}
@@ -79,13 +79,18 @@ export const GiftCardUI = React.memo((props: any) => {
79
79
  open={openModal === 'purchase'}
80
80
  onClose={() => setOpenModal(null)}
81
81
  entireModal
82
+ customClose
82
83
  >
83
- <PurchaseGiftCard handleCustomGoToCheckout={handleCustomGoToCheckout} />
84
+ <PurchaseGiftCard
85
+ handleCustomGoToCheckout={handleCustomGoToCheckout}
86
+ onClose={() => setOpenModal(null)}
87
+ />
84
88
  </OModal>
85
89
  <OModal
86
90
  open={openModal === 'redeem'}
87
91
  onClose={() => setOpenModal(null)}
88
92
  entireModal
93
+ customClose
89
94
  >
90
95
  <RedeemGiftCard
91
96
  onClose={() => setOpenModal(null)}
@@ -3,10 +3,11 @@ import {
3
3
  useLanguage,
4
4
  PurchaseGiftCard as PurchaseGiftCardController
5
5
  } from 'ordering-components/native'
6
- import { StyleSheet, View, TouchableOpacity, ScrollView } from 'react-native'
6
+ import { StyleSheet, View, TouchableOpacity, ScrollView, Platform } from 'react-native'
7
7
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
8
8
  import { useTheme } from 'styled-components/native';
9
9
  import { OText, OButton, OIcon } from '../../shared';
10
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
10
11
 
11
12
  import {
12
13
  Container
@@ -17,7 +18,8 @@ const PurchaseGiftCardUI = (props: any) => {
17
18
  productsListState,
18
19
  selectedProduct,
19
20
  setSelectedProduct,
20
- handleAccept
21
+ handleAccept,
22
+ onClose
21
23
  } = props
22
24
 
23
25
  const theme = useTheme()
@@ -42,7 +44,38 @@ const PurchaseGiftCardUI = (props: any) => {
42
44
 
43
45
  return (
44
46
  <Container>
45
- <OText color={theme.colors.textNormal} weight='bold' size={20} mBottom={40}>{t('PURCHASE_GIFT_CARD', 'Purchase gift card')}</OText>
47
+ <View style={{
48
+ marginBottom: 40,
49
+ marginTop: Platform.OS === 'ios' ? 30 : 50,
50
+ display: 'flex',
51
+ flexDirection: 'row',
52
+ alignItems: 'center',
53
+ }}>
54
+ <OButton
55
+ imgLeftStyle={{ width: 18 }}
56
+ imgRightSrc={null}
57
+ style={{
58
+ borderWidth: 0,
59
+ width: 26,
60
+ height: 26,
61
+ backgroundColor: '#FFF',
62
+ borderColor: '#FFF',
63
+ shadowColor: '#FFF',
64
+ paddingLeft: 0,
65
+ paddingRight: 0,
66
+ }}
67
+ onClick={onClose}
68
+ icon={AntDesignIcon}
69
+ iconProps={{
70
+ name: 'arrowleft',
71
+ size: 26,
72
+ style: {
73
+ color: theme.colors.textNormal
74
+ }
75
+ }}
76
+ />
77
+ <OText color={theme.colors.textNormal} weight='bold' size={20} mLeft={10}>{t('PURCHASE_GIFT_CARD', 'Purchase gift card')}</OText>
78
+ </View>
46
79
  <OText color={theme.colors.textNormal} size={14}>{t('SELECT_ONE_OPTION', 'Select one option')}</OText>
47
80
  <ScrollView
48
81
  contentContainerStyle={{
@@ -2,7 +2,7 @@ import styled from 'styled-components/native'
2
2
 
3
3
  export const Container = styled.View`
4
4
  width: 100%;
5
- padding-horizontal: 40px;
5
+ padding-horizontal: 20px;
6
6
  flex: 1;
7
7
  padding-bottom: 30px;
8
8
  `
@@ -3,9 +3,10 @@ import {
3
3
  useLanguage, useUtils, RedeemGiftCard as RedeemGiftCardController
4
4
  } from 'ordering-components/native'
5
5
  import { useForm, Controller } from 'react-hook-form'
6
- import { StyleSheet, View, Alert } from 'react-native';
6
+ import { StyleSheet, View, Alert, Platform } from 'react-native';
7
7
  import { useTheme } from 'styled-components/native';
8
8
  import { OText, OButton, OInput } from '../../shared';
9
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
9
10
 
10
11
  import {
11
12
  Container,
@@ -93,7 +94,38 @@ const RedeemGiftCardUI = (props: any) => {
93
94
  <Container>
94
95
  {!redeemedGiftCard ? (
95
96
  <View>
96
- <OText color={theme.colors.textNormal} weight='bold' size={20} mBottom={40}>{t('REDEEM_GIFT_CARD', 'Redeem a gift card')}</OText>
97
+ <View style={{
98
+ marginBottom: 40,
99
+ marginTop: Platform.OS === 'ios' ? 30 : 50,
100
+ display: 'flex',
101
+ flexDirection: 'row',
102
+ alignItems: 'center',
103
+ }}>
104
+ <OButton
105
+ imgLeftStyle={{ width: 18 }}
106
+ imgRightSrc={null}
107
+ style={{
108
+ borderWidth: 0,
109
+ width: 26,
110
+ height: 26,
111
+ backgroundColor: '#FFF',
112
+ borderColor: '#FFF',
113
+ shadowColor: '#FFF',
114
+ paddingLeft: 0,
115
+ paddingRight: 0,
116
+ }}
117
+ onClick={onClose}
118
+ icon={AntDesignIcon}
119
+ iconProps={{
120
+ name: 'arrowleft',
121
+ size: 26,
122
+ style: {
123
+ color: theme.colors.textNormal
124
+ }
125
+ }}
126
+ />
127
+ <OText color={theme.colors.textNormal} weight='bold' size={20} mLeft={10}>{t('REDEEM_GIFT_CARD', 'Redeem a gift card')}</OText>
128
+ </View>
97
129
  <FormController>
98
130
  <OText color={theme.colors.textNormal} size={14} mBottom={10}>{t('GIFT_CARD_CODE', 'Gift card code')}</OText>
99
131
  <Controller
@@ -106,7 +138,7 @@ const RedeemGiftCardUI = (props: any) => {
106
138
  onChange(val)
107
139
  handleChangeCode(val)
108
140
  }}
109
- autoCapitalize='none'
141
+ autoCapitalize='characters'
110
142
  autoCorrect={false}
111
143
  blurOnSubmit={false}
112
144
  style={style.inputStyle}
@@ -156,7 +188,38 @@ const RedeemGiftCardUI = (props: any) => {
156
188
  </View>
157
189
  ) : (
158
190
  <>
159
- <OText color={theme.colors.textNormal} weight='bold' size={20} mBottom={40}>{t('GIFT_CARD', 'Gift card')}</OText>
191
+ <View style={{
192
+ marginBottom: 40,
193
+ marginTop: Platform.OS === 'ios' ? 30 : 50,
194
+ display: 'flex',
195
+ flexDirection: 'row',
196
+ alignItems: 'center',
197
+ }}>
198
+ <OButton
199
+ imgLeftStyle={{ width: 18 }}
200
+ imgRightSrc={null}
201
+ style={{
202
+ borderWidth: 0,
203
+ width: 26,
204
+ height: 26,
205
+ backgroundColor: '#FFF',
206
+ borderColor: '#FFF',
207
+ shadowColor: '#FFF',
208
+ paddingLeft: 0,
209
+ paddingRight: 0,
210
+ }}
211
+ onClick={onClose}
212
+ icon={AntDesignIcon}
213
+ iconProps={{
214
+ name: 'arrowleft',
215
+ size: 26,
216
+ style: {
217
+ color: theme.colors.textNormal
218
+ }
219
+ }}
220
+ />
221
+ <OText color={theme.colors.textNormal} weight='bold' size={20} mLeft={10}>{t('GIFT_CARD', 'Gift card')}</OText>
222
+ </View>
160
223
  <View>
161
224
  <OText color={theme.colors.textNormal} size={14} mBottom={6}>{t('TYPE', 'Type')}: {redeemedGiftCard?.type}</OText>
162
225
  <OText color={theme.colors.textNormal} size={14} mBottom={6}>{t('AMOUNT', 'Amount')}: {parsePrice(redeemedGiftCard?.amount)}</OText>
@@ -1,7 +1,7 @@
1
1
  import styled from 'styled-components/native'
2
2
 
3
3
  export const Container = styled.View`
4
- padding-horizontal: 40px;
4
+ padding-horizontal: 20px;
5
5
  `
6
6
  export const FormController = styled.View`
7
7
  margin-bottom: 25px;
@@ -84,12 +84,12 @@ const SendGiftCardUI = (props: any) => {
84
84
  />
85
85
  </FormController>
86
86
  <FormController>
87
- <OText color={theme.colors.textNormal} size={14} mBottom={10}>{t('FROM', 'From')}</OText>
87
+ <OText color={theme.colors.textNormal} size={14} mBottom={10}>{t('NAME', 'Name')}</OText>
88
88
  <Controller
89
89
  control={control}
90
90
  render={({ onChange, value }: any) => (
91
91
  <OInput
92
- placeholder={t('WRITE_YOUR_NAME', 'Write your name')}
92
+ placeholder={t('WRITE_A_NAME', 'Write a name')}
93
93
  value={value}
94
94
  onChange={(val: any) => onChange(val)}
95
95
  autoCapitalize='none'
@@ -1,7 +1,7 @@
1
1
  import styled from 'styled-components/native'
2
2
 
3
3
  export const Container = styled.View`
4
- padding-horizontal: 40px;
4
+ padding-horizontal: 20px;
5
5
  margin-bottom: 30px;
6
6
  `
7
7
  export const FormController = styled.View`
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useEffect, useRef } from 'react'
2
2
  import { Dimensions, StyleSheet, View, Platform } from 'react-native';
3
- import MapView, { PROVIDER_DEFAULT, PROVIDER_GOOGLE, Marker, Region, } from 'react-native-maps'
3
+ import MapView, { PROVIDER_DEFAULT, PROVIDER_GOOGLE, Marker, Region, Polygon, Circle } from 'react-native-maps'
4
4
  import Geocoder from 'react-native-geocoding';
5
5
  import { useLanguage, useConfig } from 'ordering-components/native'
6
6
  import { GoogleMapsParams } from '../../types';
@@ -19,7 +19,9 @@ export const GoogleMap = (props: GoogleMapsParams) => {
19
19
  setSaveLocation,
20
20
  handleToggleMap,
21
21
  locations,
22
- isIntGeoCoder
22
+ isIntGeoCoder,
23
+ businessZones,
24
+ delta
23
25
  } = props
24
26
 
25
27
  const [, t] = useLanguage()
@@ -30,8 +32,8 @@ export const GoogleMap = (props: GoogleMapsParams) => {
30
32
  const [region, setRegion] = useState({
31
33
  latitude: location.lat,
32
34
  longitude: location.lng,
33
- latitudeDelta: 0.0010,
34
- longitudeDelta: 0.0010 * ASPECT_RATIO
35
+ latitudeDelta: delta ?? 0.0010,
36
+ longitudeDelta: (delta ?? 0.0010) * ASPECT_RATIO
35
37
  })
36
38
  const [MARKERS, SETMARKERS] = useState(locations)
37
39
  let mapRef = useRef<any>(null)
@@ -44,6 +46,19 @@ export const GoogleMap = (props: GoogleMapsParams) => {
44
46
  ERROR_MAX_LIMIT_LOCATION: `Sorry, You can only set the position to ${maxLimitLocation}m`
45
47
  }
46
48
 
49
+ const units: any = {
50
+ mi: 1609,
51
+ km: 1000
52
+ }
53
+
54
+ const types: any = [1, 2, 5]
55
+
56
+ const fillStyles = {
57
+ fillColor: 'rgba(44, 123, 229, 0.3)',
58
+ strokeColor: 'rgba(44, 123, 229, 1)',
59
+ strokeWidth: 2
60
+ }
61
+
47
62
  const geocodePosition = (pos: { latitude: number, longitude: number }, isMovingRegion ?: boolean) => {
48
63
  Geocoder.from({
49
64
  latitude: pos.latitude,
@@ -69,7 +84,7 @@ export const GoogleMap = (props: GoogleMapsParams) => {
69
84
  }
70
85
  handleChangeAddressMap && handleChangeAddressMap(address, details)
71
86
  setSaveLocation && setSaveLocation(false)
72
- if(!isMovingRegion){
87
+ if(!isMovingRegion){
73
88
  handleToggleMap && handleToggleMap()
74
89
  }
75
90
  } else {
@@ -230,6 +245,36 @@ export const GoogleMap = (props: GoogleMapsParams) => {
230
245
  title={markerTitle || t('YOUR_LOCATION', 'Your Location')}
231
246
  />
232
247
  )}
248
+ {businessZones?.length > 0 && businessZones.filter((item: any) => types.includes(item?.type)).map((businessZone: any, i: number) => (
249
+ <React.Fragment key={i}>
250
+ {businessZone?.type === 2 && Array.isArray(businessZone?.data) && (
251
+ <Polygon
252
+ coordinates={businessZone?.data.map((item: any) => ({ latitude: item.lat, longitude: item.lng}))}
253
+ fillColor={fillStyles.fillColor}
254
+ strokeColor={fillStyles.strokeColor}
255
+ strokeWidth={fillStyles.strokeWidth}
256
+ />
257
+ )}
258
+ {(businessZone.type === 1 && businessZone?.data?.center && businessZone?.data?.radio) && (
259
+ <Circle
260
+ center={{ latitude: businessZone?.data?.center.lat, longitude: businessZone?.data?.center.lng}}
261
+ radius={businessZone?.data.radio * 1000}
262
+ fillColor={fillStyles.fillColor}
263
+ strokeColor={fillStyles.strokeColor}
264
+ strokeWidth={fillStyles.strokeWidth}
265
+ />
266
+ )}
267
+ {(businessZone.type === 5 && businessZone?.data?.distance) && (
268
+ <Circle
269
+ center={{ latitude: center.lat, longitude: center.lng}}
270
+ radius={businessZone?.data.distance * units[businessZone?.data?.unit]}
271
+ fillColor={fillStyles.fillColor}
272
+ strokeColor={fillStyles.strokeColor}
273
+ strokeWidth={fillStyles.strokeWidth}
274
+ />
275
+ )}
276
+ </React.Fragment>
277
+ ))}
233
278
  </MapView>
234
279
  <Alert
235
280
  open={alertState.open}
@@ -56,7 +56,7 @@ const HighestRatedBusinessesUI = (props: HighestRatedBusinessesParams) => {
56
56
  showsHorizontalScrollIndicator={false}
57
57
  nestedScrollEnabled
58
58
  horizontal
59
- style={{ height: 300, paddingHorizontal: 40 }}
59
+ style={{ height: 325, paddingHorizontal: 20 }}
60
60
  >
61
61
  {[
62
62
  ...Array(10).keys()
@@ -162,4 +162,4 @@ export const HighestRatedBusinesses = (props: any) => {
162
162
  };
163
163
 
164
164
  return <BusinessesListingController {...highestRatedBusinessesProps} />;
165
- };
165
+ };
@@ -2,6 +2,6 @@ import styled from 'styled-components/native'
2
2
 
3
3
  export const ListWrapper = styled.View`
4
4
  background-color: ${(props: any) => props.theme.colors.backgroundLight};
5
- padding-horizontal: 40px;
5
+ padding-horizontal: 20px;
6
6
  padding-top: 30px;
7
7
  `;
@@ -92,7 +92,7 @@ const styles = StyleSheet.create({
92
92
  flex: 1,
93
93
  alignItems: 'center',
94
94
  justifyContent: 'space-between',
95
- paddingHorizontal: 40,
95
+ paddingHorizontal: 20,
96
96
  },
97
97
  logo: {
98
98
  marginTop: 64,
@@ -129,7 +129,8 @@ export const LastOrder = (props: OrdersOptionParams) => {
129
129
  initialPage: 1,
130
130
  pageSize: 3,
131
131
  controlType: 'infinity'
132
- }
132
+ },
133
+ noGiftCardOrders: true
133
134
  }
134
135
 
135
136
  return <OrderList {...MyOrdersProps} />
@@ -117,7 +117,8 @@ export const LastOrders = (props: any) => {
117
117
  initialPage: 1,
118
118
  pageSize: 3,
119
119
  controlType: 'infinity'
120
- }
120
+ },
121
+ noGiftCardOrders: true
121
122
  }
122
123
  return <OrderListController {...helpProps} />
123
124
  }
@@ -1,24 +1,27 @@
1
1
  import React, { useEffect, useRef, useState } from 'react'
2
2
  import { formatSeconds } from '../../../utils'
3
- import { StyleSheet, TouchableOpacity, View, Platform } from 'react-native';
3
+ import { StyleSheet, TouchableOpacity, View, SafeAreaView } from 'react-native';
4
4
  import { useCountdownTimer } from '../../../../../../src/hooks/useCountdownTimer';
5
5
  import { useLanguage } from 'ordering-components/native';
6
6
  import { OTPContainer } from './styles';
7
7
  import { OText, OButton, OIcon } from '../../shared';
8
- import OtpInputs from 'react-native-otp-inputs';
8
+ import OtpInputs, { OtpInputsRef } from 'react-native-otp-inputs';
9
9
  import { useTheme } from 'styled-components/native';
10
10
  import { otpParams } from '../../../types'
11
+ import { ActivityIndicator } from 'react-native';
11
12
 
12
13
  export const Otp = (props: otpParams) => {
13
14
  const {
15
+ pinCount,
16
+ otpError,
17
+ setOtpError,
18
+ setAlertState,
14
19
  willVerifyOtpState,
20
+ isCheckingCode,
21
+ setCheckingCode,
15
22
  setWillVerifyOtpState,
16
- onSubmit,
17
23
  handleLoginOtp,
18
- setAlertState,
19
- pinCount,
20
- otpError,
21
- setOtpError
24
+ onSubmit,
22
25
  } = props
23
26
 
24
27
  const theme = useTheme();
@@ -26,8 +29,7 @@ export const Otp = (props: otpParams) => {
26
29
  const [otpLeftTime, _, resetOtpLeftTime]: any = useCountdownTimer(
27
30
  600, willVerifyOtpState)
28
31
 
29
- const [code, setCode] = useState('')
30
- const inputRef = useRef<any>()
32
+ const inputRef = useRef<OtpInputsRef | any>(null)
31
33
 
32
34
  const handleOnSubmit = () => {
33
35
  setAlertState({
@@ -38,14 +40,19 @@ export const Otp = (props: otpParams) => {
38
40
  onSubmit()
39
41
  }
40
42
 
41
- const handleChangeCode = (code : string) => {
42
- setCode(code)
43
- setOtpError(null)
43
+ const handleChangeCode = (code: string) => {
44
+ if (code?.length === pinCount) {
45
+ setCheckingCode && setCheckingCode(true)
46
+ handleLoginOtp(code)
47
+ inputRef.current?.reset && inputRef.current.reset()
48
+ setTimeout(() => inputRef.current?.focus && inputRef.current.focus(), 100)
49
+ }
50
+ setOtpError && setOtpError(null)
44
51
  }
45
52
 
46
53
  const handleCloseOtp = () => {
47
54
  setWillVerifyOtpState(false)
48
- setOtpError(null)
55
+ setOtpError && setOtpError(null)
49
56
  }
50
57
 
51
58
  useEffect(() => {
@@ -58,13 +65,6 @@ export const Otp = (props: otpParams) => {
58
65
  }
59
66
  }, [otpLeftTime])
60
67
 
61
- useEffect(() => {
62
- if (code?.length === (pinCount || 6)) {
63
- handleLoginOtp(code)
64
- inputRef?.current?.reset()
65
- }
66
- }, [code])
67
-
68
68
  const loginStyle = StyleSheet.create({
69
69
  container: {
70
70
  width: '100%',
@@ -87,46 +87,48 @@ export const Otp = (props: otpParams) => {
87
87
  fontSize: 16
88
88
  },
89
89
  wrapperIcon: {
90
- marginTop: Platform.OS === 'ios' ? 40 : 12,
91
- marginBottom: 20,
92
90
  alignItems: 'center',
93
91
  justifyContent: 'center',
94
- paddingRight: 35
92
+ paddingRight: 20
95
93
  },
96
94
  closeContainer: {
97
95
  width: '100%',
98
96
  flexDirection: 'row',
97
+ alignItems: 'center'
98
+ },
99
+ checkingCode: {
100
+ height: 50,
101
+ width: '100%',
102
+ marginVertical: 30,
103
+ justifyContent: 'center',
104
+ alignItems: 'center'
99
105
  }
100
106
  });
101
107
 
102
108
  return (
103
- <>
109
+ <SafeAreaView style={{ flex: 1, backgroundColor: theme.colors.backgroundPage }}>
104
110
  <OTPContainer>
105
- <View
106
- style={loginStyle.closeContainer}>
107
- <TouchableOpacity onPress={() => handleCloseOtp()} style={loginStyle.wrapperIcon}>
108
- <OIcon
109
- src={theme.images.general.close}
110
- width={22}
111
- />
112
- </TouchableOpacity>
113
- <OText size={22} style={{
114
- marginTop: 5
115
- }}>
116
- {t('ENTER_VERIFICATION_CODE', 'Enter verification code')}
117
- </OText>
118
- </View>
119
111
  <OText size={24}>
120
112
  {formatSeconds(otpLeftTime)}
121
113
  </OText>
122
- <OtpInputs
123
- ref={inputRef}
124
- autofillFromClipboard
125
- numberOfInputs={pinCount || 6}
126
- style={loginStyle.container}
127
- inputStyles={loginStyle.underlineStyleBase}
128
- handleChange={handleChangeCode}
129
- />
114
+ {isCheckingCode && (
115
+ <View style={loginStyle.checkingCode}>
116
+ <OText size={18}>
117
+ <ActivityIndicator size="large" color={theme.colors.primary} />
118
+ </OText>
119
+ </View>
120
+ )}
121
+ {!isCheckingCode && (
122
+ <OtpInputs
123
+ ref={inputRef}
124
+ autofillFromClipboard={false}
125
+ numberOfInputs={pinCount}
126
+ style={loginStyle.container}
127
+ returnKeyType={'done'}
128
+ inputStyles={loginStyle.underlineStyleBase}
129
+ handleChange={handleChangeCode}
130
+ />
131
+ )}
130
132
  {!!otpError && (
131
133
  <OText
132
134
  color={theme?.colors?.error}
@@ -150,6 +152,10 @@ export const Otp = (props: otpParams) => {
150
152
  text={t('CANCEL', 'Cancel')}
151
153
  />
152
154
  </OTPContainer>
153
- </>
155
+ </SafeAreaView>
154
156
  )
155
157
  }
158
+
159
+ Otp.defaultProps = {
160
+ pinCount: 6
161
+ }