ordering-ui-react-native 0.17.57 → 0.17.58-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 (212) hide show
  1. package/package.json +8 -7
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/OrderCreating/index.tsx +1 -21
  5. package/src/components/PaymentOptionsWebView/index.tsx +29 -8
  6. package/src/components/PhoneInputNumber/index.tsx +6 -2
  7. package/src/components/StripeMethodForm/index.tsx +136 -102
  8. package/src/components/VerifyPhone/styles.tsx +1 -2
  9. package/src/components/shared/OToast.tsx +4 -4
  10. package/src/types/index.tsx +5 -0
  11. package/src/utils/index.tsx +5 -0
  12. package/themes/business/index.tsx +2 -0
  13. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +265 -240
  14. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -4
  15. package/themes/business/src/components/BusinessController/index.tsx +0 -1
  16. package/themes/business/src/components/Chat/index.tsx +125 -113
  17. package/themes/business/src/components/DriverMap/index.tsx +17 -6
  18. package/themes/business/src/components/DriverSchedule/index.tsx +42 -5
  19. package/themes/business/src/components/GoogleMap/index.tsx +58 -57
  20. package/themes/business/src/components/LoginForm/Otp/index.tsx +31 -3
  21. package/themes/business/src/components/LoginForm/index.tsx +15 -22
  22. package/themes/business/src/components/MapView/index.tsx +10 -10
  23. package/themes/business/src/components/NewOrderNotification/index.tsx +35 -21
  24. package/themes/business/src/components/NotFoundSource/index.tsx +2 -2
  25. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  26. package/themes/business/src/components/OrderDetails/Delivery.tsx +191 -6
  27. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +93 -50
  28. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +64 -63
  29. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +195 -0
  30. package/themes/business/src/components/OrderDetailsLogistic/styles.tsx +5 -0
  31. package/themes/business/src/components/OrderMessage/index.tsx +19 -18
  32. package/themes/business/src/components/OrderSummary/index.tsx +113 -121
  33. package/themes/business/src/components/OrdersOption/index.tsx +32 -75
  34. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +249 -0
  35. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +115 -0
  36. package/themes/business/src/components/PreviousOrders/index.tsx +445 -243
  37. package/themes/business/src/components/PreviousOrders/styles.tsx +31 -3
  38. package/themes/business/src/components/ProductItemAccordion/index.tsx +27 -3
  39. package/themes/business/src/components/ReviewCustomer/index.tsx +30 -15
  40. package/themes/business/src/components/StoresList/index.tsx +3 -4
  41. package/themes/business/src/components/UserProfileForm/index.tsx +11 -13
  42. package/themes/business/src/components/shared/OLink.tsx +33 -13
  43. package/themes/business/src/components/shared/OModal.tsx +16 -9
  44. package/themes/business/src/components/shared/OText.tsx +8 -2
  45. package/themes/business/src/types/index.tsx +28 -12
  46. package/themes/business/src/utils/index.tsx +29 -2
  47. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  48. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  49. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  50. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  51. package/themes/kiosk/src/components/Intro/index.tsx +16 -1
  52. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -9
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  56. package/themes/kiosk/src/components/PhoneInputNumber/index.tsx +2 -2
  57. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  58. package/themes/original/index.tsx +4 -0
  59. package/themes/original/src/components/AddressDetails/index.tsx +28 -10
  60. package/themes/original/src/components/AddressForm/index.tsx +68 -40
  61. package/themes/original/src/components/AddressList/index.tsx +27 -22
  62. package/themes/original/src/components/AddressList/styles.tsx +4 -2
  63. package/themes/original/src/components/AnalyticsSegment/index.tsx +193 -10
  64. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  65. package/themes/original/src/components/AppleLogin/styles.tsx +3 -1
  66. package/themes/original/src/components/BusinessBasicInformation/index.tsx +153 -96
  67. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +10 -12
  68. package/themes/original/src/components/BusinessController/index.tsx +122 -68
  69. package/themes/original/src/components/BusinessController/styles.tsx +23 -4
  70. package/themes/original/src/components/BusinessFeaturedController/index.tsx +21 -54
  71. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +8 -0
  72. package/themes/original/src/components/BusinessInformation/index.tsx +110 -108
  73. package/themes/original/src/components/BusinessItemAccordion/index.tsx +15 -20
  74. package/themes/original/src/components/BusinessListingSearch/index.tsx +352 -326
  75. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -18
  76. package/themes/original/src/components/BusinessPreorder/index.tsx +103 -19
  77. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -2
  78. package/themes/original/src/components/BusinessProductsList/index.tsx +25 -15
  79. package/themes/original/src/components/BusinessProductsList/styles.tsx +8 -3
  80. package/themes/original/src/components/BusinessProductsListing/UpsellingRedirect.tsx +1 -1
  81. package/themes/original/src/components/BusinessProductsListing/index.tsx +683 -555
  82. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  83. package/themes/original/src/components/BusinessReviews/index.tsx +3 -1
  84. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  85. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +96 -91
  86. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -4
  87. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  88. package/themes/original/src/components/Cart/index.tsx +77 -50
  89. package/themes/original/src/components/CartContent/index.tsx +117 -20
  90. package/themes/original/src/components/CartContent/styles.tsx +17 -7
  91. package/themes/original/src/components/Checkout/index.tsx +359 -171
  92. package/themes/original/src/components/Checkout/styles.tsx +4 -2
  93. package/themes/original/src/components/CitiesControl/index.tsx +89 -0
  94. package/themes/original/src/components/CitiesControl/styles.tsx +17 -0
  95. package/themes/original/src/components/CouponControl/index.tsx +10 -3
  96. package/themes/original/src/components/DriverTips/index.tsx +52 -34
  97. package/themes/original/src/components/FacebookLogin/styles.tsx +3 -1
  98. package/themes/original/src/components/Favorite/index.tsx +8 -9
  99. package/themes/original/src/components/Favorite/styles.tsx +1 -1
  100. package/themes/original/src/components/FavoriteList/index.tsx +51 -80
  101. package/themes/original/src/components/FloatingButton/index.tsx +1 -2
  102. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  103. package/themes/original/src/components/GPSButton/index.tsx +6 -4
  104. package/themes/original/src/components/GPSButton/styles.ts +3 -3
  105. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +96 -0
  106. package/themes/original/src/components/GiftCard/GiftCardUI/styles.tsx +5 -0
  107. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +100 -0
  108. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +8 -0
  109. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +191 -0
  110. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +8 -0
  111. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +165 -0
  112. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +9 -0
  113. package/themes/original/src/components/GoogleLogin/styles.tsx +1 -1
  114. package/themes/original/src/components/GoogleMap/index.tsx +15 -4
  115. package/themes/original/src/components/Help/index.tsx +8 -8
  116. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +10 -31
  117. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +5 -3
  118. package/themes/original/src/components/HelpGuide/index.tsx +6 -6
  119. package/themes/original/src/components/HelpGuide/styles.tsx +6 -0
  120. package/themes/original/src/components/HelpOrder/index.tsx +6 -15
  121. package/themes/original/src/components/HelpOrder/styles.tsx +8 -1
  122. package/themes/original/src/components/Home/index.tsx +13 -4
  123. package/themes/original/src/components/LastOrder/index.tsx +1 -34
  124. package/themes/original/src/components/LoginForm/Otp/index.tsx +55 -13
  125. package/themes/original/src/components/LoginForm/Otp/styles.tsx +0 -1
  126. package/themes/original/src/components/LoginForm/index.tsx +60 -35
  127. package/themes/original/src/components/LottieAnimation/index.tsx +89 -55
  128. package/themes/original/src/components/MessageListing/index.tsx +16 -42
  129. package/themes/original/src/components/Messages/index.tsx +32 -10
  130. package/themes/original/src/components/MomentOption/index.tsx +195 -90
  131. package/themes/original/src/components/MomentSelector/index.tsx +1 -1
  132. package/themes/original/src/components/MultiCart/index.tsx +50 -0
  133. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +153 -49
  134. package/themes/original/src/components/MultiCheckout/index.tsx +308 -88
  135. package/themes/original/src/components/MultiCheckout/styles.tsx +3 -1
  136. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +37 -224
  137. package/themes/original/src/components/MultiOrdersDetails/index.tsx +68 -21
  138. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +1 -1
  139. package/themes/original/src/components/MyOrders/index.tsx +65 -52
  140. package/themes/original/src/components/NavBar/index.tsx +18 -18
  141. package/themes/original/src/components/NotFoundSource/index.tsx +14 -10
  142. package/themes/original/src/components/Notifications/index.tsx +46 -50
  143. package/themes/original/src/components/Notifications/styles.tsx +6 -3
  144. package/themes/original/src/components/OrderDetails/OrderEta.tsx +76 -0
  145. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +15 -3
  146. package/themes/original/src/components/OrderDetails/index.tsx +190 -358
  147. package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
  148. package/themes/original/src/components/OrderItAgain/index.tsx +3 -1
  149. package/themes/original/src/components/OrderProgress/index.tsx +33 -59
  150. package/themes/original/src/components/OrderSummary/index.tsx +85 -57
  151. package/themes/original/src/components/OrderTypeSelector/index.tsx +1 -1
  152. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +24 -19
  153. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +14 -14
  154. package/themes/original/src/components/OrdersOption/index.tsx +78 -67
  155. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  156. package/themes/original/src/components/PageBanner/index.tsx +106 -31
  157. package/themes/original/src/components/PageBanner/styles.tsx +4 -4
  158. package/themes/original/src/components/PaymentOptionCard/index.tsx +180 -0
  159. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +1 -1
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +68 -9
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +3 -3
  163. package/themes/original/src/components/PlaceSpot/index.tsx +12 -6
  164. package/themes/original/src/components/ProductForm/index.tsx +109 -33
  165. package/themes/original/src/components/ProductForm/styles.tsx +5 -7
  166. package/themes/original/src/components/ProductItemAccordion/index.tsx +22 -19
  167. package/themes/original/src/components/ProductOptionSubOption/index.tsx +24 -14
  168. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +3 -4
  169. package/themes/original/src/components/ProfessionalFilter/SingleProfessionalCard/index.tsx +108 -0
  170. package/themes/original/src/components/ProfessionalFilter/index.tsx +20 -50
  171. package/themes/original/src/components/ProfessionalProfile/index.tsx +36 -7
  172. package/themes/original/src/components/Promotions/index.tsx +234 -220
  173. package/themes/original/src/components/Promotions/styles.tsx +10 -3
  174. package/themes/original/src/components/ReviewDriver/index.tsx +3 -3
  175. package/themes/original/src/components/ReviewOrder/index.tsx +26 -9
  176. package/themes/original/src/components/ReviewOrder/styles.tsx +7 -0
  177. package/themes/original/src/components/ReviewProducts/index.tsx +23 -11
  178. package/themes/original/src/components/ReviewTrigger/index.tsx +27 -9
  179. package/themes/original/src/components/ReviewTrigger/styles.tsx +8 -1
  180. package/themes/original/src/components/ScheduleAccordion/index.tsx +68 -0
  181. package/themes/original/src/components/ScheduleAccordion/styles.tsx +14 -0
  182. package/themes/original/src/components/ServiceForm/index.tsx +66 -17
  183. package/themes/original/src/components/Sessions/index.tsx +11 -8
  184. package/themes/original/src/components/Sessions/styles.tsx +5 -0
  185. package/themes/original/src/components/SignupForm/index.tsx +44 -29
  186. package/themes/original/src/components/SingleOrderCard/index.tsx +130 -52
  187. package/themes/original/src/components/SingleOrderCard/styles.tsx +11 -2
  188. package/themes/original/src/components/SingleProductCard/index.tsx +71 -34
  189. package/themes/original/src/components/SingleProductCard/styles.tsx +21 -4
  190. package/themes/original/src/components/SingleProductReview/styles.tsx +1 -1
  191. package/themes/original/src/components/StripeCardsList/index.tsx +13 -3
  192. package/themes/original/src/components/StripeElementsForm/index.tsx +48 -34
  193. package/themes/original/src/components/UpsellingProducts/index.tsx +238 -224
  194. package/themes/original/src/components/UpsellingProducts/styles.tsx +12 -1
  195. package/themes/original/src/components/UserDetails/index.tsx +8 -4
  196. package/themes/original/src/components/UserFormDetails/index.tsx +76 -7
  197. package/themes/original/src/components/UserFormDetails/styles.tsx +1 -1
  198. package/themes/original/src/components/UserProfile/index.tsx +88 -79
  199. package/themes/original/src/components/UserProfileForm/index.tsx +27 -29
  200. package/themes/original/src/components/UserProfileForm/styles.tsx +7 -0
  201. package/themes/original/src/components/WalletTransactionItem/index.tsx +2 -2
  202. package/themes/original/src/components/WalletTransactions/index.tsx +3 -3
  203. package/themes/original/src/components/Wallets/index.tsx +67 -24
  204. package/themes/original/src/components/Wallets/styles.tsx +3 -4
  205. package/themes/original/src/components/shared/HeaderTitle.tsx +8 -3
  206. package/themes/original/src/components/shared/OButton.tsx +6 -2
  207. package/themes/original/src/components/shared/OInput.tsx +6 -1
  208. package/themes/original/src/components/shared/OModal.tsx +3 -3
  209. package/themes/original/src/layouts/Container.tsx +1 -1
  210. package/themes/original/src/types/index.tsx +41 -11
  211. package/themes/original/src/utils/index.tsx +273 -1
  212. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -45,7 +45,7 @@ const PaymentOptionWalletUI = (props: any) => {
45
45
  new Array(walletsState.result?.length).fill(false)
46
46
  );
47
47
 
48
- const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate, { isTruncable: true })}`
48
+ const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate)}`
49
49
 
50
50
  const walletName: any = {
51
51
  cash: {
@@ -87,65 +87,65 @@ const PaymentOptionWalletUI = (props: any) => {
87
87
  {!walletsState.loading &&
88
88
  !walletsState.error &&
89
89
  walletsState.result?.length > 0 &&
90
- (
91
- <>
92
- {walletsState.result?.map((wallet: any, idx: any) => wallet.valid && wallet.balance >= 0 && walletName[wallet.type]?.isActive && (
93
- <Container
94
- key={wallet.id}
95
- isBottomBorder={idx === walletsState.result?.filter((wallet: any) => wallet.valid)?.length - 1}
96
- onPress={() => handleOnChange(idx, wallet)}
97
- disabled={(cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0}
98
- >
99
- <SectionLeft>
100
- {checkedState[idx] ? (
101
- <MaterialCommunityIcons
102
- name="checkbox-marked"
103
- size={25}
104
- color={theme.colors.primary}
105
- />
106
- ) : (
107
- <MaterialCommunityIcons
108
- name="checkbox-blank-outline"
109
- size={25}
110
- color={theme.colors.disabled}
111
- />
112
- )}
113
- <View style={{ alignItems: 'baseline', marginLeft: 5 }}>
114
- <View>
115
- <OText
116
- style={((cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0) ? {
117
- color: theme.colors.disabled
118
- } : {}}
119
- >
120
- {walletName[wallet.type]?.name}
121
- </OText>
122
- </View>
90
+ (
91
+ <>
92
+ {walletsState.result?.map((wallet: any, idx: any) => wallet.valid && wallet.balance >= 0 && walletName[wallet.type]?.isActive && (
93
+ <Container
94
+ key={wallet.id}
95
+ isBottomBorder={idx === walletsState.result?.filter((wallet: any) => wallet.valid)?.length - 1}
96
+ onPress={() => handleOnChange(idx, wallet)}
97
+ disabled={(cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0}
98
+ >
99
+ <SectionLeft>
100
+ {checkedState[idx] ? (
101
+ <MaterialCommunityIcons
102
+ name="checkbox-marked"
103
+ size={25}
104
+ color={theme.colors.primary}
105
+ />
106
+ ) : (
107
+ <MaterialCommunityIcons
108
+ name="checkbox-blank-outline"
109
+ size={25}
110
+ color={theme.colors.disabled}
111
+ />
112
+ )}
113
+ <View style={{ alignItems: 'baseline', marginLeft: 5 }}>
114
+ <View>
115
+ <OText
116
+ style={((cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0) ?{
117
+ color: theme.colors.disabled
118
+ } : {}}
119
+ >
120
+ {walletName[wallet.type]?.name}
121
+ </OText>
123
122
  </View>
124
- </SectionLeft>
125
-
126
- <View style={{ maxWidth: '35%', alignItems: 'flex-end' }}>
127
- {wallet.type === 'cash' && (
128
- <OText>
129
- {parsePrice(wallet?.balance, { isTruncable: true })}
123
+ </View>
124
+ </SectionLeft>
125
+
126
+ <View style={{maxWidth: '35%', alignItems: 'flex-end' }}>
127
+ {wallet.type === 'cash' && (
128
+ <OText>
129
+ {parsePrice(wallet?.balance)}
130
+ </OText>
131
+ )}
132
+ {wallet.type === 'credit_point' && (
133
+ <OText>
134
+ <OText color={theme.colors.primary} weight='bold'>
135
+ {`${wallet?.balance} ${t('POINTS', 'Points')}`}
130
136
  </OText>
131
- )}
132
- {wallet.type === 'credit_point' && (
133
137
  <OText>
134
- <OText color={theme.colors.primary} weight='bold'>
135
- {`${wallet?.balance} ${t('POINTS', 'Points')}`}
136
- </OText>
137
- <OText>
138
- {wallet?.balance > 0
139
- ? creditBalance(wallet)
140
- : null}
141
- </OText>
138
+ {wallet?.balance > 0
139
+ ? creditBalance(wallet)
140
+ : null}
142
141
  </OText>
143
- )}
144
- </View>
145
- </Container>
146
- ))}
147
- </>
148
- )}
142
+ </OText>
143
+ )}
144
+ </View>
145
+ </Container>
146
+ ))}
147
+ </>
148
+ )}
149
149
 
150
150
  {walletsState?.loading && (
151
151
  <View>
@@ -16,6 +16,8 @@ import { useTheme } from 'styled-components/native';
16
16
  import { PaymentOptionCash } from '../PaymentOptionCash';
17
17
  import { StripeElementsForm } from '../StripeElementsForm';
18
18
  import { StripeCardsList } from '../StripeCardsList';
19
+ import { PaymentOptionCard } from '../PaymentOptionCard'
20
+
19
21
  // import { PaymentOptionStripe } from '../PaymentOptionStripe';
20
22
  // import { StripeRedirectForm } from '../StripeRedirectForm';
21
23
  // import { PaymentOptionPaypal } from '../PaymentOptionPaypal'
@@ -34,7 +36,7 @@ import { useApplePay } from '@stripe/stripe-react-native';
34
36
 
35
37
  const stripeOptions: any = ['stripe_direct', 'stripe', 'stripe_connect']
36
38
  const methodsPay = ['google_pay', 'apple_pay']
37
- const stripeDirectMethods = ['stripe_direct', ...methodsPay]
39
+ const stripeDirectMethods = ['stripe_direct']
38
40
  // const stripeRedirectOptions = [
39
41
  // { name: 'Bancontact', value: 'bancontact' },
40
42
  // { name: 'Alipay', value: 'alipay' },
@@ -43,6 +45,8 @@ const stripeDirectMethods = ['stripe_direct', ...methodsPay]
43
45
  // ]
44
46
 
45
47
  const webViewPaymentGateway: any = ['paypal', 'square']
48
+ const multiCheckoutMethods = ['global_google_pay', 'global_apple_pay']
49
+ const cardsPaymethods = ['credomatic']
46
50
 
47
51
  const PaymentOptionsUI = (props: any) => {
48
52
  const {
@@ -59,7 +63,13 @@ const PaymentOptionsUI = (props: any) => {
59
63
  isOpenMethod,
60
64
  handlePaymentMethodClickCustom,
61
65
  handlePlaceOrder,
62
- merchantId
66
+ merchantId,
67
+ setMethodPaySupported,
68
+ placeByMethodPay,
69
+ methodPaySupported,
70
+ setPlaceByMethodPay,
71
+ setCardList,
72
+ onPaymentChange
63
73
  } = props
64
74
 
65
75
  const theme = useTheme();
@@ -75,7 +85,7 @@ const PaymentOptionsUI = (props: any) => {
75
85
  case 'paypal':
76
86
  return theme.images.general.paypal
77
87
  case 'stripe':
78
- return theme.images.general.stripe
88
+ return theme.images.general.creditCard
79
89
  case 'stripe_direct':
80
90
  return theme.images.general.stripecc
81
91
  case 'stripe_connect':
@@ -84,6 +94,8 @@ const PaymentOptionsUI = (props: any) => {
84
94
  return theme.images.general.stripesb
85
95
  case 'apple_pay':
86
96
  return theme.images.general.applePayMark
97
+ case 'google_pay':
98
+ return theme.images.general.googlePayMark
87
99
  default:
88
100
  return theme.images.general.creditCard
89
101
  }
@@ -91,7 +103,7 @@ const PaymentOptionsUI = (props: any) => {
91
103
 
92
104
  const [, t] = useLanguage();
93
105
 
94
- const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false });
106
+ const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false, card: false });
95
107
  const paymethodSelected = props.paySelected || props.paymethodSelected || isOpenMethod?.paymethod
96
108
  // const [{ token }] = useSession()
97
109
 
@@ -116,6 +128,12 @@ const PaymentOptionsUI = (props: any) => {
116
128
  ;
117
129
  }
118
130
 
131
+ useEffect(() => {
132
+ if (cart?.balance === 0) {
133
+ handlePaymethodClick(null)
134
+ }
135
+ }, [cart?.balance])
136
+
119
137
  useEffect(() => {
120
138
  if (paymethodsList.paymethods.length === 1) {
121
139
  handlePaymethodClick && handlePaymethodClick(paymethodsList.paymethods[0])
@@ -141,11 +159,11 @@ const PaymentOptionsUI = (props: any) => {
141
159
  handlePlaceOrder(confirmApplePayPayment)
142
160
  }
143
161
  }, [paymethodData, paymethodSelected])
144
-
162
+
145
163
  const renderPaymethods = ({ item }: any) => {
146
164
  return (
147
165
  <>
148
- {item?.gateway === 'apple_pay' ? (
166
+ {methodsPay.includes(item?.gateway) ? (
149
167
  <TouchableOpacity
150
168
  onPress={() => handlePaymentMethodClick(item)}
151
169
  >
@@ -187,6 +205,7 @@ const PaymentOptionsUI = (props: any) => {
187
205
  }
188
206
 
189
207
  const excludeIds: any = [32]; //exclude paypal & connect & redirect
208
+ const filterMethodsPay = (gateway: string) => Platform.OS === 'ios' ? gateway !== 'google_pay' : gateway !== 'apple_pay'
190
209
 
191
210
  return (
192
211
  <PMContainer>
@@ -195,7 +214,11 @@ const PaymentOptionsUI = (props: any) => {
195
214
  horizontal
196
215
  showsHorizontalScrollIndicator={false}
197
216
  // data={paymethodsList.paymethods.sort((a: any, b: any) => a.id - b.id)}
198
- data={paymethodsList.paymethods.sort((a: any, b: any) => a.id - b.id).filter((p: any) => !excludeIds.includes(p.id))}
217
+ data={paymethodsList.paymethods.sort((a: any, b: any) => a.id - b.id)
218
+ .filter((p: any) =>
219
+ !multiCheckoutMethods.includes(p.gateway) &&
220
+ filterMethodsPay(p.gateway) &&
221
+ !excludeIds.includes(p.id))}
199
222
  renderItem={renderPaymethods}
200
223
  keyExtractor={(paymethod: any) => paymethod?.id?.toString?.()}
201
224
  />
@@ -287,14 +310,50 @@ const PaymentOptionsUI = (props: any) => {
287
310
  <StripeCardsList
288
311
  paymethod={isOpenMethod?.paymethod}
289
312
  businessId={props.businessId}
290
- publicKey={isOpenMethod?.paymethod?.credentials.publishable}
313
+ publicKey={isOpenMethod?.paymethod?.credentials?.publishable}
291
314
  payType={paymethodsList?.name}
292
315
  onSelectCard={handlePaymethodDataChange}
293
316
  onNavigationRedirect={onNavigationRedirect}
294
317
  onCancel={() => handlePaymethodClick(null)}
318
+ setAddCardOpen={() => setAddCardOpen({ ...addCardOpen, stripe: true })}
295
319
  />
296
320
  </View>
297
321
  )}
322
+ {/* Google pay, Apple pay */}
323
+ {methodsPay.includes(isOpenMethod?.paymethod?.gateway) && (
324
+ <StripeElementsForm
325
+ cart={cart}
326
+ paymethod={isOpenMethod?.paymethod?.gateway}
327
+ methodsPay={methodsPay}
328
+ businessId={props.businessId}
329
+ publicKey={isOpenMethod?.paymethod?.credentials?.publishable || isOpenMethod?.paymethod?.credentials?.publishable_key}
330
+ handleSource={handlePaymethodDataChange}
331
+ onCancel={() => handlePaymethodClick(null)}
332
+ merchantId={merchantId}
333
+ setMethodPaySupported={setMethodPaySupported}
334
+ methodPaySupported={methodPaySupported}
335
+ placeByMethodPay={placeByMethodPay}
336
+ setPlaceByMethodPay={setPlaceByMethodPay}
337
+ />
338
+ )}
339
+
340
+ {(cardsPaymethods.includes(isOpenMethod?.paymethod?.gateway) || cardsPaymethods.includes(paymethodSelected?.gateway)) && (
341
+ <PaymentOptionCard
342
+ setCardList={setCardList}
343
+ paymethod={isOpenMethod?.paymethod}
344
+ businessId={props.businessId}
345
+ publicKey={isOpenMethod?.paymethod?.credentials?.publishable}
346
+ gateway={isOpenMethod?.paymethod?.gateway || paymethodSelected?.gateway}
347
+ onPaymentChange={onPaymentChange}
348
+ payType={isOpenMethod?.paymethod?.name}
349
+ onSelectCard={handlePaymethodDataChange}
350
+ addCardOpen={addCardOpen}
351
+ setAddCardOpen={setAddCardOpen}
352
+ onCancel={() => handlePaymethodClick(null)}
353
+ paymethodSelected={paymethodSelected?.data?.id}
354
+ handlePaymentMethodClick={handlePaymentMethodClick}
355
+ />
356
+ )}
298
357
 
299
358
  <OModal
300
359
  entireModal
@@ -319,7 +378,7 @@ const PaymentOptionsUI = (props: any) => {
319
378
  </KeyboardAvoidingView>
320
379
  </OModal>
321
380
 
322
- {/* Stripe direct, Google pay, Apple pay */}
381
+ {/* Stripe direct */}
323
382
  <OModal
324
383
  entireModal
325
384
  title={t('ADD_CREDIT_OR_DEBIT_CARD', 'Add credit or debit card')}
@@ -7,7 +7,7 @@ import { Wrapper } from './styles'
7
7
 
8
8
  import { PhoneInputParams } from '../../types';
9
9
  import { OIcon, OText } from '../shared';
10
- import { transformCountryCode } from '../../utils'
10
+ import { findExitingCode, transformCountryCode } from '../../utils'
11
11
 
12
12
  export const PhoneInputNumber = (props: PhoneInputParams) => {
13
13
  const {
@@ -112,8 +112,8 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
112
112
  defaultCode={defaultCode ?
113
113
  !isNaN(defaultCode)
114
114
  ? transformCountryCode(defaultCode)
115
- : defaultCode
116
- : configs?.default_country_code?.value}
115
+ : findExitingCode(defaultCode)
116
+ : findExitingCode(configs?.default_country_code?.value?.toUpperCase())}
117
117
  onChangeFormattedText={(text: string) => handleChangeNumber(text)}
118
118
  withDarkTheme
119
119
  onChangeCountry={(country) => changeCountry?.(country)}
@@ -23,13 +23,14 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
23
23
  isInputMode,
24
24
  setSpotNumber,
25
25
  setVehicle,
26
- handleChangeSpot
26
+ handleChangeSpot,
27
+ setPlaceSpotNumber
27
28
  } = props
28
29
 
29
30
  const theme = useTheme()
30
31
  const [, t] = useLanguage()
31
32
  const [orderState] = useOrder()
32
- const [, { showToast }] = useToast();
33
+ const [, { showToast }] = useToast();
33
34
 
34
35
  const [placeGroupSelected, setPlaceGroupSelected] = useState<any>(null)
35
36
  const vehicleInputAllowed = [4, 5]
@@ -135,10 +136,15 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
135
136
  useEffect(() => {
136
137
  if (spotState?.error?.length > 0) {
137
138
  const errorText = manageErrorsToShow(spotState?.error)
138
- showToast(ToastType.Error, errorText)
139
+ showToast(ToastType.Error, errorText)
139
140
  }
140
141
  }, [spotState?.error])
141
142
 
143
+ const onChangePlaceSpot = (value: string) => {
144
+ setSpotNumber(value)
145
+ setPlaceSpotNumber(value)
146
+ }
147
+
142
148
  return (
143
149
  <PlaceSpotContainer>
144
150
  {isInputMode ? (
@@ -220,12 +226,12 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
220
226
  value={spotNumber?.toString() ?? ''}
221
227
  placeholder={placeholderText}
222
228
  type='number-pad'
223
- onChange={(value: string) => setSpotNumber(value)}
229
+ onChange={(value: string) => onChangePlaceSpot(value)}
224
230
  style={{
225
231
  borderColor: theme.colors.border,
226
232
  borderRadius: 7.6
227
233
  }}
228
- inputStyle={{ fontSize: 12, color: theme.colors.textNormal }}
234
+ inputStyle={{ fontSize: 12, color: theme.colors.textNormal }}
229
235
  />
230
236
  <View style={{ alignItems: 'flex-start' }}>
231
237
  <OButton
@@ -278,7 +284,7 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
278
284
  onSelect={(place: any) => handlerChangePlace(place)}
279
285
  placeholder={t('SELECT_YOUR_SPOT', 'Select your spot')}
280
286
  options={getPlaces()}
281
- defaultValue={placesState?.places?.find((place : any) => place?.id === cart?.place_id)}
287
+ defaultValue={placesState?.places?.find((place: any) => place?.id === cart?.place_id)}
282
288
  isModal
283
289
  />
284
290
  </View>