ordering-ui-react-native 0.15.5 → 0.15.6-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 (129) hide show
  1. package/package.json +5 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessTypeFilter/index.tsx +12 -2
  4. package/src/components/BusinessTypeFilter/styles.tsx +1 -1
  5. package/src/components/BusinessesListing/index.tsx +1 -1
  6. package/src/components/Checkout/index.tsx +0 -1
  7. package/src/components/Home/index.tsx +3 -5
  8. package/src/components/LanguageSelector/index.tsx +66 -97
  9. package/src/components/LanguageSelector/styles.tsx +4 -17
  10. package/src/components/Messages/index.tsx +38 -30
  11. package/src/components/MomentOption/index.tsx +3 -1
  12. package/src/components/OrderDetails/index.tsx +25 -4
  13. package/src/components/PaymentOptions/index.tsx +9 -16
  14. package/src/components/PaymentOptionsWebView/index.tsx +123 -124
  15. package/src/components/ProductForm/index.tsx +1 -1
  16. package/src/components/ProductForm/styles.tsx +1 -0
  17. package/src/components/StripeElementsForm/index.tsx +27 -48
  18. package/src/components/UserProfileForm/index.tsx +35 -1
  19. package/src/components/VerifyPhone/styles.tsx +1 -2
  20. package/src/config.json +0 -2
  21. package/src/pages/Checkout.tsx +1 -1
  22. package/src/types/index.tsx +2 -9
  23. package/src/utils/index.tsx +2 -1
  24. package/themes/business/index.tsx +2 -0
  25. package/themes/business/src/components/Chat/index.tsx +32 -31
  26. package/themes/business/src/components/Home/index.tsx +128 -55
  27. package/themes/business/src/components/Home/styles.tsx +8 -1
  28. package/themes/business/src/components/NewOrderNotification/index.tsx +59 -98
  29. package/themes/business/src/components/OrderDetails/Business.tsx +1 -0
  30. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +27 -0
  31. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +85 -17
  32. package/themes/business/src/components/OrdersListManager/index.tsx +874 -0
  33. package/themes/business/src/components/OrdersListManager/styles.tsx +123 -0
  34. package/themes/business/src/components/OrdersListManager/utils.tsx +216 -0
  35. package/themes/business/src/components/OrdersOption/index.tsx +70 -116
  36. package/themes/business/src/components/OrdersOption/styles.tsx +2 -5
  37. package/themes/business/src/components/PreviousOrders/index.tsx +82 -23
  38. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  39. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  40. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  41. package/themes/kiosk/src/components/BusinessController/index.tsx +27 -6
  42. package/themes/kiosk/src/components/BusinessController/styles.tsx +1 -1
  43. package/themes/kiosk/src/components/BusinessProductsListing/index.tsx +51 -24
  44. package/themes/kiosk/src/components/Cart/index.tsx +1 -1
  45. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +1 -1
  46. package/themes/kiosk/src/components/CartBottomSheet/styles.tsx +1 -1
  47. package/themes/kiosk/src/components/CartContent/index.tsx +13 -3
  48. package/themes/kiosk/src/components/CartItem/index.tsx +20 -8
  49. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +7 -5
  50. package/themes/kiosk/src/components/CustomerName/index.tsx +89 -88
  51. package/themes/kiosk/src/components/Intro/index.tsx +13 -13
  52. package/themes/kiosk/src/components/LanguageSelector/index.tsx +12 -8
  53. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  54. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  55. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  56. package/themes/kiosk/src/components/OrderSummary/index.tsx +1 -1
  57. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +10 -12
  58. package/themes/kiosk/src/components/ProductForm/index.tsx +172 -124
  59. package/themes/kiosk/src/components/ProductForm/styles.tsx +1 -1
  60. package/themes/kiosk/src/components/ProductOption/index.tsx +1 -0
  61. package/themes/kiosk/src/components/ProductOption/styles.tsx +1 -0
  62. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +48 -34
  63. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  64. package/themes/kiosk/src/components/shared/OCard.tsx +112 -78
  65. package/themes/original/index.tsx +177 -0
  66. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  67. package/themes/original/src/components/AddressList/index.tsx +28 -2
  68. package/themes/original/src/components/BusinessBasicInformation/index.tsx +100 -45
  69. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
  70. package/themes/original/src/components/BusinessController/index.tsx +32 -21
  71. package/themes/original/src/components/BusinessListingSearch/index.tsx +7 -3
  72. package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
  73. package/themes/original/src/components/BusinessPreorder/index.tsx +141 -121
  74. package/themes/original/src/components/BusinessProductsCategories/index.tsx +7 -5
  75. package/themes/original/src/components/BusinessProductsList/index.tsx +6 -3
  76. package/themes/original/src/components/BusinessProductsListing/index.tsx +23 -30
  77. package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
  78. package/themes/original/src/components/BusinessesListing/index.tsx +40 -53
  79. package/themes/original/src/components/Cart/index.tsx +40 -9
  80. package/themes/original/src/components/CartContent/index.tsx +2 -2
  81. package/themes/original/src/components/Checkout/index.tsx +58 -33
  82. package/themes/original/src/components/Checkout/styles.tsx +7 -0
  83. package/themes/original/src/components/CouponControl/index.tsx +1 -0
  84. package/themes/original/src/components/DriverTips/index.tsx +1 -1
  85. package/themes/original/src/components/ForgotPasswordForm/index.tsx +8 -12
  86. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +97 -89
  87. package/themes/original/src/components/Home/index.tsx +1 -1
  88. package/themes/original/src/components/LoginForm/index.tsx +156 -70
  89. package/themes/original/src/components/LoginForm/styles.tsx +6 -1
  90. package/themes/original/src/components/Messages/index.tsx +52 -45
  91. package/themes/original/src/components/Messages/styles.tsx +1 -3
  92. package/themes/original/src/components/MomentOption/index.tsx +10 -1
  93. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  94. package/themes/original/src/components/OrderDetails/index.tsx +104 -126
  95. package/themes/original/src/components/OrderDetails/styles.tsx +3 -1
  96. package/themes/original/src/components/OrderProgress/index.tsx +4 -4
  97. package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
  98. package/themes/original/src/components/OrderSummary/index.tsx +34 -1
  99. package/themes/original/src/components/OrdersOption/index.tsx +15 -46
  100. package/themes/original/src/components/OrdersOption/styles.tsx +0 -6
  101. package/themes/original/src/components/PaymentOptionWallet/index.tsx +6 -2
  102. package/themes/original/src/components/PaymentOptions/index.tsx +24 -25
  103. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -8
  104. package/themes/original/src/components/PlaceSpot/index.tsx +114 -0
  105. package/themes/original/src/components/PlaceSpot/styles.tsx +11 -0
  106. package/themes/original/src/components/PreviousOrders/index.tsx +19 -13
  107. package/themes/original/src/components/ProductForm/index.tsx +35 -16
  108. package/themes/original/src/components/ProductForm/styles.tsx +2 -2
  109. package/themes/original/src/components/ReviewOrder/index.tsx +10 -9
  110. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  111. package/themes/original/src/components/SignupForm/index.tsx +173 -154
  112. package/themes/original/src/components/StripeElementsForm/index.tsx +55 -72
  113. package/themes/original/src/components/TaxInformation/index.tsx +17 -7
  114. package/themes/original/src/components/UpsellingProducts/index.tsx +6 -6
  115. package/themes/original/src/components/UserDetails/index.tsx +4 -95
  116. package/themes/original/src/components/UserFormDetails/index.tsx +2 -14
  117. package/themes/original/src/components/UserProfile/index.tsx +16 -16
  118. package/themes/original/src/components/UserProfileForm/index.tsx +8 -6
  119. package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
  120. package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
  121. package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
  122. package/themes/original/src/components/shared/index.tsx +2 -0
  123. package/themes/original/src/config/constants.tsx +6 -6
  124. package/themes/original/src/types/index.tsx +63 -23
  125. package/themes/single-business/src/components/AddressList/index.tsx +1 -1
  126. package/themes/single-business/src/components/OrderTypeSelector/index.tsx +5 -5
  127. package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
  128. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  129. package/src/components/StripeMethodForm/index.tsx +0 -168
@@ -5,8 +5,6 @@ import { useTheme } from 'styled-components/native';
5
5
  import { OIcon, OText, OModal } from '../shared';
6
6
  import { BusinessBasicInformationParams } from '../../types';
7
7
  import { convertHoursToMinutes } from '../../utils';
8
- import { BusinessInformation } from '../BusinessInformation';
9
- import { BusinessReviews } from '../BusinessReviews';
10
8
  import dayjs from 'dayjs';
11
9
  import timezone from 'dayjs/plugin/timezone';
12
10
  import isBetween from 'dayjs/plugin/isBetween';
@@ -22,14 +20,19 @@ import {
22
20
  BusinessInfoItem,
23
21
  WrapReviews,
24
22
  WrapBusinessInfo,
23
+ TitleWrapper,
24
+ RibbonBox
25
25
  } from './styles';
26
26
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
27
27
  const types = ['food', 'laundry', 'alcohol', 'groceries'];
28
28
 
29
+ let BusinessInformation: null | React.ElementType = null
30
+ let BusinessReviews: null | React.ElementType = null
31
+
29
32
  export const BusinessBasicInformation = (
30
33
  props: BusinessBasicInformationParams,
31
34
  ) => {
32
- const { navigation, businessState, isBusinessInfoShow, logo, header } = props;
35
+ const { navigation, businessState, isBusinessInfoShow, logo, header, isPreOrder } = props;
33
36
  const { business, loading } = businessState;
34
37
 
35
38
  const theme = useTheme();
@@ -38,6 +41,25 @@ export const BusinessBasicInformation = (
38
41
  const [{ parsePrice, parseDistance, optimizeImage }] = useUtils();
39
42
  const [openBusinessInformation, setOpenBusinessInformation] = useState(false);
40
43
  const [openBusinessReviews, setOpenBusinessReviews] = useState(false);
44
+ const [businessInformationObtained, setBusinessInformationObtained] = useState(false)
45
+ const [businessReviewsObtained, setBusinessReviewsObtainedbtained] = useState(false)
46
+
47
+ const handleClickBusinessInformation = () => {
48
+ if (!businessInformationObtained) {
49
+ BusinessInformation = require('../BusinessInformation').BusinessInformation
50
+ setBusinessInformationObtained(true)
51
+ }
52
+ setOpenBusinessInformation(true)
53
+ }
54
+
55
+ const handleClickBusinessReviews = () => {
56
+ if (!businessReviewsObtained) {
57
+ BusinessReviews = require('../BusinessReviews').BusinessReviews
58
+ setBusinessReviewsObtainedbtained(true)
59
+ }
60
+ setOpenBusinessReviews(true)
61
+ }
62
+
41
63
  const getBusinessType = () => {
42
64
  if (Object.keys(business).length <= 0) return t('GENERAL', 'General');
43
65
  const _types: any = [];
@@ -51,7 +73,7 @@ export const BusinessBasicInformation = (
51
73
  return _types.join(', ');
52
74
  };
53
75
 
54
-
76
+
55
77
  useEffect(() => {
56
78
  if (businessState?.loading) return
57
79
  let timeout: any = null
@@ -65,16 +87,16 @@ export const BusinessBasicInformation = (
65
87
  })
66
88
  }
67
89
  if (lapse) {
68
- const to = currentDate.hour(lapse.close.hour).minute(lapse.close.minute)
69
- const timeToClose = (to.unix() - currentDate.unix()) * 1000
70
- timeout = setTimeout(() => {
71
- navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })
72
- }, timeToClose)
90
+ const to = currentDate.hour(lapse.close.hour).minute(lapse.close.minute)
91
+ const timeToClose = (to.unix() - currentDate.unix()) * 1000
92
+ timeout = setTimeout(() => {
93
+ navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })
94
+ }, timeToClose)
73
95
  }
74
96
  return () => {
75
- timeout && clearTimeout(timeout)
97
+ timeout && clearTimeout(timeout)
76
98
  }
77
- }, [businessState?.business])
99
+ }, [businessState?.business])
78
100
 
79
101
  return (
80
102
  <BusinessContainer>
@@ -90,7 +112,7 @@ export const BusinessBasicInformation = (
90
112
  optimizeImage(businessState?.business?.header, 'h_250,c_limit'),
91
113
  }}>
92
114
  {!isBusinessInfoShow && (
93
- <WrapBusinessInfo onPress={() => setOpenBusinessInformation(true)}>
115
+ <WrapBusinessInfo onPress={() => handleClickBusinessInformation()}>
94
116
  <OIcon src={theme.images.general.info} width={24} />
95
117
  </WrapBusinessInfo>
96
118
  )}
@@ -121,9 +143,29 @@ export const BusinessBasicInformation = (
121
143
  <PlaceholderLine height={30} width={20} />
122
144
  </Placeholder>
123
145
  ) : (
124
- <OText size={24} weight={'600'}>
125
- {business?.name}
126
- </OText>
146
+ <TitleWrapper>
147
+ <OText size={24} weight={'600'}>
148
+ {business?.name}
149
+ </OText>
150
+ {business?.ribbon?.enabled && (
151
+ <RibbonBox
152
+ bgColor={business?.ribbon?.color}
153
+ isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
154
+ isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
155
+ >
156
+ <OText
157
+ size={10}
158
+ weight={'400'}
159
+ color={theme.colors.white}
160
+ numberOfLines={2}
161
+ ellipsizeMode='tail'
162
+ lineHeight={13}
163
+ >
164
+ {business?.ribbon?.text}
165
+ </OText>
166
+ </RibbonBox>
167
+ )}
168
+ </TitleWrapper>
127
169
  )}
128
170
  </BusinessInfoItem>
129
171
  {loading ? (
@@ -181,13 +223,17 @@ export const BusinessBasicInformation = (
181
223
  <WrapReviews>
182
224
  {!isBusinessInfoShow && (
183
225
  <>
184
- <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
185
- <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
186
- {t('PRE_ORDER', 'Preorder')}
187
- </OText>
188
- </TouchableOpacity>
189
- <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
190
- <TouchableOpacity onPress={() => setOpenBusinessReviews(true)}>
226
+ {isPreOrder && (
227
+ <>
228
+ <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
229
+ <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
230
+ {t('PRE_ORDER', 'Preorder')}
231
+ </OText>
232
+ </TouchableOpacity>
233
+ <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
234
+ </>
235
+ )}
236
+ <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
191
237
  <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
192
238
  {t('REVIEWS', 'Reviews')}
193
239
  </OText>
@@ -196,28 +242,37 @@ export const BusinessBasicInformation = (
196
242
  )}
197
243
  </WrapReviews>
198
244
  </BusinessInfo>
199
- <OModal
200
- titleSectionStyle={styles.modalTitleSectionStyle}
201
- open={openBusinessInformation}
202
- onClose={() => setOpenBusinessInformation(false)}
203
- isNotDecoration>
204
- <BusinessInformation
205
- businessState={businessState}
206
- business={business}
207
- />
208
- </OModal>
209
- <OModal
210
- entireModal
211
- titleSectionStyle={styles.modalTitleSectionStyle}
212
- open={openBusinessReviews}
213
- onClose={() => setOpenBusinessReviews(false)}
214
- isNotDecoration>
215
- <BusinessReviews
216
- businessState={businessState}
217
- businessId={business.id}
218
- reviews={business.reviews?.reviews}
219
- />
220
- </OModal>
245
+ {businessInformationObtained ? (
246
+ <OModal
247
+ titleSectionStyle={styles.modalTitleSectionStyle}
248
+ open={openBusinessInformation}
249
+ onClose={() => setOpenBusinessInformation(false)}
250
+ isNotDecoration>
251
+ {BusinessInformation && (
252
+ <BusinessInformation
253
+ businessState={businessState}
254
+ business={business}
255
+ />
256
+ )}
257
+ </OModal>
258
+ ) : null}
259
+ {businessReviewsObtained ? (
260
+ <OModal
261
+ entireModal
262
+ titleSectionStyle={styles.modalTitleSectionStyle}
263
+ open={openBusinessReviews}
264
+ onClose={() => setOpenBusinessReviews(false)}
265
+ isNotDecoration
266
+ >
267
+ {BusinessReviews && (
268
+ <BusinessReviews
269
+ businessState={businessState}
270
+ businessId={business.id}
271
+ reviews={business.reviews?.reviews}
272
+ />
273
+ )}
274
+ </OModal>
275
+ ) : null}
221
276
  </BusinessContainer>
222
277
  );
223
278
  };
@@ -262,4 +317,4 @@ const styles = StyleSheet.create({
262
317
  zIndex: 100,
263
318
  left: 40
264
319
  },
265
- });
320
+ });
@@ -1,4 +1,4 @@
1
- import styled from 'styled-components/native';
1
+ import styled, { css } from 'styled-components/native';
2
2
  import { Platform } from 'react-native';
3
3
 
4
4
  export const BusinessContainer = styled.View`
@@ -41,3 +41,30 @@ export const WrapBusinessInfo = styled.TouchableOpacity`
41
41
  top: 16px;
42
42
  end: 39px;
43
43
  `;
44
+
45
+ export const TitleWrapper = styled.View`
46
+ width: 100%;
47
+ flex-direction: row;
48
+ align-items: center;
49
+ justify-content: space-between;
50
+ `
51
+
52
+ export const RibbonBox = styled.View`
53
+ margin-left: 5px;
54
+ background-color: ${(props: any) => props.theme.colors.primary};
55
+ padding: 2px 8px;
56
+ max-width: 180px;
57
+ align-self: flex-start;
58
+
59
+ ${(props: any) => props.bgColor && css`
60
+ background-color: ${props.bgColor};
61
+ `}
62
+
63
+ ${(props: any) => props.isRoundRect && css`
64
+ border-radius: 7.6px;
65
+ `}
66
+
67
+ ${(props: any) => props.isCapsule && css`
68
+ border-radius: 50px;
69
+ `}
70
+ `
@@ -4,6 +4,7 @@ import {
4
4
  useUtils,
5
5
  useOrder,
6
6
  useLanguage,
7
+ useConfig
7
8
  } from 'ordering-components/native';
8
9
  import { OIcon, OText } from '../shared';
9
10
  import { StyleSheet, View } from 'react-native';
@@ -25,18 +26,26 @@ import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome5';
25
26
  import FastImage from 'react-native-fast-image'
26
27
 
27
28
  export const BusinessControllerUI = (props: BusinessControllerParams) => {
28
- const {
29
- business,
30
- handleClick,
31
- navigation,
32
- isBusinessOpen,
33
- style
29
+ const {
30
+ business,
31
+ handleClick,
32
+ navigation,
33
+ isBusinessOpen,
34
+ style,
35
+ businessHeader,
36
+ businessFeatured,
37
+ businessLogo,
38
+ businessReviews,
39
+ businessDeliveryPrice,
40
+ businessDeliveryTime,
41
+ businessPickupTime,
42
+ businessDistance
34
43
  } = props;
35
44
  const [{ parsePrice, parseDistance, parseNumber, optimizeImage }] = useUtils();
36
45
  const [orderState] = useOrder();
46
+ const [configState] = useConfig();
37
47
  const [, t] = useLanguage();
38
48
  const theme = useTheme()
39
-
40
49
  const styles = StyleSheet.create({
41
50
  headerStyle: {
42
51
  borderTopLeftRadius: 7.6,
@@ -116,18 +125,18 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
116
125
  <FastImage
117
126
  style={{ height: 120 }}
118
127
  source={{
119
- uri: optimizeImage(business?.header, 'h_500,c_limit'),
120
- priority: FastImage.priority.normal,
128
+ uri: optimizeImage(businessHeader || business?.header, 'h_500,c_limit'),
129
+ priority: FastImage.priority.normal,
121
130
  }}
122
131
  resizeMode={FastImage.resizeMode.cover}
123
132
  />
124
- {business?.featured && (
133
+ {(businessFeatured ?? business?.featured) && (
125
134
  <View style={styles.featured}>
126
135
  <FontAwesomeIcon name="crown" size={26} color="gold" />
127
136
  </View>
128
137
  )}
129
138
  <BusinessState>
130
- {!isBusinessOpen && (
139
+ {!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1') && (
131
140
  <View style={styles.businessStateView}>
132
141
  <OText
133
142
  color={theme.colors.textThird}
@@ -145,17 +154,17 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
145
154
  <FastImage
146
155
  style={{ width: 56, height: 56 }}
147
156
  source={{
148
- uri: optimizeImage(business?.logo, 'h_150,c_limit'),
149
- priority: FastImage.priority.normal,
157
+ uri: optimizeImage(businessLogo || business?.logo, 'h_150,c_limit'),
158
+ priority: FastImage.priority.normal,
150
159
  }}
151
160
  resizeMode={FastImage.resizeMode.cover}
152
161
  />
153
162
  </BusinessLogo>
154
- {business?.reviews?.total > 0 && (
163
+ {(businessReviews?.reviews?.total > 0 ?? business?.reviews?.total > 0) && (
155
164
  <Reviews>
156
165
  <OIcon src={theme.images.general.star} width={12} style={styles.starIcon} />
157
166
  <OText size={10} style={{ lineHeight: 15 }}>
158
- {parseNumber(business?.reviews?.total, { separator: '.' })}
167
+ {parseNumber(businessReviews?.reviews?.total ?? business?.reviews?.total, { separator: '.' })}
159
168
  </OText>
160
169
  </Reviews>
161
170
  )}
@@ -181,15 +190,17 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
181
190
  </View>
182
191
  ) : (
183
192
  <View style={styles.bullet}>
184
- <OText size={10} color={theme.colors.textSecondary}>
185
- {`${t('DELIVERY_FEE', 'Delivery fee')} ${parsePrice(business?.delivery_price) + ' \u2022 '}`}
186
- </OText>
193
+ {orderState?.options?.type === 1 && (
194
+ <OText size={10} color={theme.colors.textSecondary}>
195
+ {`${t('DELIVERY_FEE', 'Delivery fee')} ${parsePrice(businessDeliveryPrice ?? business?.delivery_price) + ' \u2022 '}`}
196
+ </OText>
197
+ )}
187
198
  <OText size={10} color={theme.colors.textSecondary}>{`${convertHoursToMinutes(
188
199
  orderState?.options?.type === 1
189
- ? business?.delivery_time
190
- : business?.pickup_time,
200
+ ? (businessDeliveryTime ?? business?.delivery_time)
201
+ : (businessPickupTime ?? business?.pickup_time),
191
202
  )} \u2022 `}</OText>
192
- <OText size={10} color={theme.colors.textSecondary}>{parseDistance(business?.distance)}</OText>
203
+ <OText size={10} color={theme.colors.textSecondary}>{parseDistance(businessDistance ?? business?.distance)}</OText>
193
204
  </View>
194
205
  )}
195
206
  </Metadata>
@@ -58,9 +58,9 @@ export const BusinessListingSearchUI = (props : BusinessSearchParams) => {
58
58
  const maxDistanceOptions = [1000, 2000, 5000, 'default']
59
59
  const maxTimeOptions = [5, 15, 30, 'default']
60
60
  const sortItems = [
61
- { text: t('PICKED_FOR_YOU', 'Picked for you (default)'), value: 'default' },
61
+ { text: t('PICKED_FOR_YOU', 'Picked for you (default)'), value: 'distance' },
62
62
  { text: t('DELIVERY_TIME', 'Delivery time'), value: 'delivery_time' },
63
- { text: t('PICKUP_TIME', 'Pickup time'), value: 'pickup_type' }
63
+ { text: t('PICKUP_TIME', 'Pickup time'), value: 'pickup_time' }
64
64
  ]
65
65
 
66
66
  const styles = StyleSheet.create({
@@ -137,6 +137,10 @@ export const BusinessListingSearchUI = (props : BusinessSearchParams) => {
137
137
  }
138
138
  }, [filters, openFilters])
139
139
 
140
+ useEffect(() => {
141
+ handleSearchbusinessAndProducts(true)
142
+ }, [])
143
+
140
144
  const MaxSectionItem = ({ title, options, filter }: any) => {
141
145
  const parseValue = (option: number) => {
142
146
  return filter === 'max_distance'
@@ -396,7 +400,7 @@ export const BusinessListingSearchUI = (props : BusinessSearchParams) => {
396
400
  <OText weight='bold' mBottom={7} size={16}>
397
401
  {t('SORT', 'Sort')}
398
402
  </OText>
399
- {sortItems?.map(item => (
403
+ {sortItems?.filter(item => !(orderState?.options?.type === 1 && item?.value === 'pickup_time') && !(orderState?.options?.type === 2 && item?.value === 'delivery_time'))?.map(item => (
400
404
  <TouchableOpacity
401
405
  key={item?.value}
402
406
  onPress={() => handleChangeFilters('orderBy', item?.value)}
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { useEffect } from 'react'
2
2
  import { useLanguage, BusinessMenuListing } from 'ordering-components/native'
3
3
  import { OText } from '../shared'
4
4
  import { BusinessMenuListParams } from '../../types'
@@ -19,7 +19,7 @@ const BusinessMenuListUI = (props: BusinessMenuListParams) => {
19
19
 
20
20
  const [, t] = useLanguage()
21
21
  const theme = useTheme()
22
- const {top} = useSafeAreaInsets()
22
+ const { top } = useSafeAreaInsets()
23
23
 
24
24
  const styles = StyleSheet.create({
25
25
  container: {
@@ -36,7 +36,7 @@ const BusinessMenuListUI = (props: BusinessMenuListParams) => {
36
36
  height: 44,
37
37
  width: '100%'
38
38
  }
39
- })
39
+ })
40
40
 
41
41
  const dropDownIcon = () => {
42
42
  return (
@@ -48,12 +48,18 @@ const BusinessMenuListUI = (props: BusinessMenuListParams) => {
48
48
  )
49
49
  }
50
50
 
51
+ useEffect(() => {
52
+ if (!businessMenuList?.loading && businessMenuList?.menus?.length === 1){
53
+ setMenu(businessMenuList?.menus[0])
54
+ }
55
+ }, [businessMenuList?.menus])
56
+
51
57
  return (
52
58
  <>
53
59
  {businessMenuList.loading ? (
54
60
  <Placeholder Animation={Fade}>
55
61
  <View>
56
- <PlaceholderLine height={44}/>
62
+ <PlaceholderLine height={44} />
57
63
  </View>
58
64
  </Placeholder>
59
65
  ) : (
@@ -67,6 +73,7 @@ const BusinessMenuListUI = (props: BusinessMenuListParams) => {
67
73
  onSelect={(selectedItem, index) => {
68
74
  setMenu(selectedItem)
69
75
  }}
76
+ defaultValue={businessMenuList?.menus?.length === 1 && businessMenuList?.menus[0]}
70
77
  buttonTextAfterSelection={(selectedItem, index) => {
71
78
  return selectedItem.name
72
79
  }}