ordering-ui-react-native 0.14.95 → 0.14.97-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 (125) hide show
  1. package/package.json +6 -3
  2. package/src/DeliveryApp.tsx +32 -1
  3. package/src/components/BusinessTypeFilter/index.tsx +9 -2
  4. package/src/components/BusinessTypeFilter/styles.tsx +1 -1
  5. package/src/components/BusinessesListing/index.tsx +1 -1
  6. package/src/components/Cart/index.tsx +1 -1
  7. package/src/components/Checkout/index.tsx +0 -1
  8. package/src/components/Home/index.tsx +3 -5
  9. package/src/components/LanguageSelector/index.tsx +65 -97
  10. package/src/components/LanguageSelector/styles.tsx +4 -17
  11. package/src/components/Messages/index.tsx +38 -30
  12. package/src/components/MomentOption/index.tsx +3 -1
  13. package/src/components/OrderDetails/index.tsx +26 -5
  14. package/src/components/PaymentOptions/index.tsx +7 -16
  15. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  16. package/src/components/ProductForm/index.tsx +1 -1
  17. package/src/components/ProductForm/styles.tsx +1 -0
  18. package/src/components/StripeElementsForm/index.tsx +27 -48
  19. package/src/components/UserProfileForm/index.tsx +35 -1
  20. package/src/components/VerifyPhone/styles.tsx +1 -2
  21. package/src/config.json +0 -2
  22. package/src/pages/Checkout.tsx +1 -1
  23. package/src/types/index.tsx +2 -9
  24. package/src/utils/index.tsx +2 -1
  25. package/themes/business/index.tsx +2 -0
  26. package/themes/business/src/components/Chat/index.tsx +32 -31
  27. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  28. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  29. package/themes/business/src/components/OrdersListManager/index.tsx +874 -0
  30. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  31. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  32. package/themes/business/src/components/OrdersOption/index.tsx +70 -116
  33. package/themes/business/src/components/OrdersOption/styles.tsx +2 -5
  34. package/themes/business/src/components/PreviousOrders/index.tsx +80 -23
  35. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  36. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  37. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  38. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  39. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  40. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  41. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  42. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  43. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  44. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  45. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  46. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  47. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  48. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  49. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  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/OrderDetails/index.tsx +2 -2
  53. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  54. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  55. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  56. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  57. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  58. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  59. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  60. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  61. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  62. package/themes/original/index.tsx +28 -2
  63. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  64. package/themes/original/src/components/AddressList/index.tsx +27 -1
  65. package/themes/original/src/components/AnalyticsSegment/index.tsx +127 -0
  66. package/themes/original/src/components/BusinessBasicInformation/index.tsx +100 -45
  67. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
  68. package/themes/original/src/components/BusinessController/index.tsx +36 -22
  69. package/themes/original/src/components/BusinessMenuList/index.tsx +14 -5
  70. package/themes/original/src/components/BusinessPreorder/index.tsx +142 -121
  71. package/themes/original/src/components/BusinessProductsCategories/index.tsx +7 -5
  72. package/themes/original/src/components/BusinessProductsList/index.tsx +52 -8
  73. package/themes/original/src/components/BusinessProductsListing/index.tsx +21 -15
  74. package/themes/original/src/components/BusinessReviews/index.tsx +4 -3
  75. package/themes/original/src/components/BusinessTypeFilter/index.tsx +2 -13
  76. package/themes/original/src/components/BusinessesListing/index.tsx +41 -58
  77. package/themes/original/src/components/Cart/index.tsx +41 -8
  78. package/themes/original/src/components/CartContent/index.tsx +2 -2
  79. package/themes/original/src/components/Checkout/index.tsx +56 -32
  80. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  81. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  82. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  83. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  84. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +105 -90
  85. package/themes/original/src/components/LoginForm/index.tsx +83 -68
  86. package/themes/original/src/components/Messages/index.tsx +52 -45
  87. package/themes/original/src/components/Messages/styles.tsx +1 -3
  88. package/themes/original/src/components/MomentOption/index.tsx +127 -152
  89. package/themes/original/src/components/MomentOption/styles.tsx +42 -18
  90. package/themes/original/src/components/OrderDetails/index.tsx +103 -124
  91. package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
  92. package/themes/original/src/components/OrderProgress/index.tsx +5 -6
  93. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  94. package/themes/original/src/components/OrdersOption/index.tsx +15 -46
  95. package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
  96. package/themes/original/src/components/PaymentOptions/index.tsx +24 -25
  97. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  98. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  99. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  100. package/themes/original/src/components/PreviousOrders/index.tsx +19 -13
  101. package/themes/original/src/components/ProductForm/index.tsx +153 -104
  102. package/themes/original/src/components/ProductForm/styles.tsx +5 -3
  103. package/themes/original/src/components/ProductOptionSubOption/index.tsx +6 -1
  104. package/themes/original/src/components/ReviewOrder/index.tsx +10 -9
  105. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  106. package/themes/original/src/components/SearchBar/index.tsx +4 -10
  107. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  108. package/themes/original/src/components/SingleProductCard/index.tsx +7 -22
  109. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  110. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  111. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  112. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  113. package/themes/original/src/components/UserProfile/index.tsx +16 -11
  114. package/themes/original/src/components/UserProfileForm/index.tsx +16 -8
  115. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  116. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  117. package/themes/original/src/components/shared/HeaderTitle.tsx +20 -0
  118. package/themes/original/src/components/shared/OInput.tsx +1 -2
  119. package/themes/original/src/components/shared/index.tsx +2 -0
  120. package/themes/original/src/types/index.tsx +25 -28
  121. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  122. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  123. package/src/components/StripeMethodForm/index.tsx +0 -163
  124. package/themes/original/src/components/BusinessListingSearch/index.tsx +0 -469
  125. package/themes/original/src/components/BusinessListingSearch/styles.tsx +0 -76
@@ -1,5 +1,5 @@
1
- import React, { useState, useEffect } from 'react'
2
- import { View, StyleSheet, BackHandler, TouchableOpacity, I18nManager } from 'react-native'
1
+ import React, { useState, useEffect, useRef } from 'react'
2
+ import { View, StyleSheet, BackHandler, TouchableOpacity, I18nManager, AppState } from 'react-native'
3
3
  import LinearGradient from 'react-native-linear-gradient'
4
4
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
5
5
  import MaterialCommunityIcon from 'react-native-vector-icons/MaterialCommunityIcons'
@@ -64,7 +64,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
64
64
  isFromRoot,
65
65
  driverLocation,
66
66
  goToBusinessList,
67
- onNavigationRedirect
67
+ onNavigationRedirect,
68
+ getOrder
68
69
  } = props
69
70
 
70
71
  const theme = useTheme()
@@ -108,6 +109,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
108
109
  const [isReviewed, setIsReviewed] = useState(false)
109
110
  const [openOrderCreating, setOpenOrderCreating] = useState(false)
110
111
  const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, tax: null, type: '' })
112
+ const appState = useRef(AppState.currentState)
113
+
111
114
  const { order, loading, businessData, error } = props.order
112
115
 
113
116
  const getOrderStatus = (s: string) => {
@@ -256,6 +259,24 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
256
259
  })
257
260
  }, [])
258
261
 
262
+ useEffect(() => {
263
+ const onFocusApp = (nextAppState: any) => {
264
+ if (
265
+ appState.current.match(/inactive|background/) &&
266
+ nextAppState === "active"
267
+ ) {
268
+ getOrder && getOrder()
269
+ }
270
+ appState.current = nextAppState;
271
+ }
272
+
273
+ AppState.addEventListener("change", onFocusApp);
274
+ return () => {
275
+ AppState.removeEventListener('change', onFocusApp);
276
+ };
277
+ }, [])
278
+
279
+
259
280
  return (
260
281
  <OrderDetailsContainer keyboardShouldPersistTaps='handled'>
261
282
  {order && order?.id && !error && !loading && (
@@ -387,7 +408,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
387
408
  <OText style={{ textAlign: 'left' }}>{order?.delivery_option?.name}</OText>
388
409
  </View>
389
410
  )}
390
- {order?.comment && (
411
+ {!!order?.comment && (
391
412
  <View>
392
413
  <OText size={18} style={{ textAlign: 'left' }} >{t('COMMENT', 'Comment')}</OText>
393
414
  <OText style={{ textAlign: 'left' }}>{order?.comment}</OText>
@@ -535,7 +556,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
535
556
  <OSRow>
536
557
  <OText numberOfLines={1}>
537
558
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
538
- ({parsePrice(fee?.fixed)} + {fee.percentage}%){' '}
559
+ ({fee?.fixed > 0 && `${parsePrice(fee?.fixed)} + `}{fee.percentage}%){' '}
539
560
  </OText>
540
561
  <TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: fee, type: 'fee' })}>
541
562
  <AntIcon name='exclamationcircleo' size={18} color={theme.colors.primary} />
@@ -61,14 +61,11 @@ const PaymentOptionsUI = (props: any) => {
61
61
  handlePaymethodDataChange,
62
62
  handlePaymentMethodClickCustom,
63
63
  isOpenMethod,
64
- setCardData,
65
- handlePlaceOrder
64
+ setCardData
66
65
  } = props
67
66
 
68
67
  const theme = useTheme();
69
68
  const [, t] = useLanguage();
70
- const methodsPay = ['google_pay', 'apple_pay']
71
- const stripeDirectMethods = ['stripe_direct', ...methodsPay]
72
69
 
73
70
  const [addCardOpen, setAddCardOpen] = useState({ stripe: false, stripeConnect: false });
74
71
  let paymethodSelected = props.paySelected || props.paymethodSelected || isOpenMethod?.paymethod
@@ -122,11 +119,8 @@ const PaymentOptionsUI = (props: any) => {
122
119
  }, [props.paySelected])
123
120
 
124
121
  useEffect(() => {
125
- setCardData && setCardData(paymethodData)
126
- if (methodsPay.includes(paymethodSelected?.gateway) && paymethodData?.id && paymethodSelected?.data?.card) {
127
- handlePlaceOrder()
128
- }
129
- }, [paymethodData, paymethodSelected])
122
+ setCardData(paymethodData)
123
+ }, [paymethodData])
130
124
 
131
125
  const renderPaymethods = ({ item }: any) => {
132
126
  return (
@@ -285,11 +279,11 @@ const PaymentOptionsUI = (props: any) => {
285
279
  </KeyboardAvoidingView>
286
280
  </OModal>
287
281
 
288
- {/* Stripe direct, Google pay, Apple pay */}
282
+ {/* Stripe direct */}
289
283
  <OModal
290
284
  entireModal
291
285
  title={t('ADD_CREDIT_OR_DEBIT_CARD', 'Add credit or debit card')}
292
- open={stripeDirectMethods?.includes(isOpenMethod?.paymethod?.gateway) && !paymethodData.id}
286
+ open={isOpenMethod?.paymethod?.gateway === 'stripe_direct' && !paymethodData?.id}
293
287
  onClose={() => handlePaymethodClick(null)}
294
288
  >
295
289
  <KeyboardAvoidingView
@@ -298,13 +292,10 @@ const PaymentOptionsUI = (props: any) => {
298
292
  enabled={Platform.OS === 'ios' ? true : false}
299
293
  >
300
294
  <StripeElementsForm
301
- cart={cart}
302
- paymethod={isOpenMethod?.paymethod?.gateway}
303
- methodsPay={methodsPay}
304
295
  businessId={props.businessId}
305
- publicKey={isOpenMethod?.paymethod?.credentials?.publishable || isOpenMethod?.paymethod?.credentials?.publishable_key}
296
+ publicKey={isOpenMethod?.paymethod?.credentials?.publishable}
306
297
  handleSource={handlePaymethodDataChange}
307
- onCancel={() => handlePaymethodClick(null)}
298
+ onCancel={() => handlePaymethodClick(false)}
308
299
  />
309
300
  </KeyboardAvoidingView>
310
301
  </OModal>
@@ -5,147 +5,146 @@ import WebView from 'react-native-webview';
5
5
  import { ActivityIndicator } from 'react-native-paper';
6
6
 
7
7
  import {
8
- ToastType,
9
- useToast,
10
- useApi,
11
- useLanguage,
12
- useConfig
8
+ ToastType,
9
+ useToast,
10
+ useApi,
11
+ useLanguage,
12
+ useConfig
13
13
  } from 'ordering-components/native';
14
14
 
15
15
  import { OText } from '../shared';
16
16
 
17
17
  interface PaymentOptionsWebViewParams {
18
- onNavigationRedirect?: Function,
19
- uri?: any,
20
- user?: any,
21
- token?: any,
22
- cart?: any,
23
- currency?: any,
24
- webviewPaymethod?: any,
25
- setShowGateway?: any,
26
- setOpenOrderCreating?: any,
27
- locationId?: any
18
+ onNavigationRedirect?: Function,
19
+ uri?: any,
20
+ user?: any,
21
+ token?: any,
22
+ cart?: any,
23
+ currency?: any,
24
+ webviewPaymethod?: any,
25
+ setShowGateway?: any,
26
+ setOpenOrderCreating?: any,
27
+ locationId?: any
28
28
  }
29
29
  export const PaymentOptionsWebView = (props: PaymentOptionsWebViewParams) => {
30
- const {
31
- onNavigationRedirect,
32
- uri,
33
- user,
34
- token,
35
- cart,
36
- currency,
37
- webviewPaymethod,
38
- setShowGateway,
39
- setOpenOrderCreating,
40
- locationId
41
- } = props
30
+ const {
31
+ onNavigationRedirect,
32
+ uri,
33
+ user,
34
+ token,
35
+ cart,
36
+ currency,
37
+ webviewPaymethod,
38
+ setShowGateway,
39
+ setOpenOrderCreating,
40
+ locationId
41
+ } = props
42
42
 
43
- const webviewRef = useRef<any>(null)
44
- const [, { showToast }] = useToast();
45
- const [ordering] = useApi()
46
- const [{ configs }] = useConfig();
47
- const [, t] = useLanguage();
43
+ const webviewRef = useRef<any>(null)
44
+ const [, { showToast }] = useToast();
45
+ const [ordering] = useApi()
46
+ const [{ configs }] = useConfig();
47
+ const [, t] = useLanguage();
48
48
 
49
+
50
+ const [progClr, setProgClr] = useState('#424242');
51
+ const [prog, setProg] = useState(true);
49
52
 
50
- const [progClr, setProgClr] = useState('#424242');
51
- const [prog, setProg] = useState(true);
52
-
53
- const handleCloseWebview = () => {
53
+ const handleCloseWebview = () => {
54
54
  setProg(true);
55
55
  setShowGateway({ open: false, closedByUser: true })
56
56
  }
57
57
 
58
- const onMessage = (e: any) => {
59
- if (e?.nativeEvent?.data && e?.nativeEvent?.data !== 'undefined') {
60
- let payment = JSON.parse(e.nativeEvent.data);
58
+ const onMessage = (e: any) => {
59
+ if (e?.nativeEvent?.data && e?.nativeEvent?.data !== 'undefined') {
60
+ let payment = JSON.parse(e.nativeEvent.data);
61
61
 
62
- if (payment === 'api error') {
63
- setShowGateway({ closedByUser: true, open: false })
64
- setProg(true);
65
- }
62
+ if (payment === 'api error') {
63
+ setShowGateway({ closedByUser: true, open: false })
64
+ setProg(true);
65
+ }
66
66
 
67
- if (payment) {
68
- if (payment.error) {
69
- showToast(ToastType.Error, payment.result)
70
- setOpenOrderCreating && setOpenOrderCreating(false)
71
- } else if (payment?.result?.order?.uuid) {
72
- showToast(ToastType.Success, t('ORDER_PLACED_SUCCESSfULLY', 'The order was placed successfully'))
73
- onNavigationRedirect && onNavigationRedirect('OrderDetails', { orderId: payment?.result?.order?.uuid, isFromCheckout: true })
67
+ if (payment) {
68
+ if (payment.error) {
69
+ showToast(ToastType.Error, payment.result)
70
+ setOpenOrderCreating && setOpenOrderCreating(false)
71
+ } else if (payment?.result?.order?.uuid) {
72
+ showToast(ToastType.Success, t('ORDER_PLACED_SUCCESSfULLY', 'The order was placed successfully'))
73
+ onNavigationRedirect && onNavigationRedirect('OrderDetails', { orderId: payment?.result?.order?.uuid, isFromCheckout: true})
74
+ }
75
+ setProg(true);
76
+ setShowGateway({ closedByUser: false, open: false })
77
+ }
74
78
  }
75
- setProg(true);
76
- setShowGateway({ closedByUser: false, open: false })
77
- }
78
- }
79
- }
79
+ }
80
80
 
81
- return (
81
+ return (
82
82
  <View style={{ zIndex: 9999, height: '100%', width: '100%', position: 'absolute', backgroundColor: 'white' }}>
83
- <Icon
84
- name="x"
85
- size={35}
86
- style={{ backgroundColor: 'white', paddingTop: 30, paddingLeft: 10 }}
87
- onPress={handleCloseWebview}
88
- />
89
- <OText
90
- style={{
91
- textAlign: 'center',
92
- fontSize: 16,
93
- fontWeight: 'bold',
94
- color: '#00457C',
95
- marginBottom: 5,
96
- marginTop: 10
97
- }}>
98
- {webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment'))}
99
- </OText>
100
- <View style={{ padding: 20, opacity: prog ? 1 : 0, backgroundColor: 'white' }}>
101
- <ActivityIndicator size={24} color={progClr} />
102
- </View>
103
- <WebView
104
- source={{ uri: uri }}
105
- onMessage={onMessage}
106
- ref={webviewRef}
107
- javaScriptEnabled={true}
108
- javaScriptEnabledAndroid={true}
109
- cacheEnabled={false}
110
- cacheMode='LOAD_NO_CACHE'
111
- style={{ flex: 1 }}
112
- onShouldStartLoadWithRequest={() => true}
113
- onLoadStart={() => {
114
- setProg(true);
115
- setProgClr('#424242');
116
- }}
117
- onLoadProgress={() => {
118
- setProg(true);
119
- setProgClr('#00457C');
120
- }}
121
- onLoad={() => {
122
- setProg(true);
123
- setProgClr('#00457C');
124
- }}
125
- onLoadEnd={(e) => {
126
- const messageParams = locationId ? { locationId, clientId: webviewPaymethod?.credentials?.application_id } : {}
127
- const message = {
128
- action: 'init',
129
- data: {
130
- urlPlace: `${ordering.root}/carts/${cart?.uuid}/place`,
131
- urlConfirm: `${ordering.root}/carts/${cart?.uuid}/confirm`,
132
- payData: {
133
- paymethod_id: webviewPaymethod?.id,
134
- amount: cart?.balance ?? cart?.total,
135
- delivery_zone_id: cart?.delivery_zone_id,
136
- user_id: user?.id,
137
- user_name: user?.name
138
- },
139
- currency: configs?.stripe_currency?.value || currency,
140
- userToken: token,
141
- clientId: webviewPaymethod?.credentials?.client_id,
142
- ...messageParams
143
- }
144
- }
145
- setProg(false);
146
- webviewRef?.current?.postMessage?.(JSON.stringify(message))
147
- }}
148
- />
83
+ <Icon
84
+ name="x"
85
+ size={35}
86
+ style={{ backgroundColor: 'white', paddingTop: 30, paddingLeft: 10 }}
87
+ onPress={handleCloseWebview}
88
+ />
89
+ <OText
90
+ style={{
91
+ textAlign: 'center',
92
+ fontSize: 16,
93
+ fontWeight: 'bold',
94
+ color: '#00457C',
95
+ marginBottom: 5,
96
+ marginTop: 10
97
+ }}>
98
+ {webviewPaymethod?.gateway === 'paypal' ? (t('PAYPAL_GATEWAY', 'PayPal GateWay')) : (t('SQUARE_PAYMENT', 'Square payment'))}
99
+ </OText>
100
+ <View style={{ padding: 20, opacity: prog ? 1 : 0, backgroundColor: 'white' }}>
101
+ <ActivityIndicator size={24} color={progClr} />
102
+ </View>
103
+ <WebView
104
+ source={{ uri: uri }}
105
+ onMessage={onMessage}
106
+ ref={webviewRef}
107
+ javaScriptEnabled={true}
108
+ javaScriptEnabledAndroid={true}
109
+ cacheEnabled={false}
110
+ cacheMode='LOAD_NO_CACHE'
111
+ style={{ flex: 1 }}
112
+ onShouldStartLoadWithRequest={() => true}
113
+ onLoadStart={() => {
114
+ setProg(true);
115
+ setProgClr('#424242');
116
+ }}
117
+ onLoadProgress={() => {
118
+ setProg(true);
119
+ setProgClr('#00457C');
120
+ }}
121
+ onLoad={() => {
122
+ setProg(true);
123
+ setProgClr('#00457C');
124
+ }}
125
+ onLoadEnd={(e) => {
126
+ const messageParams = locationId ? { locationId } : {}
127
+ const message = {
128
+ action: 'init',
129
+ data: {
130
+ urlPlace: `${ordering.root}/carts/${cart?.uuid}/place`,
131
+ urlConfirm: `${ordering.root}/carts/${cart?.uuid}/confirm`,
132
+ payData: {
133
+ paymethod_id: webviewPaymethod?.id,
134
+ amount: cart?.balance ?? cart?.total,
135
+ delivery_zone_id: cart?.delivery_zone_id,
136
+ user_id: user?.id,
137
+ user_name: user?.name
138
+ },
139
+ currency: configs?.stripe_currency?.value || currency,
140
+ userToken: token,
141
+ clientId: webviewPaymethod?.credentials?.client_id,
142
+ ...messageParams
143
+ }
144
+ }
145
+ setProg(false);
146
+ webviewRef?.current?.postMessage?.(JSON.stringify(message))
147
+ }}
148
+ />
149
149
  </View>
150
- )
151
- }
150
+ )}
@@ -378,7 +378,7 @@ const styles = StyleSheet.create({
378
378
  borderBottomLeftRadius: 10,
379
379
  borderBottomRightRadius: 10,
380
380
  borderColor: '#DBDCDB',
381
- height: 100,
381
+ height: 160,
382
382
  alignItems: 'flex-start',
383
383
  },
384
384
  quantityControl: {
@@ -66,6 +66,7 @@ export const WrapperSubOption = styled.View`
66
66
  `
67
67
 
68
68
  export const ProductComment = styled.View`
69
+ height: 160px;
69
70
  `
70
71
 
71
72
  export const ProductActions = styled.View`
@@ -7,11 +7,10 @@ import {
7
7
  useConfirmSetupIntent,
8
8
  createPaymentMethod
9
9
  } from '@stripe/stripe-react-native';
10
- import configs from '../../config.json'
10
+
11
11
  import { ErrorMessage } from './styles';
12
12
 
13
13
  import { StripeElementsForm as StripeFormController } from './naked';
14
- import { StripeMethodForm } from '../StripeMethodForm';
15
14
  import { OButton, OText } from '../shared';
16
15
  import { useTheme } from 'styled-components/native';
17
16
 
@@ -23,10 +22,6 @@ const StripeElementsFormUI = (props: any) => {
23
22
  businessId,
24
23
  requirements,
25
24
  stripeTokenHandler,
26
- methodsPay,
27
- paymethod,
28
- onCancel,
29
- cart
30
25
  } = props;
31
26
 
32
27
  const theme = useTheme();
@@ -126,49 +121,33 @@ const StripeElementsFormUI = (props: any) => {
126
121
  <View style={styles.container}>
127
122
  {publicKey ? (
128
123
  <View style={{ flex: 1 }}>
129
- <StripeProvider
130
- publishableKey={publicKey}
131
- merchantIdentifier={`merchant.${configs.apple_app_id}`}
132
- >
133
- {methodsPay?.includes(paymethod) ? (
134
- <StripeMethodForm
135
- handleSource={handleSource}
136
- onCancel={onCancel}
137
- cart={cart}
138
- setErrors={setErrors}
139
- paymethod={paymethod}
140
- devMode={publicKey?.includes('test')}
141
- />
142
- ) : (
143
- <CardField
144
- postalCodeEnabled={true}
145
- cardStyle={{
146
- backgroundColor: '#FFFFFF',
147
- textColor: '#000000',
148
- }}
149
- style={{
150
- width: '100%',
151
- height: 50,
152
- marginVertical: 30,
153
- zIndex: 9999,
154
- }}
155
- onCardChange={(cardDetails: any) => setCard(cardDetails)}
156
- />
157
- )}
158
- </StripeProvider>
159
- {!methodsPay?.includes(paymethod) && (
160
- <OButton
161
- text={t('SAVE_CARD', 'Save card')}
162
- bgColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
163
- borderColor={isCompleted ? theme.colors.primary :theme.colors.backgroundGray}
164
- style={styles.btnAddStyle}
165
- textStyle={{color: 'white'}}
166
- imgRightSrc={null}
167
- onClick={() => handleSaveCard()}
168
- isDisabled={!isCompleted}
169
- isLoading={confirmSetupLoading || values.loadingAdd || createPmLoading}
124
+ <StripeProvider publishableKey={publicKey}>
125
+ <CardField
126
+ postalCodeEnabled={true}
127
+ cardStyle={{
128
+ backgroundColor: '#FFFFFF',
129
+ textColor: '#000000',
130
+ }}
131
+ style={{
132
+ width: '100%',
133
+ height: 50,
134
+ marginVertical: 30,
135
+ zIndex: 9999,
136
+ }}
137
+ onCardChange={(cardDetails: any) => setCard(cardDetails)}
170
138
  />
171
- )}
139
+ </StripeProvider>
140
+ <OButton
141
+ text={t('SAVE_CARD', 'Save card')}
142
+ bgColor={isCompleted ? theme.colors.primary : theme.colors.backgroundGray}
143
+ borderColor={isCompleted ? theme.colors.primary :theme.colors.backgroundGray}
144
+ style={styles.btnAddStyle}
145
+ textStyle={{color: 'white'}}
146
+ imgRightSrc={null}
147
+ onClick={() => handleSaveCard()}
148
+ isDisabled={!isCompleted}
149
+ isLoading={confirmSetupLoading || values.loadingAdd || createPmLoading}
150
+ />
172
151
  {!!errors && (
173
152
  <ErrorMessage>
174
153
  <OText
@@ -47,6 +47,40 @@ export const UserProfileForm = (props: ProfileParams) => {
47
47
  }
48
48
  });
49
49
 
50
+ const _pickerStyle = StyleSheet.create({
51
+ inputAndroid: {
52
+ color: '#000',
53
+ borderWidth: 1,
54
+ borderColor: theme.colors.clear,
55
+ padding: 10,
56
+ height: 40,
57
+ backgroundColor: theme.colors.disabled,
58
+ borderRadius: 8
59
+ },
60
+ inputIOS: {
61
+ color: '#000',
62
+ padding: 10,
63
+ height: 40,
64
+ borderWidth: 1,
65
+ borderColor: theme.colors.clear,
66
+ backgroundColor: theme.colors.clear,
67
+ },
68
+ icon: {
69
+ width: 10,
70
+ marginTop: 9,
71
+ marginEnd: 10
72
+ },
73
+ placeholder: {
74
+ color: theme.colors.secundaryContrast
75
+ },
76
+ chevronDown: {
77
+ display: 'none'
78
+ },
79
+ chevronUp: {
80
+ display: 'none'
81
+ }
82
+ })
83
+
50
84
  const onRedirect = (route: string, params?: any) => {
51
85
  navigation.navigate(route, params)
52
86
  }
@@ -97,7 +131,7 @@ export const UserProfileForm = (props: ProfileParams) => {
97
131
  <View>
98
132
  <LanguageContainer>
99
133
  <Ionicons name='globe-outline' style={styles.iconStyle} />
100
- <LanguageSelector isFromProfile />
134
+ <LanguageSelector pickerStyle={_pickerStyle} />
101
135
  </LanguageContainer>
102
136
  <LogoutButton />
103
137
  </View>
@@ -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: 0 43px;
5
+ padding: 0 30px;
6
6
  `
7
7
 
8
8
  export const CountDownContainer = styled.View`
@@ -20,7 +20,6 @@ export const ResendSection = styled.View`
20
20
  display: flex;
21
21
  flex-direction: row;
22
22
  justify-content: center;
23
- flex-wrap: wrap;
24
23
  `
25
24
 
26
25
  export const WrappCountdown = styled.View`
package/src/config.json CHANGED
@@ -3,8 +3,6 @@
3
3
  "notification_app": "orderingapp",
4
4
  "app_name": "Ordering",
5
5
  "project": "reactdemo",
6
- "apple_app_id": "com.delivery",
7
- "android_app_id": "com.delivery",
8
6
  "api": {
9
7
  "url": "https://apiv4.ordering.co",
10
8
  "language": "en",
@@ -7,7 +7,7 @@ import styled from 'styled-components/native';
7
7
 
8
8
  import { useOrder, useLanguage, ToastType, useToast } from 'ordering-components/native';
9
9
 
10
- const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect', 'google_pay', 'apple_pay'];
10
+ const stripePaymentOptions = ['stripe', 'stripe_direct', 'stripe_connect'];
11
11
 
12
12
  const KeyboardView = styled.KeyboardAvoidingView`
13
13
  flex: 1;
@@ -113,6 +113,7 @@ export interface LanguageSelectorParams {
113
113
  currentLanguage?: string;
114
114
  handleChangeLanguage?: any;
115
115
  isFromProfile?: boolean,
116
+ pickerStyle?: any
116
117
  }
117
118
  export interface BusinessesListingParams {
118
119
  navigation?: any;
@@ -286,6 +287,7 @@ export interface OrderDetailsParams {
286
287
  isFromRoot?: any;
287
288
  goToBusinessList?: any;
288
289
  onNavigationRedirect?: any;
290
+ getOrder?: () => {}
289
291
  }
290
292
  export interface ProductItemAccordionParams {
291
293
  key?: any;
@@ -473,12 +475,3 @@ export interface HelpGuideParams {
473
475
  export interface HelpAccountAndPaymentParams {
474
476
  navigation: any;
475
477
  }
476
-
477
- export interface StripeMethodFormParams {
478
- cart: any;
479
- handleSource: ({id, card} : {id : string, card : any}) => void;
480
- onCancel: () => void;
481
- setErrors: (error: string) => void;
482
- paymethod: string;
483
- devMode?: boolean;
484
- }
@@ -32,7 +32,8 @@ export const getTraduction = (key: string, t: any) => {
32
32
  ERROR_PLACE_PAY_WITH_CARD1: 'An error occurred while trying to pay by card',
33
33
  ERROR_PLACE_PAY_WITH_PAYPAL_CAPTURE: 'An error occurred while trying to pay by PayPal',
34
34
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
35
- ERROR_PRODUCT_NOT_FOUND: 'Error with the product'
35
+ ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
36
+ ERROR_ADD_BUSINESS_INVALID: 'An error occurred with the business',
36
37
  }
37
38
 
38
39
  return keyList[key] ? t(key, keyList[key]) : t(key)
@@ -16,6 +16,7 @@ import { OrderMessage } from './src/components/OrderMessage';
16
16
  import { OrderDetailsBusiness } from './src/components/OrderDetails/Business';
17
17
  import { OrderDetailsDelivery } from './src/components/OrderDetails/Delivery';
18
18
  import { OrdersOption } from './src/components/OrdersOption';
19
+ import { OrdersListManager } from './src/components/OrdersListManager';
19
20
  import { OrdersOptionStatus } from './src/components/OrdersOptionStatus';
20
21
  import { OrdersOptionBusiness } from './src/components/OrdersOptionBusiness';
21
22
  import { OrdersOptionCity } from './src/components/OrdersOptionCity';
@@ -84,6 +85,7 @@ export {
84
85
  OrderDetailsDelivery,
85
86
  OrderMessage,
86
87
  OrdersOption,
88
+ OrdersListManager,
87
89
  OrdersOptionStatus,
88
90
  OrdersOptionBusiness,
89
91
  OrdersOptionCity,