ordering-ui-react-native 0.14.92 → 0.14.93-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 (121) 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/providers/AlertProvider.tsx +4 -1
  24. package/src/types/index.tsx +2 -9
  25. package/src/utils/index.tsx +2 -1
  26. package/themes/business/index.tsx +2 -0
  27. package/themes/business/src/components/Chat/index.tsx +32 -31
  28. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  29. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  30. package/themes/business/src/components/OrdersListManager/index.tsx +871 -0
  31. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  32. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  33. package/themes/business/src/components/OrdersOption/index.tsx +18 -68
  34. package/themes/business/src/components/OrdersOption/styles.tsx +2 -5
  35. package/themes/business/src/components/PreviousOrders/index.tsx +80 -23
  36. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  37. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  38. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  39. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  40. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  41. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  42. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  43. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  44. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  45. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  46. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  47. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  48. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  49. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  50. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  51. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  52. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  53. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  54. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  56. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  57. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  58. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  59. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  60. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  61. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  62. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  63. package/themes/original/index.tsx +34 -6
  64. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  65. package/themes/original/src/components/AddressList/index.tsx +27 -1
  66. package/themes/original/src/components/AnalyticsSegment/index.tsx +127 -0
  67. package/themes/original/src/components/BusinessBasicInformation/index.tsx +75 -40
  68. package/themes/original/src/components/BusinessController/index.tsx +34 -18
  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/BusinessesListing/index.tsx +39 -52
  76. package/themes/original/src/components/Cart/index.tsx +42 -9
  77. package/themes/original/src/components/CartContent/index.tsx +2 -2
  78. package/themes/original/src/components/Checkout/index.tsx +56 -32
  79. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  80. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  81. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  82. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  83. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +105 -90
  84. package/themes/original/src/components/LoginForm/index.tsx +83 -68
  85. package/themes/original/src/components/Messages/index.tsx +52 -45
  86. package/themes/original/src/components/Messages/styles.tsx +1 -3
  87. package/themes/original/src/components/MomentOption/index.tsx +127 -152
  88. package/themes/original/src/components/MomentOption/styles.tsx +42 -18
  89. package/themes/original/src/components/OrderDetails/index.tsx +103 -124
  90. package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
  91. package/themes/original/src/components/OrderProgress/index.tsx +5 -6
  92. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  93. package/themes/original/src/components/OrdersOption/index.tsx +15 -46
  94. package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
  95. package/themes/original/src/components/PaymentOptions/index.tsx +24 -25
  96. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  97. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  98. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  99. package/themes/original/src/components/PreviousOrders/index.tsx +19 -13
  100. package/themes/original/src/components/ProductForm/index.tsx +154 -105
  101. package/themes/original/src/components/ProductForm/styles.tsx +5 -3
  102. package/themes/original/src/components/ProductOptionSubOption/index.tsx +6 -1
  103. package/themes/original/src/components/ReviewOrder/index.tsx +10 -9
  104. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  105. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  106. package/themes/original/src/components/SingleProductCard/index.tsx +6 -13
  107. package/themes/original/src/components/SingleProductCard/styles.tsx +1 -1
  108. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  109. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  110. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  111. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  112. package/themes/original/src/components/UserProfile/index.tsx +16 -11
  113. package/themes/original/src/components/UserProfileForm/index.tsx +16 -8
  114. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  115. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  116. package/themes/original/src/components/shared/HeaderTitle.tsx +20 -0
  117. package/themes/original/src/components/shared/index.tsx +2 -0
  118. package/themes/original/src/types/index.tsx +25 -9
  119. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  120. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  121. package/src/components/StripeMethodForm/index.tsx +0 -163
@@ -3,17 +3,14 @@ import { TouchableOpacity, View } from 'react-native';
3
3
  import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons';
4
4
 
5
5
  import { UDContainer, UDHeader, UDForm, UDInfo, EditBtn } from './styles';
6
+
6
7
  import {
7
8
  UserFormDetails as UserFormController,
8
9
  useLanguage,
9
10
  useSession,
10
- ToastType,
11
- useToast
12
11
  } from 'ordering-components/native';
13
12
  import { useTheme } from 'styled-components/native';
14
- import { OIcon, OText, OModal } from '../shared';
15
- import { VerifyPhone } from '../VerifyPhone';
16
- import Spinner from 'react-native-loading-spinner-overlay';
13
+ import { OIcon, OText } from '../shared';
17
14
 
18
15
  import { UserFormDetailsUI } from '../UserFormDetails';
19
16
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
@@ -29,33 +26,15 @@ const UserDetailsUI = (props: any) => {
29
26
  isUserDetailsEdit,
30
27
  phoneUpdate,
31
28
  togglePhoneUpdate,
32
- isCheckout,
33
- checkPhoneCodeState,
34
- handleSendVerifyCode,
35
- handleCheckPhoneCode,
36
- verifyPhoneState,
37
- isVerifiedPhone,
38
- setCheckPhoneCodeState
29
+ isCheckout
39
30
  } = props
40
31
 
41
32
  const theme = useTheme();
42
33
 
43
34
  const [, t] = useLanguage()
44
35
  const [{ user }] = useSession()
45
- const [, { showToast }] = useToast();
46
-
47
36
  const userData = props.userData || (!formState.result.error && formState.result?.result) || user
48
37
 
49
- const [isModalVisible, setIsModalVisible] = useState(false);
50
- const [willVerifyOtpState, setWillVerifyOtpState] = useState(false);
51
- const [phoneInputData, setPhoneInputData] = useState({
52
- error: '',
53
- phone: {
54
- country_phone_code: null,
55
- cellphone: null,
56
- },
57
- });
58
-
59
38
 
60
39
  useEffect(() => {
61
40
  if (isUserDetailsEdit) {
@@ -76,54 +55,6 @@ const UserDetailsUI = (props: any) => {
76
55
  }
77
56
  }, [user?.country_phone_code])
78
57
 
79
- const handleVerifyCodeClick = () => {
80
- if (formState?.changes?.cellphone && formState?.changes?.country_phone_code) {
81
- const { cellphone, country_phone_code: countryPhoneCode } = formState?.changes
82
-
83
- setPhoneInputData({
84
- error: '',
85
- phone: {
86
- country_phone_code: countryPhoneCode,
87
- cellphone: cellphone,
88
- },
89
- });
90
- handleSendVerifyCode({
91
- cellphone: cellphone,
92
- country_phone_code: countryPhoneCode
93
- })
94
- }
95
- }
96
-
97
- useEffect(() => {
98
- if (willVerifyOtpState) handleVerifyCodeClick()
99
- }, [willVerifyOtpState])
100
-
101
- useEffect(() => {
102
- if (verifyPhoneState && !verifyPhoneState?.loading) {
103
- if (verifyPhoneState.result?.error) {
104
- const message = typeof verifyPhoneState?.result?.result === 'string'
105
- ? verifyPhoneState?.result?.result
106
- : verifyPhoneState?.result?.result[0]
107
- verifyPhoneState.result?.result && showToast(
108
- ToastType.Error,
109
- message
110
- )
111
- setWillVerifyOtpState(false)
112
- return
113
- }
114
-
115
- const okResult = verifyPhoneState.result?.result === 'OK'
116
- if (okResult) {
117
- !isModalVisible && setIsModalVisible(true)
118
- setWillVerifyOtpState(false)
119
- }
120
- }
121
- }, [verifyPhoneState])
122
-
123
- useEffect(() => {
124
- if (isVerifiedPhone) setIsModalVisible(false)
125
- }, [isVerifiedPhone])
126
-
127
58
  return (
128
59
  <>
129
60
  {(validationFields.loading || formState.loading) && (
@@ -186,32 +117,10 @@ const UserDetailsUI = (props: any) => {
186
117
  )}
187
118
  </UDInfo>
188
119
  ) : (
189
- <UserFormDetailsUI
190
- {...props}
191
- phoneUpdate={phoneUpdate}
192
- togglePhoneUpdate={togglePhoneUpdate}
193
- isCheckout={isCheckout}
194
- setWillVerifyOtpState={setWillVerifyOtpState}
195
- />
120
+ <UserFormDetailsUI {...props} phoneUpdate={phoneUpdate} togglePhoneUpdate={togglePhoneUpdate} isCheckout={isCheckout} />
196
121
  )}
197
122
  </UDContainer>
198
123
  )}
199
- <OModal
200
- open={isModalVisible}
201
- onClose={() => setIsModalVisible(false)}
202
- entireModal
203
- >
204
- <VerifyPhone
205
- phone={phoneInputData.phone}
206
- verifyPhoneState={verifyPhoneState}
207
- checkPhoneCodeState={checkPhoneCodeState}
208
- handleCheckPhoneCode={handleCheckPhoneCode}
209
- setCheckPhoneCodeState={setCheckPhoneCodeState}
210
- handleVerifyCodeClick={handleVerifyCodeClick}
211
- onClose={() => setIsModalVisible(false)}
212
- />
213
- </OModal>
214
- <Spinner visible={verifyPhoneState?.loading} />
215
124
  </>
216
125
  )
217
126
  }
@@ -25,8 +25,6 @@ export const UserFormDetailsUI = (props: any) => {
25
25
  handleButtonUpdateClick,
26
26
  phoneUpdate,
27
27
  hideUpdateButton,
28
- setWillVerifyOtpState,
29
- isVerifiedPhone,
30
28
  handleChangePromotions
31
29
  } = props;
32
30
 
@@ -141,8 +139,8 @@ export const UserFormDetailsUI = (props: any) => {
141
139
  if (
142
140
  formState.changes?.cellphone === null &&
143
141
  ((validationFields?.fields?.checkout?.cellphone?.enabled &&
144
- validationFields?.fields?.checkout?.cellphone?.required) ||
145
- configs?.verification_phone_required?.value === '1')
142
+ validationFields?.fields?.checkout?.cellphone?.required) ||
143
+ configs?.verification_phone_required?.value === '1')
146
144
  ) {
147
145
  showToast(
148
146
  ToastType.Error,
@@ -153,9 +151,6 @@ export const UserFormDetailsUI = (props: any) => {
153
151
  );
154
152
  return;
155
153
  }
156
- if (formState?.changes?.cellphone && !isVerifiedPhone) {
157
- showToast(ToastType.Error, t('VERIFY_ERROR_PHONE_NUMBER', 'The Phone Number field is not verified'))
158
- }
159
154
  let changes = null;
160
155
  if (user?.cellphone && !userPhoneNumber) {
161
156
  changes = {
@@ -216,13 +211,6 @@ export const UserFormDetailsUI = (props: any) => {
216
211
  }
217
212
  }
218
213
  }, [user, isEdit]);
219
-
220
- useEffect(() => {
221
- if (!phoneInputData.error && phoneInputData?.phone?.country_phone_code && phoneInputData?.phone?.cellphone) {
222
- setWillVerifyOtpState(true)
223
- }
224
- }, [phoneInputData])
225
-
226
214
  return (
227
215
  <>
228
216
  <UDForm>
@@ -16,6 +16,7 @@ import { LogoutButton } from '../LogoutButton'
16
16
  import { LanguageSelector } from '../LanguageSelector'
17
17
  import MessageCircle from 'react-native-vector-icons/AntDesign'
18
18
  import Ionicons from 'react-native-vector-icons/Ionicons'
19
+ import FastImage from 'react-native-fast-image'
19
20
 
20
21
  import {
21
22
  OIcon,
@@ -135,19 +136,23 @@ const ProfileListUI = (props: ProfileParams) => {
135
136
  }
136
137
 
137
138
  return (
138
- <View style={{ flex: 1, height: height - top - bottom - 62 }}>
139
- <OText size={24} style={{ marginTop: 15, paddingHorizontal: 40 }}>
139
+ <View style={{ flex: 1, height: height - top - bottom - 62, paddingTop: 20 }}>
140
+ {/* <OText size={24} style={{ marginTop: 15, paddingHorizontal: 40 }}>
140
141
  {t('PROFILE', 'Profile')}
141
- </OText>
142
+ </OText> */}
142
143
  <CenterView style={styles.pagePadding}>
143
- <View style={styles.photo}>
144
- <OIcon
145
- url={user?.photo}
146
- src={!user?.photo && theme.images.general.user}
147
- width={60}
148
- height={60}
149
- />
150
- </View>
144
+ {user?.photo && (
145
+ <View style={styles.photo}>
146
+ <FastImage
147
+ style={{ height: 60, width: 60, borderRadius: 8 }}
148
+ source={{
149
+ uri: user?.photo,
150
+ priority: FastImage.priority.normal,
151
+ }}
152
+ resizeMode={FastImage.resizeMode.cover}
153
+ />
154
+ </View>
155
+ )}
151
156
  <View style={{ flexBasis: '70%' }}>
152
157
  <OText size={20} lineHeight={30} weight={Platform.OS === 'ios' ? '500' : 'bold'} color={theme.colors.textNormal}>{user?.name} {user?.lastname}</OText>
153
158
  <TouchableOpacity onPress={() => navigation.navigate('ProfileForm', { ...detailProps })}>
@@ -20,6 +20,8 @@ import { CenterView } from './styles';
20
20
  import NavBar from '../NavBar';
21
21
  import { Container } from '../../layouts/Container';
22
22
  import { VerifyPhone } from '../VerifyPhone'
23
+ import Ionicons from 'react-native-vector-icons/Ionicons'
24
+ import FastImage from 'react-native-fast-image'
23
25
 
24
26
  const ProfileUI = (props: ProfileParams) => {
25
27
  const {
@@ -286,18 +288,24 @@ const ProfileUI = (props: ProfileParams) => {
286
288
  />
287
289
  <CenterView style={styles.pagePadding}>
288
290
  <View style={styles.photo}>
289
- <OIcon
290
- url={user?.photo}
291
- src={!user?.photo && theme.images.general.user}
292
- width={79}
293
- height={79}
294
- />
291
+ {user?.photo ? (
292
+ <FastImage
293
+ style={{ height: 60, width: 80, borderRadius: 8 }}
294
+ source={{
295
+ uri: user?.photo,
296
+ priority: FastImage.priority.normal,
297
+ }}
298
+ resizeMode={FastImage.resizeMode.cover}
299
+ />
300
+ ) : (
301
+ <Ionicons name='person-outline' size={50} />
302
+ )}
295
303
  </View>
296
304
  <OIconButton
297
305
  icon={theme.images.general.camera}
298
306
  borderColor={theme.colors.clear}
299
- iconStyle={{ width: 16, height: 16 }}
300
- style={{ maxWidth: 40, position: 'absolute', bottom: -2, alignSelf: 'center' }}
307
+ iconStyle={{ width: 20, height: 20 }}
308
+ style={{ maxWidth: 40, position: 'absolute', bottom: -2, alignSelf: 'center', backgroundColor: '#000', opacity: 0.5 }}
301
309
  onClick={() => handleImagePicker()}
302
310
  />
303
311
  </CenterView>
@@ -37,8 +37,8 @@ export const VerifyPhone = (props: any) => {
37
37
  height: 75,
38
38
  marginBottom: 25,
39
39
  borderWidth: 1,
40
- borderColor: theme.colors.inputBorderColor,
41
- borderRadius: 8,
40
+ borderColor: theme.colors.disabled,
41
+ borderRadius: 20,
42
42
  textAlign: 'center',
43
43
  fontSize: 40
44
44
  }
@@ -131,11 +131,11 @@ export const VerifyPhone = (props: any) => {
131
131
 
132
132
  return (
133
133
  <Container>
134
- <OText size={26} style={{ textAlign: 'left', fontWeight: '600', marginTop: 10, marginBottom: 30 }}>
135
- {t('ENTER_VERIFICATION_CODE', 'Enter verification code')}
134
+ <OText size={30} style={{ textAlign: 'left' }}>
135
+ {t('VERIFY_PHONE', 'Verify Phone')}
136
136
  </OText>
137
137
  {lastNumbers && (
138
- <OText size={16} color={theme.colors.disabled}>
138
+ <OText size={20} color={theme.colors.disabled}>
139
139
  {`${t('MESSAGE_ENTER_VERIFY_CODE', 'Please, enter the verification code we sent to your mobile ending with')} **${lastNumbers}`}
140
140
  </OText>
141
141
  )}
@@ -174,7 +174,7 @@ export const VerifyPhone = (props: any) => {
174
174
  ).result?.result)?.map((e: any, i: number) => (
175
175
  <OText
176
176
  key={i}
177
- size={16}
177
+ size={20}
178
178
  color={theme.colors.error}
179
179
  >
180
180
  {`* ${t(getTraduction(e))}`}
@@ -183,9 +183,12 @@ export const VerifyPhone = (props: any) => {
183
183
  </ErrorSection>
184
184
  )}
185
185
  <ResendSection>
186
+ <OText size={16} style={{ marginRight: 5 }}>
187
+ {t('ARE_YOU_NOT_SEEING_THE_CODE', 'Are you not seeing the code?')}
188
+ </OText>
186
189
  <Pressable onPress={() => handleSendCodeAgain()}>
187
190
  <OText size={16} color={theme.colors.primary}>
188
- {t('RESEND_CODE', 'Resend code')}
191
+ {t('SEND_AGAIN', 'Send Again')}
189
192
  </OText>
190
193
  </Pressable>
191
194
  </ResendSection>
@@ -19,12 +19,13 @@ export const CountDownContainer = styled.View`
19
19
  export const ResendSection = styled.View`
20
20
  display: flex;
21
21
  flex-direction: row;
22
+ justify-content: center;
22
23
  margin-bottom: 30px;
23
24
  `
24
25
 
25
26
  export const WrappCountdown = styled.View`
26
27
  padding-top: 20px;
27
- padding-bottom: 50px;
28
+ padding-bottom: 20px;
28
29
  `
29
30
 
30
31
  export const InputsSection = styled.View`
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import OText from './OText';
3
+
4
+ const HeaderTitle = (props: any) => {
5
+ const { text, style } = props
6
+ return (
7
+ <OText
8
+ size={24}
9
+ style={style ?? {
10
+ marginTop: 30,
11
+ paddingHorizontal: 40,
12
+ textTransform: 'capitalize'
13
+ }}
14
+ >
15
+ {text}
16
+ </OText>
17
+ )
18
+ }
19
+
20
+ export default HeaderTitle
@@ -11,6 +11,7 @@ import OKeyButton from './OKeyButton'
11
11
  import OModal from './OModal'
12
12
  import OAlert from './OAlert'
13
13
  import OBottomPopup from './OBottomPopup'
14
+ import HeaderTitle from './HeaderTitle'
14
15
 
15
16
  export {
16
17
  OText,
@@ -26,4 +27,5 @@ export {
26
27
  OAlert,
27
28
  OModal,
28
29
  OBottomPopup,
30
+ HeaderTitle
29
31
  }
@@ -31,12 +31,6 @@ export interface ProfileParams {
31
31
  validationFields?: any;
32
32
  showField?: any;
33
33
  isRequiredField?: any;
34
- handleSendVerifyCode?: any;
35
- handleCheckPhoneCode?: any;
36
- checkPhoneCodeState?: any;
37
- verifyPhoneState?: any;
38
- setCheckPhoneCodeState?: any;
39
- isVerifiedPhone?: any;
40
34
  }
41
35
 
42
36
  export interface AddressListParams {
@@ -115,6 +109,7 @@ export interface PhoneInputParams {
115
109
  noDropIcon?: boolean;
116
110
  flagStyle?: any;
117
111
  isDisabled?: any;
112
+ isStartValidation?: any;
118
113
  }
119
114
 
120
115
  export interface LanguageSelectorParams {
@@ -143,6 +138,8 @@ export interface HighestRatedBusinessesParams {
143
138
  businessesList: { businesses: Array<any>, loading: boolean, error: null | string };
144
139
  onBusinessClick?: void;
145
140
  navigation? :any;
141
+ isLoading?: boolean;
142
+ getBusinesses: (newFetch : boolean) => void
146
143
  }
147
144
  export interface BusinessTypeFilterParams {
148
145
  businessTypes?: Array<any>;
@@ -161,7 +158,16 @@ export interface BusinessControllerParams {
161
158
  isBusinessOpen?: boolean;
162
159
  businessWillCloseSoonMinutes?: number
163
160
  isBusinessClose?: number,
164
- navigation?: any
161
+ navigation?: any,
162
+ style?: ViewStyle,
163
+ businessHeader?: string,
164
+ businessFeatured?: boolean,
165
+ businessLogo?: string,
166
+ businessReviews?: any,
167
+ businessDeliveryPrice?: number,
168
+ businessDeliveryTime?: string,
169
+ businessPickupTime?: string,
170
+ businessDistance?: number
165
171
  }
166
172
  export interface BusinessProductsListingParams {
167
173
  navigation?: any;
@@ -189,6 +195,7 @@ export interface BusinessBasicInformationParams {
189
195
  isBusinessInfoShow?: boolean;
190
196
  header?: any;
191
197
  logo?: any;
198
+ isPreOrder?: boolean;
192
199
  }
193
200
  export interface BusinessProductsCategoriesParams {
194
201
  categories: Array<any>;
@@ -210,7 +217,7 @@ export interface BusinessProductsListParams {
210
217
  errors?: any;
211
218
  businessId?: number;
212
219
  category?: any;
213
- categories: Array<any>;
220
+ categories?: Array<any>;
214
221
  categoryState?: any;
215
222
  onProductClick?: any;
216
223
  handleSearchRedirect?: () => {};
@@ -376,7 +383,7 @@ export interface MessagesParams {
376
383
  handleSend?: () => {},
377
384
  setImage?: (image: string | null) => {},
378
385
  setMessage?: (comment: string) => {},
379
- setMessages?: () => {},
386
+ setMessages?: (image: any | null) => {},
380
387
  readMessages?: () => {},
381
388
  onClose?: () => void,
382
389
  isMeesageListing?: boolean,
@@ -523,3 +530,12 @@ export interface MessageListingParams {
523
530
  export interface NoNetworkParams {
524
531
  image?: any,
525
532
  }
533
+
534
+ export interface PlaceSpotParams {
535
+ isOpenPlaceSpot?: boolean,
536
+ cart?: any ,
537
+ placesState?: any,
538
+ handleChangePlace?: any,
539
+ getPlacesList?: any,
540
+ setOpenPlaceModal?: any
541
+ }
@@ -97,27 +97,27 @@ export const OrderTypeSelector = (props: any) => {
97
97
  {
98
98
  value: 1,
99
99
  content: t('DELIVERY', 'Delivery'),
100
- description: t('ORDERTYPE_DESCRIPTION_DELIVERY', 'Lorem ipsum dolor sit amet, consectetur.')
100
+ description: t('ORDERTYPE_DESCRIPTION_DELIVERY', 'Delivery description')
101
101
  },
102
102
  {
103
103
  value: 2,
104
104
  content: t('PICKUP', 'Pickup'),
105
- description: t('ORDERTYPE_DESCRIPTION_PICKUP', 'Lorem ipsum dolor sit amet, consectetur.')
105
+ description: t('ORDERTYPE_DESCRIPTION_PICKUP', 'Pickup description')
106
106
  },
107
107
  {
108
108
  value: 3,
109
109
  content: t('EAT_IN', 'Eat in'),
110
- description: t('ORDERTYPE_DESCRIPTION_EATIN', 'Lorem ipsum dolor sit amet, consectetur.')
110
+ description: t('ORDERTYPE_DESCRIPTION_EATIN', 'Eat in description')
111
111
  },
112
112
  {
113
113
  value: 4,
114
114
  content: t('CURBSIDE', 'Curbside'),
115
- description: t('ORDERTYPE_DESCRIPTION_CURBSIDE', 'Lorem ipsum dolor sit amet, consectetur.')
115
+ description: t('ORDERTYPE_DESCRIPTION_CURBSIDE', 'Curbside description')
116
116
  },
117
117
  {
118
118
  value: 5,
119
119
  content: t('DRIVE_THRU', 'Drive thru'),
120
- description: t('ORDERTYPE_DESCRIPTION_DRIVETHRU', 'Lorem ipsum dolor sit amet, consectetur.')
120
+ description: t('ORDERTYPE_DESCRIPTION_DRIVETHRU', 'Drive Thru description')
121
121
  }
122
122
  ]
123
123
  }
@@ -144,7 +144,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
144
144
  {isFarAway && (
145
145
  <FarAwayMessage style={styles.farAwayMsg}>
146
146
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
147
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
147
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
148
148
  </FarAwayMessage>
149
149
  )}
150
150
  <View style={styles.wrapperOrderOptions}>
@@ -1,163 +0,0 @@
1
- import React, { useState, useEffect } from 'react'
2
- import { useLanguage } from 'ordering-components/native'
3
- import { GooglePayButton, useGooglePay, ApplePayButton, useApplePay } from '@stripe/stripe-react-native'
4
- import { OButton } from '../shared';
5
- import { Platform, View } from 'react-native';
6
- import { StripeMethodFormParams } from '../../types';
7
-
8
- export const StripeMethodForm = (props: StripeMethodFormParams) => {
9
- const {
10
- cart,
11
- handleSource,
12
- onCancel,
13
- setErrors,
14
- paymethod,
15
- devMode
16
- } = props
17
- const { initGooglePay, createGooglePayPaymentMethod, loading } = useGooglePay();
18
- const { presentApplePay, isApplePaySupported } = useApplePay();
19
- const [initialized, setInitialized] = useState(false);
20
- const [, t] = useLanguage()
21
-
22
- useEffect(() => {
23
- if (paymethod !== 'google_pay') return
24
- if (Platform.OS === 'ios') {
25
- setErrors(t('GOOGLE_PAY_NOT_SUPPORTED', 'Google pay not supported'))
26
- return
27
- }
28
- const initialize = async () => {
29
- try {
30
- const { error } = await initGooglePay({
31
- testEnv: devMode,
32
- merchantName: 'Widget Store',
33
- countryCode: 'US',
34
- billingAddressConfig: {
35
- format: 'FULL',
36
- isPhoneNumberRequired: true,
37
- isRequired: false,
38
- },
39
- existingPaymentMethodRequired: false,
40
- isEmailRequired: true,
41
- });
42
-
43
- if (error) {
44
- setErrors(error.code + ' - ' + error.message);
45
- return;
46
- }
47
- setInitialized(true);
48
- } catch (err: any) {
49
- setErrors('Catch ' + err?.message)
50
- }
51
- }
52
- initialize();
53
- }, [initGooglePay]);
54
-
55
- useEffect(() => {
56
- if (paymethod !== 'apple_pay') return
57
- if (Platform.OS === 'android') {
58
- setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
59
- return
60
- }
61
- }, [])
62
-
63
- const createPaymentMethod = async () => {
64
-
65
- const { error, paymentMethod } = await createGooglePayPaymentMethod({
66
- amount: cart?.balance ?? cart?.total,
67
- currencyCode: 'USD',
68
- });
69
-
70
- if (error) {
71
- setErrors(error.code + ' - ' + error.message);
72
- return;
73
- } else if (paymentMethod) {
74
- handleSource({
75
- ...paymentMethod?.Card,
76
- id: paymentMethod.id,
77
- type: paymentMethod.type,
78
- source_id: paymentMethod?.id,
79
- card: {
80
- brand: paymentMethod.Card.brand,
81
- last4: paymentMethod.Card.last4
82
- }
83
- })
84
- onCancel()
85
- }
86
- setInitialized(false);
87
- };
88
-
89
- const pay = async () => {
90
- if (!isApplePaySupported) {
91
- setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
92
- return
93
- }
94
-
95
- const { error, paymentMethod } = await presentApplePay({
96
- cartItems: cart?.products?.map((product: any) => ({ label: product?.name, amount: product?.price?.toString?.() })),
97
- country: 'US',
98
- currency: 'USD',
99
- shippingMethods: [
100
- {
101
- amount: cart?.balance?.toString() ?? cart?.total?.toString?.(),
102
- identifier: 'DPS',
103
- label: 'Courier',
104
- detail: 'Delivery',
105
- type: 'final',
106
- },
107
- ],
108
-
109
- requiredShippingAddressFields: ['emailAddress', 'phoneNumber'],
110
- requiredBillingContactFields: ['phoneNumber', 'name'],
111
- });
112
- if (error) {
113
- setErrors(error.code + ' - ' + error.message);
114
- } else if (paymentMethod) {
115
- handleSource({
116
- ...paymentMethod?.Card,
117
- id: paymentMethod.id,
118
- type: paymentMethod.type,
119
- source_id: paymentMethod?.id,
120
- card: {
121
- brand: paymentMethod.Card.brand,
122
- last4: paymentMethod.Card.last4
123
- }
124
- })
125
- onCancel()
126
- }
127
- }
128
-
129
- return (
130
- <>
131
- {paymethod === 'google_pay' ? (
132
- <View>
133
- {!loading && initialized && (
134
- <OButton
135
- textStyle={{
136
- color: '#fff'
137
- }}
138
- imgRightSrc={null}
139
- onClick={createPaymentMethod}
140
- isDisabled={!initialized}
141
- text={t('PAY_WITH_GOOGLE_PAY', 'Pay with Google Pay')}
142
- />
143
- )}
144
- </View>
145
- ) : (
146
- <View>
147
- {isApplePaySupported && (
148
- <ApplePayButton
149
- onPress={pay}
150
- type="plain"
151
- buttonStyle="black"
152
- borderRadius={4}
153
- style={{
154
- width: '100%',
155
- height: 50,
156
- }}
157
- />
158
- )}
159
- </View>
160
- )}
161
- </>
162
- )
163
- }