ordering-ui-react-native 0.16.81 → 0.16.82-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 (218) hide show
  1. package/package.json +5 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/styles.tsx +8 -14
  4. package/src/components/BusinessInformation/index.tsx +19 -4
  5. package/src/components/BusinessInformation/styles.tsx +2 -2
  6. package/src/components/BusinessProductsList/index.tsx +10 -10
  7. package/src/components/BusinessesListing/index.tsx +1 -1
  8. package/src/components/LanguageSelector/index.tsx +21 -16
  9. package/src/components/Messages/index.tsx +2 -2
  10. package/src/components/OrderCreating/index.tsx +1 -21
  11. package/src/components/OrdersOption/index.tsx +54 -56
  12. package/src/components/PaymentOptionsWebView/index.tsx +119 -120
  13. package/src/components/SingleProductReview/index.tsx +7 -4
  14. package/src/components/VerifyPhone/styles.tsx +1 -2
  15. package/src/components/shared/OToast.tsx +4 -4
  16. package/src/utils/index.tsx +2 -1
  17. package/themes/business/index.tsx +2 -0
  18. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +260 -238
  19. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  20. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  21. package/themes/business/src/components/Chat/index.tsx +31 -31
  22. package/themes/business/src/components/DriverMap/index.tsx +22 -9
  23. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  24. package/themes/business/src/components/LoginForm/Otp/index.tsx +120 -0
  25. package/themes/business/src/components/LoginForm/Otp/styles.tsx +7 -0
  26. package/themes/business/src/components/LoginForm/index.tsx +236 -80
  27. package/themes/business/src/components/LoginForm/styles.tsx +10 -0
  28. package/themes/business/src/components/MapView/index.tsx +19 -8
  29. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  30. package/themes/business/src/components/NewOrderNotification/index.tsx +31 -41
  31. package/themes/business/src/components/OrderDetails/Delivery.tsx +4 -3
  32. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +97 -50
  33. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +3 -3
  34. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  35. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  36. package/themes/business/src/components/OrdersOption/index.tsx +63 -73
  37. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  38. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  39. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  40. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  41. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  42. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  43. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  44. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  45. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  46. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +250 -0
  47. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  48. package/themes/business/src/components/PreviousOrders/index.tsx +447 -247
  49. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  50. package/themes/business/src/components/ProductItemAccordion/index.tsx +30 -5
  51. package/themes/business/src/components/ReviewCustomer/index.tsx +39 -15
  52. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  53. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  54. package/themes/business/src/components/shared/OLink.tsx +33 -13
  55. package/themes/business/src/components/shared/OModal.tsx +16 -9
  56. package/themes/business/src/components/shared/OText.tsx +8 -2
  57. package/themes/business/src/types/index.tsx +36 -3
  58. package/themes/business/src/utils/index.tsx +53 -0
  59. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  60. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  61. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  62. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  63. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  64. package/themes/kiosk/src/components/LoginForm/Otp/index.tsx +92 -0
  65. package/themes/kiosk/src/components/LoginForm/Otp/styles.tsx +7 -0
  66. package/themes/kiosk/src/components/LoginForm/index.tsx +473 -151
  67. package/themes/kiosk/src/components/LoginForm/styles.tsx +14 -1
  68. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  69. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  70. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  71. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +1 -0
  72. package/themes/kiosk/src/components/PhoneInputNumber/styles.tsx +1 -3
  73. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  74. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  75. package/themes/kiosk/src/components/shared/OModal.tsx +14 -11
  76. package/themes/kiosk/src/layouts/Container.tsx +7 -1
  77. package/themes/kiosk/src/types/index.d.ts +13 -0
  78. package/themes/kiosk/src/utils/index.tsx +15 -0
  79. package/themes/original/index.tsx +8 -0
  80. package/themes/original/src/components/AddressDetails/index.tsx +10 -8
  81. package/themes/original/src/components/AddressForm/index.tsx +155 -139
  82. package/themes/original/src/components/AddressList/index.tsx +18 -18
  83. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  84. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  85. package/themes/original/src/components/BusinessBasicInformation/index.tsx +124 -78
  86. package/themes/original/src/components/BusinessController/index.tsx +101 -70
  87. package/themes/original/src/components/BusinessController/styles.tsx +14 -9
  88. package/themes/original/src/components/BusinessInformation/index.tsx +10 -31
  89. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  90. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  91. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  92. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  93. package/themes/original/src/components/BusinessListingSearch/index.tsx +102 -155
  94. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  95. package/themes/original/src/components/BusinessProductsList/index.tsx +11 -8
  96. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  97. package/themes/original/src/components/BusinessProductsListing/index.tsx +562 -495
  98. package/themes/original/src/components/BusinessProductsListing/styles.tsx +13 -12
  99. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  100. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
  101. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +116 -81
  102. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -9
  103. package/themes/original/src/components/BusinessesListing/index.tsx +6 -6
  104. package/themes/original/src/components/Cart/index.tsx +75 -41
  105. package/themes/original/src/components/CartContent/index.tsx +80 -18
  106. package/themes/original/src/components/CartContent/styles.tsx +11 -1
  107. package/themes/original/src/components/Checkout/index.tsx +101 -106
  108. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  109. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  110. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  111. package/themes/original/src/components/DriverTips/index.tsx +52 -37
  112. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  113. package/themes/original/src/components/Favorite/index.tsx +7 -4
  114. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  115. package/themes/original/src/components/FavoriteList/index.tsx +70 -80
  116. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  117. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  118. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  119. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  120. package/themes/original/src/components/GoogleMap/index.tsx +10 -1
  121. package/themes/original/src/components/Help/index.tsx +8 -8
  122. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +14 -20
  123. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +6 -0
  124. package/themes/original/src/components/HelpGuide/index.tsx +13 -12
  125. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  126. package/themes/original/src/components/HelpOrder/index.tsx +12 -20
  127. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  128. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  129. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  130. package/themes/original/src/components/LoginForm/Otp/index.tsx +89 -73
  131. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  132. package/themes/original/src/components/LoginForm/index.tsx +28 -8
  133. package/themes/original/src/components/LottieAnimation/index.tsx +78 -0
  134. package/themes/original/src/components/MessageListing/index.tsx +7 -40
  135. package/themes/original/src/components/Messages/index.tsx +42 -26
  136. package/themes/original/src/components/MomentOption/index.tsx +195 -88
  137. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  138. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -93
  139. package/themes/original/src/components/MultiCheckout/index.tsx +153 -77
  140. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  141. package/themes/original/src/components/MultiOrdersDetails/index.tsx +85 -34
  142. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  143. package/themes/original/src/components/MyOrders/index.tsx +66 -17
  144. package/themes/original/src/components/NavBar/index.tsx +7 -6
  145. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  146. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  147. package/themes/original/src/components/Notifications/index.tsx +144 -0
  148. package/themes/original/src/components/Notifications/styles.tsx +20 -0
  149. package/themes/original/src/components/OrderDetails/index.tsx +108 -218
  150. package/themes/original/src/components/OrderDetails/styles.tsx +10 -1
  151. package/themes/original/src/components/OrderItAgain/index.tsx +46 -43
  152. package/themes/original/src/components/OrderProgress/index.tsx +81 -105
  153. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  154. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  155. package/themes/original/src/components/OrderTypeSelector/index.tsx +13 -6
  156. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +93 -97
  157. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  158. package/themes/original/src/components/OrdersOption/index.tsx +86 -92
  159. package/themes/original/src/components/PageBanner/index.tsx +146 -0
  160. package/themes/original/src/components/PageBanner/styles.tsx +11 -0
  161. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  162. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  163. package/themes/original/src/components/PaymentOptions/index.tsx +1 -1
  164. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  165. package/themes/original/src/components/PlaceSpot/index.tsx +16 -6
  166. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  167. package/themes/original/src/components/ProductForm/index.tsx +240 -256
  168. package/themes/original/src/components/ProductForm/styles.tsx +5 -8
  169. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  170. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -10
  171. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +1 -2
  172. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  173. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -49
  174. package/themes/original/src/components/ProfessionalProfile/index.tsx +54 -14
  175. package/themes/original/src/components/Promotions/index.tsx +234 -220
  176. package/themes/original/src/components/Promotions/styles.tsx +7 -2
  177. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  178. package/themes/original/src/components/ReviewOrder/index.tsx +43 -11
  179. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  180. package/themes/original/src/components/ReviewProducts/index.tsx +8 -5
  181. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  182. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  183. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  184. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  185. package/themes/original/src/components/ServiceForm/index.tsx +377 -270
  186. package/themes/original/src/components/Sessions/index.tsx +11 -8
  187. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  188. package/themes/original/src/components/SignupForm/index.tsx +78 -66
  189. package/themes/original/src/components/SingleOrderCard/index.tsx +125 -56
  190. package/themes/original/src/components/SingleOrderCard/styles.tsx +10 -8
  191. package/themes/original/src/components/SingleProductCard/index.tsx +112 -77
  192. package/themes/original/src/components/SingleProductCard/styles.tsx +14 -13
  193. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  194. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  195. package/themes/original/src/components/StripeCardsList/index.tsx +1 -1
  196. package/themes/original/src/components/StripeElementsForm/index.tsx +4 -1
  197. package/themes/original/src/components/UpsellingProducts/index.tsx +244 -215
  198. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  199. package/themes/original/src/components/UserDetails/index.tsx +5 -3
  200. package/themes/original/src/components/UserFormDetails/index.tsx +50 -54
  201. package/themes/original/src/components/UserProfile/index.tsx +58 -35
  202. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  203. package/themes/original/src/components/UserProfileForm/index.tsx +21 -28
  204. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  205. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  206. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  207. package/themes/original/src/components/Wallets/index.tsx +177 -164
  208. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  209. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  210. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  211. package/themes/original/src/components/shared/OBottomPopup.tsx +1 -1
  212. package/themes/original/src/components/shared/OButton.tsx +9 -4
  213. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  214. package/themes/original/src/components/shared/OInput.tsx +10 -1
  215. package/themes/original/src/layouts/Container.tsx +13 -9
  216. package/themes/original/src/types/index.tsx +42 -7
  217. package/themes/original/src/utils/index.tsx +322 -58
  218. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,13 +1,17 @@
1
1
  import React from 'react'
2
+ import { Platform } from 'react-native'
2
3
  import { useLanguage } from 'ordering-components/native'
3
4
  import { HelpAccountAndPaymentParams } from '../../types'
4
5
  import { OText, OButton, OIcon } from '../shared'
5
6
  import { useTheme } from 'styled-components/native'
6
- import { StyleSheet } from 'react-native'
7
+ import { StyleSheet, TouchableOpacity } from 'react-native'
8
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
7
9
 
8
10
  import {
9
- Content
11
+ Content,
12
+ Container
10
13
  } from './styles'
14
+ import NavBar from '../NavBar'
11
15
 
12
16
  export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
13
17
  const {
@@ -17,15 +21,6 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
17
21
  const theme = useTheme()
18
22
 
19
23
  const styles = StyleSheet.create({
20
- btnBackArrow: {
21
- borderWidth: 0,
22
- backgroundColor: theme.colors.white,
23
- borderColor: theme.colors.white,
24
- shadowColor: theme.colors.white,
25
- display: 'flex',
26
- justifyContent: 'flex-start',
27
- paddingLeft: 0,
28
- },
29
24
  imageStyle: {
30
25
  width: '100%',
31
26
  height: 300,
@@ -36,14 +31,13 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
36
31
  const goToBack = () => navigation?.canGoBack() && navigation.goBack()
37
32
 
38
33
  return (
39
- <>
40
- <OButton
41
- imgLeftSrc={theme.images.general.arrow_left}
42
- imgRightSrc={null}
43
- style={styles.btnBackArrow}
44
- onClick={() => goToBack()}
34
+ <Container>
35
+ <NavBar
36
+ title={t('ACCOUNT_PAYMENT_OPTIONS', 'Account and Payment Options')}
37
+ onActionLeft={goToBack}
38
+ btnStyle={{ paddingLeft: 0 }}
39
+ showCall={false}
45
40
  />
46
- <OText size={22} weight={600}>{t('ACCOUNT_PAYMENT_OPTIONS', 'Account and Payment Options')}</OText>
47
41
  <Content>
48
42
  <OText mBottom={20}>
49
43
  -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vel in congue nisl, nisi. Mauris, condimentum auctor sed cras cursus arcu pellentesque.
@@ -63,6 +57,6 @@ export const HelpAccountAndPayment = (props: HelpAccountAndPaymentParams) => {
63
57
  cover
64
58
  />
65
59
  </Content>
66
- </>
60
+ </Container>
67
61
  )
68
- }
62
+ }
@@ -4,3 +4,9 @@ export const Content = styled.View`
4
4
  padding-vertical: 20px;
5
5
  margin-bottom: 20px;
6
6
  `
7
+
8
+ export const Container = styled.ScrollView`
9
+ position: relative;
10
+ flex: 1;
11
+ margin: 10px 0;
12
+ `
@@ -1,11 +1,13 @@
1
1
  import React from 'react'
2
2
  import { useLanguage } from 'ordering-components/native'
3
3
  import { HelpGuideParams } from '../../types'
4
- import { OText, OButton, OIcon } from '../shared'
4
+ import { OText, OIcon } from '../shared'
5
5
  import { useTheme } from 'styled-components/native'
6
- import { StyleSheet } from 'react-native'
6
+ import { Platform, StyleSheet } from 'react-native'
7
+ import NavBar from '../NavBar'
7
8
  import {
8
- Content
9
+ Content,
10
+ Container
9
11
  } from './styles'
10
12
 
11
13
  export const HelpGuide = (props: HelpGuideParams) => {
@@ -35,14 +37,13 @@ export const HelpGuide = (props: HelpGuideParams) => {
35
37
  const goToBack = () => navigation?.canGoBack() && navigation.goBack()
36
38
 
37
39
  return (
38
- <>
39
- <OButton
40
- imgLeftSrc={theme.images.general.arrow_left}
41
- imgRightSrc={null}
42
- style={styles.btnBackArrow}
43
- onClick={() => goToBack()}
40
+ <Container pdng={Platform.OS === 'ios' ? '10px' : '0px'}>
41
+ <NavBar
42
+ title={t('GUIDE_TO_ORDERING', 'Guide to Ordering')}
43
+ onActionLeft={goToBack}
44
+ btnStyle={{ paddingLeft: 0 }}
45
+ showCall={false}
44
46
  />
45
- <OText size={22} weight={600}>{t('GUIDE_TO_ORDERING', 'Guide to Ordering')}</OText>
46
47
  <Content>
47
48
  <OText mBottom={15}>
48
49
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Blandit mauris varius faucibus varius condimentum morbi pretium mus. Aliquam bibendum erat venenatis feugiat sed.
@@ -62,6 +63,6 @@ export const HelpGuide = (props: HelpGuideParams) => {
62
63
  cover
63
64
  />
64
65
  </Content>
65
- </>
66
+ </Container>
66
67
  )
67
- }
68
+ }
@@ -4,3 +4,9 @@ export const Content = styled.View`
4
4
  padding-vertical: 20px;
5
5
  margin-bottom: 20px;
6
6
  `
7
+ export const Container = styled.ScrollView`
8
+ position: relative;
9
+ flex: 1;
10
+ margin: 10px 0;
11
+ padding-top: ${(props: any) => props.pdng}
12
+ `
@@ -1,13 +1,15 @@
1
1
  import React from 'react'
2
2
  import { useLanguage } from 'ordering-components/native'
3
3
  import { HelpOrderParams } from '../../types'
4
- import { OText, OButton, OIcon } from '../shared'
4
+ import { OText, OIcon } from '../shared'
5
5
  import { useTheme } from 'styled-components/native'
6
6
  import { StyleSheet } from 'react-native'
7
7
  import { WebView } from 'react-native-webview'
8
+ import NavBar from '../NavBar'
8
9
 
9
10
  import {
10
- Content
11
+ Content,
12
+ Container
11
13
  } from './styles'
12
14
 
13
15
  export const HelpOrder = (props: HelpOrderParams) => {
@@ -18,15 +20,6 @@ export const HelpOrder = (props: HelpOrderParams) => {
18
20
  const theme = useTheme()
19
21
 
20
22
  const styles = StyleSheet.create({
21
- btnBackArrow: {
22
- borderWidth: 0,
23
- backgroundColor: theme.colors.white,
24
- borderColor: theme.colors.white,
25
- shadowColor: theme.colors.white,
26
- display: 'flex',
27
- justifyContent: 'flex-start',
28
- paddingLeft: 0,
29
- },
30
23
  imageStyle: {
31
24
  width: '100%',
32
25
  height: 120
@@ -40,14 +33,13 @@ export const HelpOrder = (props: HelpOrderParams) => {
40
33
  const goToBack = () => navigation?.canGoBack() && navigation.goBack()
41
34
 
42
35
  return (
43
- <>
44
- <OButton
45
- imgLeftSrc={theme.images.general.arrow_left}
46
- imgRightSrc={null}
47
- style={styles.btnBackArrow}
48
- onClick={() => goToBack()}
36
+ <Container>
37
+ <NavBar
38
+ title={t('HELP_WITH_ORDER', 'Help with an order')}
39
+ onActionLeft={goToBack}
40
+ btnStyle={{ paddingLeft: 0 }}
41
+ showCall={false}
49
42
  />
50
- <OText size={22} weight={600}>{t('HELP_WITH_ORDER', 'Help with an order')}</OText>
51
43
  <Content>
52
44
  <OText mBottom={20}>
53
45
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vel in congue nisl, nisi. Mauris, condimentum auctor sed cras cursus arcu pellentesque. Sed tempus et, cursus ultricies nisl nisl, in eros.
@@ -74,6 +66,6 @@ export const HelpOrder = (props: HelpOrderParams) => {
74
66
  style={styles.videoStyle}
75
67
  />
76
68
  </Content>
77
- </>
69
+ </Container>
78
70
  )
79
- }
71
+ }
@@ -3,4 +3,11 @@ import styled from 'styled-components/native'
3
3
  export const Content = styled.View`
4
4
  padding-vertical: 20px;
5
5
  margin-bottom: 20px;
6
- `
6
+ `
7
+
8
+ export const Container = styled.ScrollView`
9
+ position: relative;
10
+ flex: 1;
11
+ margin: 10px 0;
12
+ `
13
+
@@ -1,7 +1,7 @@
1
- import React from 'react'
2
- import { LanguageSelector as LanguageSelectorController, useOrder } from 'ordering-components/native'
1
+ import React, { useState } from 'react'
2
+ import { LanguageSelector as LanguageSelectorController, useOrder, useLanguage } from 'ordering-components/native'
3
3
  import { useTheme } from 'styled-components/native';
4
- import { Platform, StyleSheet, View } from 'react-native'
4
+ import { StyleSheet, View } from 'react-native'
5
5
 
6
6
  import RNPickerSelect from 'react-native-picker-select'
7
7
  import { Container, DummyContainer } from './styles'
@@ -9,9 +9,17 @@ import { LanguageSelectorParams } from '../../types'
9
9
  import { OIcon } from '../shared'
10
10
 
11
11
  const LanguageSelectorUI = (props: LanguageSelectorParams) => {
12
+ const {
13
+ languagesState,
14
+ currentLanguage,
15
+ handleChangeLanguage,
16
+ iconColor,
17
+ pickerStyle
18
+ } = props
12
19
 
13
20
  const [orderState] = useOrder()
14
-
21
+ const [state] = useLanguage()
22
+ const [languagePressed, setLanguagePressed] = useState(currentLanguage)
15
23
  const theme = useTheme();
16
24
 
17
25
  const _pickerStyle = StyleSheet.create({
@@ -41,14 +49,11 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
41
49
  color: theme.colors.secundaryContrast
42
50
  }
43
51
  })
44
-
45
- const {
46
- languagesState,
47
- currentLanguage,
48
- handleChangeLanguage,
49
- iconColor,
50
- pickerStyle
51
- } = props
52
+
53
+ const changeLanguage = (lang : string) => {
54
+ setLanguagePressed(lang)
55
+ handleChangeLanguage(lang)
56
+ }
52
57
 
53
58
  const _languages = languagesState?.languages?.map((language: any) => {
54
59
  return {
@@ -67,14 +72,14 @@ const LanguageSelectorUI = (props: LanguageSelectorParams) => {
67
72
  <>
68
73
  {iconColor && <OIcon src={theme.images.general.language} color={iconColor} style={{ marginEnd: 14 }} width={16} />}
69
74
  <RNPickerSelect
70
- onValueChange={handleChangeLanguage}
75
+ onValueChange={changeLanguage}
71
76
  items={_languages || []}
72
77
  value={currentLanguage}
73
78
  style={pickerStyle ? pickerStyle : _pickerStyle}
74
79
  useNativeAndroidPickerStyle={false}
75
80
  placeholder={{}}
76
81
  Icon={() => <View style={pickerStyle ? pickerStyle.icon : _pickerStyle.icon}><OIcon src={theme.images.general.arrow_down} color={theme.colors.white} style={{ width: '100%' }} /></View>}
77
- disabled={orderState.loading}
82
+ disabled={orderState.loading || state.loading || state?.language?.code !== languagePressed}
78
83
  />
79
84
  </>
80
85
  ) : <DummyContainer />}
@@ -6,6 +6,7 @@ import { NotFoundSource } from '../NotFoundSource'
6
6
 
7
7
  import { ItemWrap } from './styles'
8
8
  import { OrdersOptionParams } from '../../types'
9
+ import { getOrderStatus } from '../../utils'
9
10
 
10
11
  import {
11
12
  Placeholder,
@@ -67,40 +68,6 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
67
68
  return moment(dateStr).format('MMMM DD,YYYY - hh:mm a');
68
69
  }
69
70
 
70
- const getOrderStatus = (s: string) => {
71
- const status = parseInt(s)
72
- const orderStatus = [
73
- { key: 0, value: t('PENDING', 'Pending') },
74
- { key: 1, value: t('COMPLETED', 'Completed') },
75
- { key: 2, value: t('REJECTED', 'Rejected') },
76
- { key: 3, value: t('DRIVER_IN_BUSINESS', 'Driver in business') },
77
- { key: 4, value: t('PREPARATION_COMPLETED', 'Preparation Completed') },
78
- { key: 5, value: t('REJECTED_BY_BUSINESS', 'Rejected by business') },
79
- { key: 6, value: t('REJECTED_BY_DRIVER', 'Rejected by Driver') },
80
- { key: 7, value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business') },
81
- { key: 8, value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver') },
82
- { key: 9, value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver') },
83
- { key: 10, value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver') },
84
- { key: 11, value: t('DELIVERY_COMPLETED_BY_DRIVER', 'Delivery completed by driver') },
85
- { key: 12, value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver') },
86
- { key: 13, value: t('PREORDER', 'PreOrder') },
87
- { key: 14, value: t('ORDER_NOT_READY', 'Order not ready') },
88
- { key: 15, value: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer') },
89
- { key: 16, value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer') },
90
- { key: 17, value: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer') },
91
- { key: 18, value: t('DRIVER_ALMOST_ARRIVED_TO_BUSINESS', 'Driver almost arrived to business') },
92
- { key: 19, value: t('DRIVER_ALMOST_ARRIVED_TO_CUSTOMER', 'Driver almost arrived to customer') },
93
- { key: 20, value: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Customer almost arrived to business') },
94
- { key: 21, value: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Customer arrived to business') },
95
- { key: 22, value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver') },
96
- { key: 23, value: t('ORDER_DRIVER_ON_WAY', 'Driver on way') }
97
- ]
98
-
99
- const objectStatus = orderStatus.find((o) => o.key === status)
100
-
101
- return objectStatus && objectStatus
102
- }
103
-
104
71
  return (
105
72
  <>
106
73
  {/* {(orders.length > 0) && (
@@ -1,91 +1,107 @@
1
- import React, { useEffect } from 'react'
1
+ import React, { useEffect, useState } from 'react'
2
2
  import { formatSeconds } from '../../../utils'
3
3
  import { StyleSheet, TouchableOpacity } 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 } from '../../shared';
8
- import OTPInputView from '@twotalltotems/react-native-otp-input'
8
+ import OtpInputs from 'react-native-otp-inputs';
9
9
  import { useTheme } from 'styled-components/native';
10
10
  import { otpParams } from '../../../types'
11
11
 
12
12
  export const Otp = (props: otpParams) => {
13
- const {
14
- willVerifyOtpState,
15
- setWillVerifyOtpState,
16
- onSubmit,
17
- handleLoginOtp,
18
- setAlertState,
19
- pinCount
20
- } = props
13
+ const {
14
+ willVerifyOtpState,
15
+ setWillVerifyOtpState,
16
+ onSubmit,
17
+ handleLoginOtp,
18
+ setAlertState,
19
+ pinCount
20
+ } = props
21
21
 
22
- const theme = useTheme();
23
- const [, t] = useLanguage();
24
- const [otpLeftTime, _, resetOtpLeftTime]: any = useCountdownTimer(
25
- 600, willVerifyOtpState)
22
+ const theme = useTheme();
23
+ const [, t] = useLanguage();
24
+ const [otpLeftTime, _, resetOtpLeftTime]: any = useCountdownTimer(
25
+ 600, willVerifyOtpState)
26
26
 
27
+ const [code, setCode] = useState('')
27
28
 
28
- const handleOnSubmit = () => {
29
- setAlertState({
30
- open: true,
31
- title: t('CODE_SENT', 'The code has been sent'),
32
- })
33
- resetOtpLeftTime()
34
- onSubmit()
29
+
30
+ const handleOnSubmit = () => {
31
+ setAlertState({
32
+ open: true,
33
+ title: t('CODE_SENT', 'The code has been sent'),
34
+ })
35
+ resetOtpLeftTime()
36
+ onSubmit()
37
+ }
38
+
39
+ useEffect(() => {
40
+ if (otpLeftTime === 0) {
41
+ setAlertState({
42
+ open: true,
43
+ title: t('TIME_IS_UP', 'Time is up'),
44
+ content: t('PLEASE_RESEND_CODE', 'Please resend code again')
45
+ })
35
46
  }
47
+ }, [otpLeftTime])
36
48
 
37
- useEffect(() => {
38
- if (otpLeftTime === 0) {
39
- setAlertState({
40
- open: true,
41
- title: t('TIME_IS_UP', 'Time is up'),
42
- content: t('PLEASE_RESEND_CODE', 'Please resend code again')
43
- })
44
- }
45
- }, [otpLeftTime])
49
+ useEffect(() => {
50
+ if (code?.length === (pinCount || 6)) {
51
+ handleLoginOtp(code)
52
+ }
53
+ }, [code])
46
54
 
47
- const loginStyle = StyleSheet.create({
48
- underlineStyleBase: {
49
- width: 45,
50
- height: 60,
51
- borderWidth: 1,
52
- fontSize: 16
53
- },
54
- underlineStyleHighLighted: {
55
- borderColor: theme.colors.primary,
56
- color: theme.colors.primary,
57
- fontSize: 16
58
- },
59
- });
55
+ const loginStyle = StyleSheet.create({
56
+ container: {
57
+ width: '100%',
58
+ flexDirection: 'row',
59
+ justifyContent: 'space-between',
60
+ marginVertical: 30
61
+ },
62
+ underlineStyleBase: {
63
+ width: 45,
64
+ height: 50,
65
+ borderWidth: 1,
66
+ fontSize: 16,
67
+ borderRadius: 8,
68
+ borderColor: theme.colors.lightGray,
69
+ textAlign: 'center'
70
+ },
71
+ underlineStyleHighLighted: {
72
+ borderColor: theme.colors.primary,
73
+ color: theme.colors.primary,
74
+ fontSize: 16
75
+ },
76
+ });
60
77
 
61
- return (
62
- <>
63
- <OTPContainer>
64
- <OText size={24}>
65
- {formatSeconds(otpLeftTime)}
66
- </OText>
67
- <OTPInputView
68
- style={{ width: '100%', height: 150 }}
69
- pinCount={pinCount || 6}
70
- codeInputFieldStyle={loginStyle.underlineStyleBase}
71
- codeInputHighlightStyle={loginStyle.underlineStyleHighLighted}
72
- onCodeFilled={(code: string) => handleLoginOtp(code)}
73
- selectionColor={theme.colors.primary}
74
- />
75
- <TouchableOpacity onPress={() => handleOnSubmit()} disabled={otpLeftTime > 520}>
76
- <OText size={16} mBottom={30} color={otpLeftTime > 520 ? theme.colors.disabled : theme.colors.primary}>
77
- {t('RESEND_CODE', 'Resend code')}
78
- </OText>
79
- </TouchableOpacity>
80
- <OButton
81
- onClick={() => setWillVerifyOtpState(false)}
82
- bgColor={theme.colors.white}
83
- borderColor={theme.colors.primary}
84
- textStyle={{ color: theme.colors.primary }}
85
- style={{ borderRadius: 8, width: '100%' }}
86
- text={t('CANCEL', 'Cancel')}
87
- />
88
- </OTPContainer>
89
- </>
90
- )
78
+ return (
79
+ <>
80
+ <OTPContainer>
81
+ <OText size={24}>
82
+ {formatSeconds(otpLeftTime)}
83
+ </OText>
84
+ <OtpInputs
85
+ autofillFromClipboard
86
+ numberOfInputs={pinCount || 6}
87
+ style={loginStyle.container}
88
+ inputStyles={loginStyle.underlineStyleBase}
89
+ handleChange={setCode}
90
+ />
91
+ <TouchableOpacity onPress={() => handleOnSubmit()} disabled={otpLeftTime > 520}>
92
+ <OText size={16} mBottom={30} color={otpLeftTime > 520 ? theme.colors.disabled : theme.colors.primary}>
93
+ {t('RESEND_CODE', 'Resend code')}
94
+ </OText>
95
+ </TouchableOpacity>
96
+ <OButton
97
+ onClick={() => setWillVerifyOtpState(false)}
98
+ bgColor={theme.colors.white}
99
+ borderColor={theme.colors.primary}
100
+ textStyle={{ color: theme.colors.primary }}
101
+ style={{ borderRadius: 8, width: '100%' }}
102
+ text={t('CANCEL', 'Cancel')}
103
+ />
104
+ </OTPContainer>
105
+ </>
106
+ )
91
107
  }
@@ -3,5 +3,4 @@ import styled from 'styled-components/native';
3
3
  export const OTPContainer = styled.View`
4
4
  padding: 20px;
5
5
  align-items: center;
6
- flex: 1
7
6
  `
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState, useRef } from 'react';
2
- import { StyleSheet, View, Keyboard } from 'react-native';
2
+ import { StyleSheet, View, Keyboard, Vibration } from 'react-native';
3
3
  import Spinner from 'react-native-loading-spinner-overlay';
4
4
  import { useForm, Controller } from 'react-hook-form';
5
5
  import { PhoneInputNumber } from '../PhoneInputNumber';
@@ -96,7 +96,7 @@ const LoginFormUI = (props: LoginParams) => {
96
96
  const [alertState, setAlertState] = useState({ open: false, title: '', content: [] })
97
97
  const [tabLayouts, setTabLayouts] = useState<any>({})
98
98
  const tabsRef = useRef<any>(null)
99
-
99
+ const enabledPoweredByOrdering = configs?.powered_by_ordering_module?.value
100
100
  const theme = useTheme();
101
101
  const isOtpEmail = loginTab === 'otp' && otpType === 'email'
102
102
  const isOtpCellphone = loginTab === 'otp' && otpType === 'cellphone'
@@ -165,6 +165,7 @@ const LoginFormUI = (props: LoginParams) => {
165
165
  if (loginTab === 'otp') {
166
166
  if (phoneInputData.error && (loginTab !== 'otp' || (otpType === 'cellphone' && loginTab === 'otp'))) {
167
167
  showToast(ToastType.Error, t('INVALID_PHONE_NUMBER', 'Invalid phone number'));
168
+ Vibration.vibrate()
168
169
  return
169
170
  }
170
171
  if (loginTab === 'otp') {
@@ -177,6 +178,7 @@ const LoginFormUI = (props: LoginParams) => {
177
178
  } else {
178
179
  if (phoneInputData.error) {
179
180
  showToast(ToastType.Error, phoneInputData.error);
181
+ Vibration.vibrate()
180
182
  return;
181
183
  }
182
184
  handleButtonLoginClick({
@@ -189,6 +191,7 @@ const LoginFormUI = (props: LoginParams) => {
189
191
  const handleVerifyCodeClick = () => {
190
192
  if (phoneInputData.error) {
191
193
  showToast(ToastType.Error, phoneInputData.error);
194
+ Vibration.vibrate()
192
195
  return;
193
196
  }
194
197
  if (
@@ -203,6 +206,7 @@ const LoginFormUI = (props: LoginParams) => {
203
206
  'The field Mobile phone is required.',
204
207
  ),
205
208
  );
209
+ Vibration.vibrate()
206
210
  return;
207
211
  }
208
212
  handleSendVerifyCode && handleSendVerifyCode(phoneInputData.phone);
@@ -224,10 +228,12 @@ const LoginFormUI = (props: LoginParams) => {
224
228
  setRecaptchaVerified(false)
225
229
  if (!recaptchaConfig?.siteKey) {
226
230
  showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
231
+ Vibration.vibrate()
227
232
  return
228
233
  }
229
234
  if (!recaptchaConfig?.baseUrl) {
230
235
  showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
236
+ Vibration.vibrate()
231
237
  return
232
238
  }
233
239
 
@@ -304,6 +310,7 @@ const LoginFormUI = (props: LoginParams) => {
304
310
  baseUrl: configs?.security_recaptcha_base_url?.value || null
305
311
  })
306
312
  showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
313
+ Vibration.vibrate()
307
314
  return
308
315
  }
309
316
  formState.result?.result &&
@@ -313,6 +320,7 @@ const LoginFormUI = (props: LoginParams) => {
313
320
  ? formState.result?.result
314
321
  : formState.result?.result[0],
315
322
  );
323
+ formState.result?.result && Vibration.vibrate()
316
324
  }
317
325
  }, [formState]);
318
326
 
@@ -324,6 +332,7 @@ const LoginFormUI = (props: LoginParams) => {
324
332
  ? verifyPhoneState?.result?.result
325
333
  : verifyPhoneState?.result?.result[0];
326
334
  verifyPhoneState.result?.result && showToast(ToastType.Error, message);
335
+ verifyPhoneState.result?.result && Vibration.vibrate();
327
336
  setIsLoadingVerifyModal(false);
328
337
  return;
329
338
  }
@@ -363,6 +372,10 @@ const LoginFormUI = (props: LoginParams) => {
363
372
  }
364
373
  }, [checkPhoneCodeState])
365
374
 
375
+ useEffect(() => {
376
+ if (!!Object.values(errors)?.length) Vibration.vibrate()
377
+ }, [errors])
378
+
366
379
  return (
367
380
  <Container>
368
381
  <NavBar
@@ -680,7 +693,7 @@ const LoginFormUI = (props: LoginParams) => {
680
693
  {t('NEW_ON_PLATFORM', 'New on Ordering?')}
681
694
  </OText>
682
695
  <TouchableOpacity onPress={() => onNavigationRedirect('Signup')}>
683
- <OText size={14} mLeft={5} color={theme.colors.skyBlue}>
696
+ <OText size={14} mLeft={5} color={theme.colors.primary}>
684
697
  {t('CREATE_ACCOUNT', 'Create account')}
685
698
  </OText>
686
699
  </TouchableOpacity>
@@ -719,8 +732,9 @@ const LoginFormUI = (props: LoginParams) => {
719
732
  )}
720
733
 
721
734
  {configs && Object.keys(configs).length > 0 ? (
722
- (((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value) ||
723
- (configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null)) &&
735
+ (((configs?.facebook_login?.value === 'true' || configs?.facebook_login?.value === '1') && configs?.facebook_id?.value && facebookLoginEnabled) ||
736
+ ((configs?.google_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && googleLoginEnabled) ||
737
+ ((configs?.apple_login_client_id?.value !== '' && configs?.apple_login_client_id?.value !== null) && appleLoginEnabled)) &&
724
738
  (
725
739
  <>
726
740
  <View
@@ -748,7 +762,7 @@ const LoginFormUI = (props: LoginParams) => {
748
762
  facebookLoginEnabled && (
749
763
  <FacebookLogin
750
764
  notificationState={notificationState}
751
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
765
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
752
766
  handleLoading={(val: boolean) => setIsFBLoading(val)}
753
767
  handleSuccessFacebookLogin={handleSuccessFacebook}
754
768
  />
@@ -757,7 +771,7 @@ const LoginFormUI = (props: LoginParams) => {
757
771
  <GoogleLogin
758
772
  notificationState={notificationState}
759
773
  webClientId={configs?.google_login_client_id?.value}
760
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
774
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
761
775
  handleLoading={(val: boolean) => setIsFBLoading(val)}
762
776
  handleSuccessGoogleLogin={handleSuccessFacebook}
763
777
  />
@@ -765,7 +779,7 @@ const LoginFormUI = (props: LoginParams) => {
765
779
  {(configs?.apple_login_client_id?.value !== '' && configs?.google_login_client_id?.value !== null) && appleLoginEnabled && (
766
780
  <AppleLogin
767
781
  notificationState={notificationState}
768
- handleErrors={(err: any) => showToast(ToastType.Error, err)}
782
+ handleErrors={(err: any) => { showToast(ToastType.Error, err), Vibration.vibrate() }}
769
783
  handleLoading={(val: boolean) => setIsFBLoading(val)}
770
784
  handleSuccessAppleLogin={handleSuccessFacebook}
771
785
  />
@@ -788,6 +802,12 @@ const LoginFormUI = (props: LoginParams) => {
788
802
  </Placeholder>
789
803
  </SkeletonWrapper>
790
804
  )}
805
+
806
+ {enabledPoweredByOrdering && (
807
+ <OText>
808
+ Powered By Ordering.co
809
+ </OText>
810
+ )}
791
811
  </FormSide>
792
812
  <OModal
793
813
  open={isModalVisible}