ordering-ui-react-native 0.15.33 → 0.15.34-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 (169) hide show
  1. package/package.json +4 -2
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessController/index.tsx +8 -2
  4. package/src/components/BusinessTypeFilter/index.tsx +4 -1
  5. package/src/components/BusinessesListing/index.tsx +1 -1
  6. package/src/components/Checkout/index.tsx +23 -3
  7. package/src/components/DriverTips/index.tsx +11 -6
  8. package/src/components/LanguageSelector/index.tsx +7 -2
  9. package/src/components/LoginForm/index.tsx +3 -1
  10. package/src/components/OrderDetails/index.tsx +2 -2
  11. package/src/components/PaymentOptions/index.tsx +9 -16
  12. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  13. package/src/components/SignupForm/index.tsx +3 -1
  14. package/src/components/SingleProductCard/index.tsx +16 -4
  15. package/src/components/StripeElementsForm/index.tsx +27 -48
  16. package/src/components/UpsellingProducts/index.tsx +1 -1
  17. package/src/components/UserProfileForm/index.tsx +63 -6
  18. package/src/components/UserProfileForm/styles.tsx +8 -0
  19. package/src/components/VerifyPhone/styles.tsx +1 -2
  20. package/src/components/shared/OModal.tsx +1 -1
  21. package/src/config.json +0 -2
  22. package/src/hooks/useCountdownTimer.tsx +26 -0
  23. package/src/navigators/HomeNavigator.tsx +6 -0
  24. package/src/pages/BusinessProductsList.tsx +1 -0
  25. package/src/pages/BusinessesListing.tsx +1 -1
  26. package/src/pages/Checkout.tsx +1 -1
  27. package/src/pages/Sessions.tsx +22 -0
  28. package/src/types/index.tsx +5 -11
  29. package/src/utils/index.tsx +68 -1
  30. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
  31. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
  32. package/themes/business/src/components/Chat/index.tsx +38 -86
  33. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  34. package/themes/business/src/components/Home/index.tsx +128 -55
  35. package/themes/business/src/components/Home/styles.tsx +8 -1
  36. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  37. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  38. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  39. package/themes/business/src/components/NewOrderNotification/index.tsx +79 -105
  40. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  41. package/themes/business/src/components/OrderDetails/Delivery.tsx +32 -15
  42. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +157 -89
  43. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
  44. package/themes/business/src/components/OrderDetails/styles.tsx +7 -0
  45. package/themes/business/src/components/OrdersListManager/index.tsx +52 -49
  46. package/themes/business/src/components/OrdersOption/index.tsx +57 -50
  47. package/themes/business/src/components/PreviousOrders/index.tsx +50 -14
  48. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  49. package/themes/business/src/components/shared/OModal.tsx +1 -1
  50. package/themes/business/src/types/index.tsx +5 -1
  51. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  52. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  53. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  54. package/themes/kiosk/src/components/Cart/index.tsx +99 -25
  55. package/themes/kiosk/src/components/Cart/styles.tsx +6 -0
  56. package/themes/kiosk/src/components/Checkout/index.tsx +34 -22
  57. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  58. package/themes/kiosk/src/components/Intro/index.tsx +12 -12
  59. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  60. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  61. package/themes/kiosk/src/components/OrderDetails/index.tsx +165 -65
  62. package/themes/kiosk/src/components/OrderDetails/styles.tsx +5 -0
  63. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  64. package/themes/kiosk/src/components/PaymentOptions/index.tsx +1 -1
  65. package/themes/kiosk/src/components/ProductForm/index.tsx +2 -2
  66. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  67. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  68. package/themes/kiosk/src/types/index.d.ts +2 -0
  69. package/themes/original/index.tsx +184 -1
  70. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  71. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  72. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  73. package/themes/original/src/components/AddressList/index.tsx +56 -18
  74. package/themes/original/src/components/AppleLogin/index.tsx +117 -78
  75. package/themes/original/src/components/BusinessBasicInformation/index.tsx +96 -45
  76. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
  77. package/themes/original/src/components/BusinessController/index.tsx +56 -16
  78. package/themes/original/src/components/BusinessController/styles.tsx +27 -0
  79. package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
  80. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
  81. package/themes/original/src/components/BusinessListingSearch/index.tsx +125 -7
  82. package/themes/original/src/components/BusinessListingSearch/styles.tsx +14 -1
  83. package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
  84. package/themes/original/src/components/BusinessPreorder/index.tsx +142 -122
  85. package/themes/original/src/components/BusinessProductsCategories/index.tsx +9 -7
  86. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  87. package/themes/original/src/components/BusinessProductsList/index.tsx +139 -36
  88. package/themes/original/src/components/BusinessProductsList/styles.tsx +29 -2
  89. package/themes/original/src/components/BusinessProductsListing/index.tsx +111 -14
  90. package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
  91. package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
  92. package/themes/original/src/components/BusinessTypeFilter/index.tsx +1 -2
  93. package/themes/original/src/components/BusinessesListing/index.tsx +85 -45
  94. package/themes/original/src/components/Cart/index.tsx +21 -17
  95. package/themes/original/src/components/CartContent/index.tsx +2 -2
  96. package/themes/original/src/components/Checkout/index.tsx +59 -48
  97. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  98. package/themes/original/src/components/Favorite/index.tsx +91 -0
  99. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  100. package/themes/original/src/components/FavoriteList/index.tsx +287 -0
  101. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  102. package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
  103. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  104. package/themes/original/src/components/GoogleMap/index.tsx +1 -0
  105. package/themes/original/src/components/Help/index.tsx +21 -4
  106. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  107. package/themes/original/src/components/Home/index.tsx +1 -1
  108. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  109. package/themes/original/src/components/LoginForm/Otp/index.tsx +90 -0
  110. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  111. package/themes/original/src/components/LoginForm/index.tsx +394 -155
  112. package/themes/original/src/components/LoginForm/styles.tsx +7 -4
  113. package/themes/original/src/components/LogoutButton/index.tsx +7 -1
  114. package/themes/original/src/components/MessageListing/index.tsx +10 -1
  115. package/themes/original/src/components/Messages/index.tsx +6 -1
  116. package/themes/original/src/components/Messages/styles.tsx +1 -3
  117. package/themes/original/src/components/MomentOption/index.tsx +10 -1
  118. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  119. package/themes/original/src/components/OrderDetails/index.tsx +56 -33
  120. package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
  121. package/themes/original/src/components/OrderProgress/index.tsx +3 -3
  122. package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
  123. package/themes/original/src/components/OrderSummary/index.tsx +3 -3
  124. package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -2
  125. package/themes/original/src/components/OrdersOption/index.tsx +57 -56
  126. package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
  127. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  128. package/themes/original/src/components/PaymentOptionWallet/index.tsx +22 -24
  129. package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
  130. package/themes/original/src/components/PaymentOptions/index.tsx +9 -21
  131. package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
  132. package/themes/original/src/components/PreviousOrders/index.tsx +18 -145
  133. package/themes/original/src/components/ProductForm/index.tsx +76 -61
  134. package/themes/original/src/components/ProductForm/styles.tsx +0 -1
  135. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  136. package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
  137. package/themes/original/src/components/Promotions/index.tsx +250 -0
  138. package/themes/original/src/components/Promotions/styles.tsx +60 -0
  139. package/themes/original/src/components/SearchBar/index.tsx +4 -1
  140. package/themes/original/src/components/Sessions/index.tsx +160 -0
  141. package/themes/original/src/components/Sessions/styles.tsx +15 -0
  142. package/themes/original/src/components/SignupForm/index.tsx +9 -4
  143. package/themes/original/src/components/SingleOrderCard/index.tsx +282 -0
  144. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  145. package/themes/original/src/components/SingleProductCard/index.tsx +82 -30
  146. package/themes/original/src/components/SingleProductCard/styles.tsx +28 -1
  147. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -74
  148. package/themes/original/src/components/TaxInformation/index.tsx +10 -4
  149. package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
  150. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  151. package/themes/original/src/components/UserFormDetails/index.tsx +34 -24
  152. package/themes/original/src/components/UserProfile/index.tsx +62 -8
  153. package/themes/original/src/components/UserProfileForm/index.tsx +20 -18
  154. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  155. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  156. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  157. package/themes/original/src/components/Wallets/index.tsx +76 -9
  158. package/themes/original/src/components/Wallets/styles.tsx +21 -0
  159. package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
  160. package/themes/original/src/components/shared/OModal.tsx +4 -2
  161. package/themes/original/src/components/shared/index.tsx +2 -0
  162. package/themes/original/src/config/constants.tsx +6 -6
  163. package/themes/original/src/types/index.tsx +107 -9
  164. package/themes/original/src/utils/index.tsx +28 -2
  165. package/themes/single-business/src/components/AddressList/index.tsx +1 -1
  166. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +6 -6
  167. package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
  168. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  169. package/src/components/StripeMethodForm/index.tsx +0 -174
@@ -41,3 +41,24 @@ export const OTabs = styled.View`
41
41
  export const OTab = styled.View`
42
42
  padding-horizontal: 10px;
43
43
  `;
44
+
45
+ export const LoyaltyContent = styled.View`
46
+ width: 100%;
47
+ margin-bottom: 20px;
48
+ `
49
+
50
+ export const LoyaltyWrapp = styled.View`
51
+ flex-direction: column;
52
+ justify-content: center;
53
+ align-items: center;
54
+ `
55
+
56
+ export const LoyaltyImg = styled.ImageBackground`
57
+ position: relative;
58
+ height: 150px;
59
+ width: 100%;
60
+ display: flex;
61
+ flex-direction: column;
62
+ justify-content: center;
63
+ align-items: center;
64
+ `
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { Platform } from 'react-native';
3
+ import OText from './OText';
4
+
5
+ const HeaderTitle = (props: any) => {
6
+ const { text, style } = props
7
+ return (
8
+ <OText
9
+ size={24}
10
+ style={style ?? {
11
+ marginTop: Platform.OS === 'android' ? 50 : 30,
12
+ paddingHorizontal: 40,
13
+ textTransform: 'capitalize'
14
+ }}
15
+ >
16
+ {text}
17
+ </OText>
18
+ )
19
+ }
20
+
21
+ export default HeaderTitle
@@ -21,6 +21,7 @@ interface Props {
21
21
  isNotDecoration?: boolean;
22
22
  styleCloseButton?: any,
23
23
  isAvoidKeyBoardView?: boolean;
24
+ styleContainerCloseButton?: any;
24
25
  }
25
26
  const KeyboardView = styled.KeyboardAvoidingView`
26
27
  flex-grow: 1;
@@ -45,6 +46,7 @@ const OModal = (props: Props): React.ReactElement => {
45
46
  isNotDecoration,
46
47
  style,
47
48
  styleCloseButton,
49
+ styleContainerCloseButton,
48
50
  isAvoidKeyBoardView
49
51
  } = props
50
52
 
@@ -55,7 +57,7 @@ const OModal = (props: Props): React.ReactElement => {
55
57
  {!entireModal ? (
56
58
  <View style={styles.centeredView}>
57
59
  <View style={titleSectionStyle ? titleSectionStyle : styles.titleSection}>
58
- <TouchableOpacity style={styles.wrapperIcon} onPress={onClose}>
60
+ <TouchableOpacity style={{...styles.wrapperIcon, ...styleContainerCloseButton}} onPress={onClose}>
59
61
  <OIcon
60
62
  src={theme.images.general.close}
61
63
  width={16}
@@ -91,7 +93,7 @@ const OModal = (props: Props): React.ReactElement => {
91
93
  animationType="slide"
92
94
  transparent={isTransparent}
93
95
  visible={open}
94
- onRequestClose={() => onClose()}
96
+ onRequestClose={() => onClose && onClose()}
95
97
  style={{ height: '100%', flex: 1, position: 'absolute', ...style, zIndex: 9999 }}
96
98
  >
97
99
  {isAvoidKeyBoardView ? (
@@ -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
  }
@@ -8,26 +8,26 @@ export const ORDER_TYPES = [
8
8
  {
9
9
  value: 1,
10
10
  content: 'DELIVERY',
11
- description: 'DELIVERY_DESCRIPTION'
11
+ description: 'ORDERTYPE_DESCRIPTION_DELIVERY'
12
12
  },
13
13
  {
14
14
  value: 2,
15
15
  content: 'PICKUP',
16
- description: 'PICKUP_DESCRIPTION',
16
+ description: 'ORDERTYPE_DESCRIPTION_PICKUP',
17
17
  },
18
18
  {
19
19
  value: 3,
20
20
  content: 'EAT_IN',
21
- description: 'EAT_IN_DESCRIPTION',
21
+ description: 'ORDERTYPE_DESCRIPTION_EATIN',
22
22
  },
23
23
  {
24
24
  value: 4,
25
25
  content: 'CURBSIDE',
26
- description: 'CURBSIDE_DESCRIPTION',
26
+ description: 'ORDERTYPE_DESCRIPTION_CURBSIDE',
27
27
  },
28
28
  {
29
29
  value: 5,
30
30
  content: 'DRIVE_THRU',
31
- description: 'DRIVE_THRU_DESCRIPTION',
31
+ description: 'ORDERTYPE_DESCRIPTION_DRIVETHRU',
32
32
  }
33
- ]
33
+ ]
@@ -17,6 +17,14 @@ export interface LoginParams {
17
17
  handleSendVerifyCode?: any;
18
18
  handleCheckPhoneCode?: any;
19
19
  notificationState?: any;
20
+ handleReCaptcha?: any;
21
+ enableReCaptcha?: any;
22
+ otpType?: string,
23
+ setOtpType: (type : string) => void,
24
+ generateOtpCode: (values ?: any) => void,
25
+ useLoginOtpEmail?: boolean,
26
+ useLoginOtpCellphone?: boolean,
27
+ useLoginOtp?: boolean
20
28
  }
21
29
  export interface ProfileParams {
22
30
  navigation?: any;
@@ -37,6 +45,8 @@ export interface ProfileParams {
37
45
  verifyPhoneState?: any;
38
46
  setCheckPhoneCodeState?: any;
39
47
  isVerifiedPhone?: any;
48
+ handleRemoveAccount?: any;
49
+ removeAccountState?: any;
40
50
  }
41
51
 
42
52
  export interface AddressListParams {
@@ -55,6 +65,7 @@ export interface AddressListParams {
55
65
  isFromProductsList?: boolean;
56
66
  afterSignup?: boolean;
57
67
  isFromCheckout?: boolean
68
+ loadAddresses: () => void
58
69
  }
59
70
 
60
71
  export interface AddressFormParams {
@@ -100,6 +111,8 @@ export interface SignupParams {
100
111
  handleCheckPhoneCode?: any;
101
112
  notificationState?: any;
102
113
  handleChangePromotions: () => void;
114
+ enableReCaptcha?: boolean;
115
+ handleReCaptcha?: () => void;
103
116
  }
104
117
 
105
118
  export interface PhoneInputParams {
@@ -116,6 +129,7 @@ export interface PhoneInputParams {
116
129
  flagStyle?: any;
117
130
  isDisabled?: any;
118
131
  isStartValidation?: any;
132
+ changeCountry?: any;
119
133
  }
120
134
 
121
135
  export interface LanguageSelectorParams {
@@ -139,13 +153,18 @@ export interface BusinessesListingParams {
139
153
  defaultBusinessType?: any;
140
154
  franchiseId?: any;
141
155
  businessId?: any;
156
+ isGuestUser?: any;
157
+ handleUpdateBusinessList?: any;
142
158
  }
143
159
  export interface HighestRatedBusinessesParams {
144
160
  businessesList: { businesses: Array<any>, loading: boolean, error: null | string };
145
161
  onBusinessClick?: void;
146
162
  navigation?: any;
147
163
  isLoading?: boolean;
148
- getBusinesses: (newFetch: boolean) => void
164
+ getBusinesses: (newFetch: boolean) => void,
165
+ favoriteIds?: any,
166
+ setFavoriteIds?: any,
167
+ handleUpdateBusinessList?: any
149
168
  }
150
169
  export interface BusinessTypeFilterParams {
151
170
  businessTypes?: Array<any>;
@@ -157,7 +176,7 @@ export interface BusinessTypeFilterParams {
157
176
  setBusinessTypes?: any
158
177
  }
159
178
  export interface BusinessControllerParams {
160
- key?: number;
179
+ key?: string | number;
161
180
  business?: any;
162
181
  handleCustomClick?: any;
163
182
  orderType?: any;
@@ -174,7 +193,11 @@ export interface BusinessControllerParams {
174
193
  businessDeliveryPrice?: number,
175
194
  businessDeliveryTime?: string,
176
195
  businessPickupTime?: string,
177
- businessDistance?: number
196
+ businessDistance?: number,
197
+ favoriteIds?: number[],
198
+ handleFavoriteBusiness?: any,
199
+ setFavoriteIds?: any;
200
+ handleUpdateBusinessList?: any;
178
201
  }
179
202
  export interface BusinessProductsListingParams {
180
203
  navigation?: any;
@@ -190,10 +213,14 @@ export interface BusinessProductsListingParams {
190
213
  header?: any;
191
214
  logo?: any;
192
215
  productModal?: any;
216
+ alertState?: { open: boolean, content: any[] };
217
+ setAlertState?: any;
218
+ multiRemoveProducts?: (in1: any, in2: any) => {};
193
219
  getNextProducts?: () => {};
194
220
  handleChangeCategory: (value: any) => {};
195
221
  setProductLogin?: () => {};
196
222
  updateProductModal?: (value: any) => {};
223
+ handleUpdateProducts?: any;
197
224
  }
198
225
  export interface BusinessBasicInformationParams {
199
226
  navigation?: any;
@@ -222,6 +249,7 @@ export interface BusinessProductsCategoriesParams {
222
249
  }
223
250
  export interface BusinessProductsListParams {
224
251
  errors?: any;
252
+ isFiltMode?: any;
225
253
  businessId?: number;
226
254
  category?: any;
227
255
  categories: Array<any>;
@@ -236,7 +264,12 @@ export interface BusinessProductsListParams {
236
264
  handleCancelSearch?: () => void,
237
265
  categoriesLayout?: any,
238
266
  setCategoriesLayout?: any,
239
- currentCart?: any
267
+ currentCart?: any,
268
+ setSubcategoriesSelected?: any,
269
+ subcategoriesSelected?: any,
270
+ onClickCategory?: any,
271
+ lazyLoadProductsRecommended?: boolean,
272
+ handleUpdateProducts?: any
240
273
  }
241
274
  export interface SingleProductCardParams {
242
275
  businessId: any,
@@ -244,7 +277,10 @@ export interface SingleProductCardParams {
244
277
  isSoldOut: boolean;
245
278
  onProductClick: any;
246
279
  productAddedToCartLength: number;
247
- style?: ViewStyle
280
+ style?: ViewStyle,
281
+ categoryState?: any,
282
+ handleFavoriteProduct?: any,
283
+ handleUpdateProducts?: any
248
284
  }
249
285
  export interface BusinessInformationParams {
250
286
  navigation?: any,
@@ -288,11 +324,16 @@ export interface OrdersOptionParams {
288
324
  loadOrders?: any,
289
325
  setOrderList?: any,
290
326
  preOrders?: boolean,
327
+ reorderState?: any,
328
+ handleReorder?: (orderId: number) => {},
291
329
  setOrdersLength?: ({ activeOrdersLength, previousOrdersLength }: { activeOrdersLength: number, previousOrdersLength: number }) => void,
292
330
  ordersLength: { activeOrdersLength: number, previousOrdersLength: number },
293
331
  setSelectedOrderId?: any,
294
332
  setOpenMessges?: any,
295
- loadMoreStatus?: boolean
333
+ loadMoreStatus?: boolean,
334
+ refreshOrders?: boolean,
335
+ setRefreshOrders?: (value : boolean) => void,
336
+ handleUpdateOrderList?: (orderId: number, changes: any) => {}
296
337
  }
297
338
  export interface ActiveOrdersParams {
298
339
  orders?: any,
@@ -305,7 +346,8 @@ export interface ActiveOrdersParams {
305
346
  loadMoreOrders?: () => {},
306
347
  onNavigationRedirect?: (route: string, params?: any) => {},
307
348
  isMessageView?: boolean,
308
- handleClickOrder?: any
349
+ handleClickOrder?: any,
350
+ handleUpdateOrderList?: (orderId: number, changes: any) => {}
309
351
  }
310
352
  export interface PreviousOrdersParams {
311
353
  orders?: any,
@@ -314,8 +356,9 @@ export interface PreviousOrdersParams {
314
356
  orderID?: number
315
357
  reorderLoading?: boolean,
316
358
  loadMoreOrders?: () => {},
317
- handleReorder: (order: any) => {},
359
+ handleReorder?: (orderId: number) => {},
318
360
  onNavigationRedirect?: (route: string, params?: any) => {}
361
+ handleUpdateOrderList?: (orderId: number, changes: any) => {}
319
362
  }
320
363
  export interface OrderDetailsParams {
321
364
  navigation?: any,
@@ -478,6 +521,7 @@ export interface OrderTypeSelectParams {
478
521
  defaultValue?: number;
479
522
  configTypes?: Array<any>;
480
523
  orderTypes: Array<any>;
524
+ setOrderTypeValue?: (value : number) => any
481
525
  }
482
526
  export interface UpsellingProductsParams {
483
527
  isCustomMode?: boolean;
@@ -551,7 +595,10 @@ export interface BusinessSearchParams {
551
595
  filters: any,
552
596
  businessTypes: Array<number>,
553
597
  setFilters: (filters: any) => void,
554
- lazySearch?: boolean
598
+ lazySearch?: boolean,
599
+ brandList?: any;
600
+ handleUpdateProducts: any,
601
+ handleUpdateBusinessList?: any;
555
602
  }
556
603
 
557
604
  export interface NoNetworkParams {
@@ -566,3 +613,54 @@ export interface PlaceSpotParams {
566
613
  getPlacesList?: any,
567
614
  setOpenPlaceModal?: any
568
615
  }
616
+
617
+ export interface PromotionParams {
618
+ navigation: any,
619
+ offersState: any,
620
+ handleSearchValue: any,
621
+ searchValue: string,
622
+ offerSelected: any,
623
+ setOfferSelected: any,
624
+ loadOffers: any
625
+ }
626
+ export interface SessionsParams {
627
+ navigation: any,
628
+ sessionsList: any,
629
+ actionState: any,
630
+ handleDeleteSession: any,
631
+ handleDeleteAllSessions: any
632
+ }
633
+
634
+ export interface otpParams {
635
+ willVerifyOtpState: boolean,
636
+ setWillVerifyOtpState: (val : boolean) => void,
637
+ onSubmit: () => void,
638
+ handleLoginOtp: (code : string) => void,
639
+ setAlertState: any
640
+ }
641
+
642
+ export interface FavoriteParams {
643
+ favoriteList: any,
644
+ handleUpdateFavoriteList: (id: number, changes: any) => {},
645
+ pagination: any,
646
+ getFavoriteList: (value: number) => {},
647
+ navigation?: any,
648
+ onNavigationRedirect?: (route: string, params?: any) => {},
649
+ reorderState?: any,
650
+ handleReorder?: (orderId: number) => {},
651
+ isOrder?: boolean,
652
+ isProduct?: boolean,
653
+ isBusiness?: boolean
654
+ }
655
+
656
+ export interface SingleOrderCardParams {
657
+ order: any,
658
+ reorderLoading: any,
659
+ handleReorder?: (value: any) => {},
660
+ getOrderStatus: any,
661
+ handleFavoriteOrder?: (value: boolean) => {},
662
+ onNavigationRedirect?: (route: string, params?: any) => {},
663
+ pastOrders: any,
664
+ isMessageView?: any,
665
+ handleClickOrder: (value: any) => {}
666
+ }
@@ -33,7 +33,8 @@ export const getTraduction = (key: string) => {
33
33
  ERROR_PLACE_PAY_WITH_CARD1: 'An error occurred while trying to pay by card',
34
34
  ERROR_PLACE_PAY_WITH_PAYPAL_CAPTURE: 'An error occurred while trying to pay by PayPal',
35
35
  ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
36
- ERROR_PRODUCT_NOT_FOUND: 'Error with the product'
36
+ ERROR_PRODUCT_NOT_FOUND: 'Error with the product',
37
+ ERROR_INVALID_OFFER: 'The offer doesn\'t exist'
37
38
  }
38
39
 
39
40
  return keyList[key] ? t(key, keyList[key]) : t(key)
@@ -170,6 +171,15 @@ export const getTypesText = (value: number) => {
170
171
  return ret?.content;
171
172
  }
172
173
 
174
+ /**
175
+ * List shape for ribbon
176
+ */
177
+ export const shape = {
178
+ rectangle: 'rectangle',
179
+ rectangleRound: 'rectangle_round',
180
+ capsuleShape: 'capsule_shape'
181
+ }
182
+
173
183
  /**
174
184
  * Function to transform degree to radian
175
185
  * @param {number} value for transform
@@ -202,4 +212,20 @@ export const formatUrlVideo = (url : string) => {
202
212
  const match = url.match(regExp)
203
213
  const id = (match && match[7].length === 11) ? match[7] : false
204
214
  return `https://www.youtube-nocookie.com/embed/${id}`
205
- }
215
+ }
216
+
217
+ export const formatSeconds = (seconds : number) => {
218
+ // Hours, minutes and seconds
219
+ var hrs = ~~(seconds / 3600)
220
+ var mins = ~~((seconds % 3600) / 60)
221
+ var secs = ~~seconds % 60
222
+
223
+ // Output like '1:01' or '4:03:59' or '123:03:59'
224
+ var ret = ''
225
+ if (hrs > 0) {
226
+ ret += '' + hrs + ':' + (mins < 10 ? '0' : '')
227
+ }
228
+ ret += '' + mins + ':' + (secs < 10 ? '0' : '')
229
+ ret += '' + secs
230
+ return ret
231
+ }
@@ -140,7 +140,7 @@ const AddressListUI = (props: AddressListParams) => {
140
140
  <AddressListContainer>
141
141
  {isProfile && (
142
142
  <NavBar
143
- title={t('MY_SAVED_PLACES', 'My saved places')}
143
+ title={t('SAVED_PLACES', 'My saved places')}
144
144
  titleAlign={'center'}
145
145
  onActionLeft={() => goToBack()}
146
146
  showCall={false}
@@ -58,7 +58,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
58
58
  btnStyle={{ paddingLeft: 0 }}
59
59
  paddingTop={0}
60
60
  style={{ paddingBottom: 0 }}
61
- title={t('HOW_WILL_YOUR_ORDER_TYPE', 'How will your order type?')}
61
+ title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
62
62
  titleAlign={'center'}
63
63
  titleStyle={{ fontSize: 14 }}
64
64
  />
@@ -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
  }
@@ -154,7 +154,7 @@ const ProfileListUI = (props: ProfileParams) => {
154
154
  <Actions>
155
155
  <ListItem onPress={() => onRedirect('AddressList', { isFromProfile: true, isGoBack: true })} activeOpacity={0.7}>
156
156
  <OIcon src={theme.images.general.pin} width={16} color={theme.colors.textNormal} style={{ marginEnd: 14 }} />
157
- <OText size={14} lineHeight={24} weight={'400'} color={theme.colors.textNormal}>{t('MY_SAVED_PLACES', 'My saved places')}</OText>
157
+ <OText size={14} lineHeight={24} weight={'400'} color={theme.colors.textNormal}>{t('SAVED_PLACES', 'My saved places')}</OText>
158
158
  </ListItem>
159
159
  <ListItem onPress={() => navigation.navigate('Help', {})} activeOpacity={0.7}>
160
160
  <OIcon src={theme.images.general.help} width={16} color={theme.colors.textNormal} style={{ marginEnd: 14 }} />
@@ -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,174 +0,0 @@
1
- import React, { useState, useEffect } from 'react'
2
- import { useLanguage, useConfig } from 'ordering-components/native'
3
- import { useGooglePay, ApplePayButton, useApplePay } from '@stripe/stripe-react-native'
4
- import { OButton, OText } from '../shared';
5
- import { Platform, View } from 'react-native';
6
- import { StripeMethodFormParams } from '../../types';
7
- import Spinner from 'react-native-loading-spinner-overlay';
8
- import { android_app_id } from '../../config.json'
9
- export const StripeMethodForm = (props: StripeMethodFormParams) => {
10
- const {
11
- cart,
12
- handleSource,
13
- onCancel,
14
- setErrors,
15
- paymethod,
16
- devMode
17
- } = props
18
- const { initGooglePay, createGooglePayPaymentMethod, loading } = useGooglePay();
19
- const { presentApplePay, isApplePaySupported } = useApplePay();
20
- const [initialized, setInitialized] = useState(false);
21
- const [loadingGooglePayment, setLoadingGooglePayment] = useState(false)
22
- const [, t] = useLanguage()
23
- const [configs] = useConfig()
24
-
25
- useEffect(() => {
26
- if (paymethod !== 'google_pay' || !initGooglePay) return
27
- if (Platform.OS === 'ios') {
28
- setErrors(t('GOOGLE_PAY_NOT_SUPPORTED', 'Google pay not supported'))
29
- return
30
- }
31
- const initialize = async () => {
32
- try {
33
- const { error } = await initGooglePay({
34
- testEnv: devMode,
35
- merchantName: android_app_id,
36
- countryCode: 'US',
37
- billingAddressConfig: {
38
- format: 'FULL',
39
- isPhoneNumberRequired: true,
40
- isRequired: false,
41
- },
42
- existingPaymentMethodRequired: false,
43
- isEmailRequired: true,
44
- });
45
-
46
- if (error) {
47
- setErrors(error.code + ' - ' + error.message);
48
- return;
49
- }
50
- setInitialized(true);
51
- } catch (err: any) {
52
- setErrors('Catch ' + err?.message)
53
- }
54
- }
55
- initialize();
56
- }, [initGooglePay]);
57
-
58
- useEffect(() => {
59
- if (paymethod !== 'apple_pay') return
60
- if (Platform.OS === 'android') {
61
- setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
62
- return
63
- }
64
- }, [])
65
-
66
- const createPaymentMethod = async () => {
67
- setLoadingGooglePayment(true)
68
- const { error, paymentMethod } = await createGooglePayPaymentMethod({
69
- amount: cart?.balance ?? cart?.total,
70
- currencyCode: configs?.stripe_currency?.value ?? 'USD',
71
- });
72
- if (error) {
73
- setErrors(error.code + ' - ' + error.message);
74
- setLoadingGooglePayment(false)
75
- return;
76
- } else if (paymentMethod) {
77
- handleSource({
78
- ...paymentMethod?.Card,
79
- id: paymentMethod.id,
80
- type: paymentMethod.type,
81
- source_id: paymentMethod?.id,
82
- card: {
83
- brand: paymentMethod.Card.brand,
84
- last4: paymentMethod.Card.last4
85
- }
86
- })
87
- onCancel()
88
- setLoadingGooglePayment(false)
89
- }
90
- };
91
-
92
- const pay = async () => {
93
- if (!isApplePaySupported) {
94
- setErrors(t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported'))
95
- return
96
- }
97
-
98
- const { error, paymentMethod } = await presentApplePay({
99
- cartItems: cart?.products?.map((product: any) => ({ label: product?.name, amount: product?.price?.toString?.() })),
100
- country: 'US',
101
- currency: configs?.stripe_currency?.value ?? 'USD',
102
- shippingMethods: [
103
- {
104
- amount: cart?.balance?.toString() ?? cart?.total?.toString?.(),
105
- identifier: 'DPS',
106
- label: 'Courier',
107
- detail: 'Delivery',
108
- type: 'final',
109
- },
110
- ],
111
-
112
- requiredShippingAddressFields: ['emailAddress', 'phoneNumber'],
113
- requiredBillingContactFields: ['phoneNumber', 'name'],
114
- });
115
- if (error) {
116
- setErrors(error.code + ' - ' + error.message);
117
- } else if (paymentMethod) {
118
- handleSource({
119
- ...paymentMethod?.Card,
120
- id: paymentMethod.id,
121
- type: paymentMethod.type,
122
- source_id: paymentMethod?.id,
123
- card: {
124
- brand: paymentMethod.Card.brand,
125
- last4: paymentMethod.Card.last4
126
- }
127
- })
128
- onCancel()
129
- }
130
- }
131
-
132
- return (
133
- <>
134
- {paymethod === 'google_pay' ? (
135
- <View>
136
- <OButton
137
- textStyle={{
138
- color: '#fff'
139
- }}
140
- imgRightSrc={null}
141
- onClick={createPaymentMethod}
142
- isDisabled={loading || !initialized}
143
- text={t('PAY_WITH_GOOGLE_PAY', 'Pay with Google Pay')}
144
- isLoading={loading || !initialized}
145
- style={{ marginTop: 20 }}
146
- />
147
- </View>
148
- ) : (
149
- <View>
150
- {isApplePaySupported ? (
151
- <>
152
- <OText>{t('APPLE_PAY_PAYMENT', 'Apple pay payment')}</OText>
153
- <ApplePayButton
154
- onPress={pay}
155
- type="plain"
156
- buttonStyle="black"
157
- borderRadius={4}
158
- style={{
159
- width: '100%',
160
- height: 50,
161
- }}
162
- />
163
- </>
164
- ) : (
165
- <OText>{t('APPLE_PAY_NOT_SUPPORTED', 'Apple pay not supported')}</OText>
166
- )}
167
- </View>
168
- )}
169
- <Spinner
170
- visible={loadingGooglePayment}
171
- />
172
- </>
173
- )
174
- }