ordering-ui-react-native 0.15.37 → 0.15.38-test

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 (79) hide show
  1. package/package.json +3 -2
  2. package/src/components/BusinessTypeFilter/index.tsx +4 -1
  3. package/src/components/LanguageSelector/index.tsx +1 -0
  4. package/src/components/OrderDetails/index.tsx +2 -2
  5. package/src/components/PaymentOptions/index.tsx +2 -2
  6. package/src/components/StripeMethodForm/index.tsx +22 -21
  7. package/src/pages/BusinessProductsList.tsx +1 -0
  8. package/src/pages/BusinessesListing.tsx +1 -1
  9. package/themes/business/src/components/Home/index.tsx +128 -55
  10. package/themes/business/src/components/Home/styles.tsx +8 -1
  11. package/themes/business/src/components/NewOrderNotification/index.tsx +59 -98
  12. package/themes/business/src/components/OrderDetails/Delivery.tsx +9 -9
  13. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +152 -91
  14. package/themes/business/src/components/OrderDetails/styles.tsx +7 -0
  15. package/themes/business/src/components/OrdersListManager/index.tsx +51 -48
  16. package/themes/business/src/components/OrdersOption/index.tsx +52 -48
  17. package/themes/business/src/components/PreviousOrders/index.tsx +50 -14
  18. package/themes/kiosk/src/components/Cart/index.tsx +99 -25
  19. package/themes/kiosk/src/components/Cart/styles.tsx +6 -0
  20. package/themes/kiosk/src/components/OrderDetails/index.tsx +134 -39
  21. package/themes/kiosk/src/components/OrderDetails/styles.tsx +5 -0
  22. package/themes/kiosk/src/components/ProductForm/index.tsx +2 -2
  23. package/themes/kiosk/src/types/index.d.ts +2 -0
  24. package/themes/original/index.tsx +165 -0
  25. package/themes/original/src/components/AddressForm/index.tsx +15 -10
  26. package/themes/original/src/components/AddressList/index.tsx +28 -2
  27. package/themes/original/src/components/AppleLogin/index.tsx +118 -77
  28. package/themes/original/src/components/BusinessBasicInformation/index.tsx +96 -45
  29. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +28 -1
  30. package/themes/original/src/components/BusinessController/index.tsx +28 -9
  31. package/themes/original/src/components/BusinessController/styles.tsx +22 -0
  32. package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
  33. package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
  34. package/themes/original/src/components/BusinessListingSearch/index.tsx +4 -0
  35. package/themes/original/src/components/BusinessMenuList/index.tsx +11 -4
  36. package/themes/original/src/components/BusinessPreorder/index.tsx +141 -121
  37. package/themes/original/src/components/BusinessProductsCategories/index.tsx +7 -5
  38. package/themes/original/src/components/BusinessProductsList/index.tsx +126 -21
  39. package/themes/original/src/components/BusinessProductsList/styles.tsx +32 -2
  40. package/themes/original/src/components/BusinessProductsListing/index.tsx +12 -5
  41. package/themes/original/src/components/BusinessReviews/index.tsx +4 -25
  42. package/themes/original/src/components/BusinessesListing/index.tsx +1 -2
  43. package/themes/original/src/components/Cart/index.tsx +1 -3
  44. package/themes/original/src/components/CartContent/index.tsx +2 -2
  45. package/themes/original/src/components/Checkout/index.tsx +2 -1
  46. package/themes/original/src/components/Home/index.tsx +1 -1
  47. package/themes/original/src/components/LoginForm/index.tsx +73 -2
  48. package/themes/original/src/components/LoginForm/styles.tsx +6 -1
  49. package/themes/original/src/components/LogoutButton/index.tsx +7 -1
  50. package/themes/original/src/components/Messages/index.tsx +5 -0
  51. package/themes/original/src/components/Messages/styles.tsx +1 -3
  52. package/themes/original/src/components/MomentOption/index.tsx +10 -1
  53. package/themes/original/src/components/MomentOption/styles.tsx +1 -1
  54. package/themes/original/src/components/OrderDetails/index.tsx +1 -3
  55. package/themes/original/src/components/OrderProgress/index.tsx +3 -3
  56. package/themes/original/src/components/OrderProgress/styles.tsx +1 -0
  57. package/themes/original/src/components/OrderSummary/index.tsx +2 -2
  58. package/themes/original/src/components/PaymentOptionWallet/index.tsx +6 -2
  59. package/themes/original/src/components/PaymentOptions/index.tsx +3 -1
  60. package/themes/original/src/components/PhoneInputNumber/index.tsx +10 -4
  61. package/themes/original/src/components/PreviousOrders/index.tsx +14 -12
  62. package/themes/original/src/components/ProductForm/index.tsx +4 -4
  63. package/themes/original/src/components/Promotions/index.tsx +232 -0
  64. package/themes/original/src/components/Promotions/styles.tsx +80 -0
  65. package/themes/original/src/components/SignupForm/index.tsx +109 -13
  66. package/themes/original/src/components/SingleProductCard/index.tsx +39 -18
  67. package/themes/original/src/components/SingleProductCard/styles.tsx +28 -1
  68. package/themes/original/src/components/TaxInformation/index.tsx +10 -4
  69. package/themes/original/src/components/UserFormDetails/index.tsx +13 -2
  70. package/themes/original/src/components/UserProfile/index.tsx +53 -8
  71. package/themes/original/src/components/Wallets/index.tsx +57 -3
  72. package/themes/original/src/components/Wallets/styles.tsx +21 -0
  73. package/themes/original/src/components/shared/HeaderTitle.tsx +21 -0
  74. package/themes/original/src/components/shared/index.tsx +2 -0
  75. package/themes/original/src/config/constants.tsx +6 -6
  76. package/themes/original/src/types/index.tsx +21 -1
  77. package/themes/original/src/utils/index.tsx +9 -0
  78. package/themes/single-business/src/components/AddressList/index.tsx +1 -1
  79. package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
@@ -4,9 +4,7 @@ import { useUtils, useOrder, useLanguage } from 'ordering-components/native';
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { OIcon, OText, OModal } from '../shared';
6
6
  import { BusinessBasicInformationParams } from '../../types';
7
- import { convertHoursToMinutes } from '../../utils';
8
- import { BusinessInformation } from '../BusinessInformation';
9
- import { BusinessReviews } from '../BusinessReviews';
7
+ import { convertHoursToMinutes, shape } from '../../utils';
10
8
  import dayjs from 'dayjs';
11
9
  import timezone from 'dayjs/plugin/timezone';
12
10
  import isBetween from 'dayjs/plugin/isBetween';
@@ -22,10 +20,15 @@ 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
  ) => {
@@ -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,17 +223,17 @@ export const BusinessBasicInformation = (
181
223
  <WrapReviews>
182
224
  {!isBusinessInfoShow && (
183
225
  <>
184
- { isPreOrder && (
226
+ {isPreOrder && (
185
227
  <>
186
- <TouchableOpacity onPress={() => navigation.navigate('BusinessPreorder', { business: businessState?.business, handleBusinessClick: () => navigation?.goBack() })}>
187
- <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
188
- {t('PRE_ORDER', 'Preorder')}
189
- </OText>
190
- </TouchableOpacity>
191
- <OText size={12} color={theme.colors.textSecondary}>{' \u2022 '}</OText>
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>
192
234
  </>
193
235
  )}
194
- <TouchableOpacity onPress={() => setOpenBusinessReviews(true)}>
236
+ <TouchableOpacity onPress={() => handleClickBusinessReviews()}>
195
237
  <OText color={theme.colors.textSecondary} style={{ textDecorationLine: 'underline' }}>
196
238
  {t('REVIEWS', 'Reviews')}
197
239
  </OText>
@@ -200,28 +242,37 @@ export const BusinessBasicInformation = (
200
242
  )}
201
243
  </WrapReviews>
202
244
  </BusinessInfo>
203
- <OModal
204
- titleSectionStyle={styles.modalTitleSectionStyle}
205
- open={openBusinessInformation}
206
- onClose={() => setOpenBusinessInformation(false)}
207
- isNotDecoration>
208
- <BusinessInformation
209
- businessState={businessState}
210
- business={business}
211
- />
212
- </OModal>
213
- <OModal
214
- entireModal
215
- titleSectionStyle={styles.modalTitleSectionStyle}
216
- open={openBusinessReviews}
217
- onClose={() => setOpenBusinessReviews(false)}
218
- isNotDecoration>
219
- <BusinessReviews
220
- businessState={businessState}
221
- businessId={business.id}
222
- reviews={business.reviews?.reviews}
223
- />
224
- </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}
225
276
  </BusinessContainer>
226
277
  );
227
278
  };
@@ -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
+ `
@@ -9,7 +9,7 @@ import {
9
9
  import { OIcon, OText } from '../shared';
10
10
  import { StyleSheet, View } from 'react-native';
11
11
  import { BusinessControllerParams } from '../../types';
12
- import { convertHoursToMinutes } from '../../utils';
12
+ import { convertHoursToMinutes, shape } from '../../utils';
13
13
  import {
14
14
  Card,
15
15
  BusinessHero,
@@ -20,6 +20,7 @@ import {
20
20
  BusinessState,
21
21
  BusinessLogo,
22
22
  Reviews,
23
+ RibbonBox
23
24
  } from './styles';
24
25
  import { useTheme } from 'styled-components/native';
25
26
  import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome5';
@@ -43,11 +44,9 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
43
44
  } = props;
44
45
  const [{ parsePrice, parseDistance, parseNumber, optimizeImage }] = useUtils();
45
46
  const [orderState] = useOrder();
47
+ const [configState] = useConfig();
46
48
  const [, t] = useLanguage();
47
49
  const theme = useTheme()
48
- const [{ configs }] = useConfig();
49
- const isPreOrderSetting = configs?.preorder_status_enabled?.value === '1'
50
-
51
50
  const styles = StyleSheet.create({
52
51
  headerStyle: {
53
52
  borderTopLeftRadius: 7.6,
@@ -115,7 +114,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
115
114
  };
116
115
 
117
116
  const handleBusinessClick = (selectedBusiness: any) => {
118
- if (business?.open || !isPreOrderSetting) handleClick && handleClick(selectedBusiness)
117
+ if (business?.open) handleClick && handleClick(selectedBusiness)
119
118
  else {
120
119
  navigation.navigate('BusinessPreorder', { business: selectedBusiness, handleBusinessClick: handleClick })
121
120
  }
@@ -123,6 +122,24 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
123
122
 
124
123
  return (
125
124
  <Card activeOpacity={1} onPress={() => handleBusinessClick(business)} style={style}>
125
+ {business?.ribbon?.enabled && (
126
+ <RibbonBox
127
+ bgColor={business?.ribbon?.color}
128
+ isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
129
+ isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
130
+ >
131
+ <OText
132
+ size={10}
133
+ weight={'400'}
134
+ color={theme.colors.white}
135
+ numberOfLines={2}
136
+ ellipsizeMode='tail'
137
+ lineHeight={13}
138
+ >
139
+ {business?.ribbon?.text}
140
+ </OText>
141
+ </RibbonBox>
142
+ )}
126
143
  <BusinessHero>
127
144
  <FastImage
128
145
  style={{ height: 120 }}
@@ -138,7 +155,7 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
138
155
  </View>
139
156
  )}
140
157
  <BusinessState>
141
- {!isBusinessOpen && (
158
+ {!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1') && (
142
159
  <View style={styles.businessStateView}>
143
160
  <OText
144
161
  color={theme.colors.textThird}
@@ -192,9 +209,11 @@ export const BusinessControllerUI = (props: BusinessControllerParams) => {
192
209
  </View>
193
210
  ) : (
194
211
  <View style={styles.bullet}>
195
- <OText size={10} color={theme.colors.textSecondary}>
196
- {`${t('DELIVERY_FEE', 'Delivery fee')} ${parsePrice(businessDeliveryPrice ?? business?.delivery_price) + ' \u2022 '}`}
197
- </OText>
212
+ {orderState?.options?.type === 1 && (
213
+ <OText size={10} color={theme.colors.textSecondary}>
214
+ {`${t('DELIVERY_FEE', 'Delivery fee')} ${parsePrice(businessDeliveryPrice ?? business?.delivery_price) + ' \u2022 '}`}
215
+ </OText>
216
+ )}
198
217
  <OText size={10} color={theme.colors.textSecondary}>{`${convertHoursToMinutes(
199
218
  orderState?.options?.type === 1
200
219
  ? (businessDeliveryTime ?? business?.delivery_time)
@@ -53,3 +53,25 @@ export const Reviews = styled.View`
53
53
  flex-direction: row;
54
54
  align-items: center;
55
55
  `
56
+
57
+ export const RibbonBox = styled.View`
58
+ position: absolute;
59
+ z-index: 1;
60
+ top: -4px;
61
+ right: -4px;
62
+ background-color: ${(props: any) => props.theme.colors.primary};
63
+ padding: 1px 8px;
64
+ max-width: 180px;
65
+
66
+ ${(props: any) => props.bgColor && css`
67
+ background-color: ${props.bgColor};
68
+ `}
69
+
70
+ ${(props: any) => props.isRoundRect && css`
71
+ border-radius: 7.6px;
72
+ `}
73
+
74
+ ${(props: any) => props.isCapsule && css`
75
+ border-radius: 50px;
76
+ `}
77
+ `
@@ -9,7 +9,7 @@ import { useTheme } from 'styled-components/native';
9
9
  import { OIcon, OText } from '../shared';
10
10
  import { StyleSheet, useWindowDimensions, View } from 'react-native';
11
11
  import { BusinessControllerParams } from '../../types';
12
- import { convertHoursToMinutes } from '../../utils';
12
+ import { convertHoursToMinutes, shape } from '../../utils';
13
13
  import {
14
14
  Card,
15
15
  BusinessHero,
@@ -20,6 +20,7 @@ import {
20
20
  BusinessState,
21
21
  BusinessLogo,
22
22
  Reviews,
23
+ RibbonBox
23
24
  } from './styles';
24
25
 
25
26
  export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
@@ -97,6 +98,24 @@ export const BusinessFeaturedCtrlUI = (props: BusinessControllerParams) => {
97
98
 
98
99
  return (
99
100
  <Card activeOpacity={1} onPress={() => handleClick(business)}>
101
+ {business?.ribbon?.enabled && (
102
+ <RibbonBox
103
+ bgColor={business?.ribbon?.color}
104
+ isRoundRect={business?.ribbon?.shape === shape?.rectangleRound}
105
+ isCapsule={business?.ribbon?.shape === shape?.capsuleShape}
106
+ >
107
+ <OText
108
+ size={10}
109
+ weight={'400'}
110
+ color={theme.colors.white}
111
+ numberOfLines={2}
112
+ ellipsizeMode='tail'
113
+ lineHeight={13}
114
+ >
115
+ {business?.ribbon?.text}
116
+ </OText>
117
+ </RibbonBox>
118
+ )}
100
119
  <BusinessHero>
101
120
  <BusinessLogo>
102
121
  <OIcon
@@ -4,6 +4,7 @@ export const Card = styled.TouchableOpacity`
4
4
  margin-vertical: 4px;
5
5
  height: 60px;
6
6
  overflow: hidden;
7
+ position: relative;
7
8
  `;
8
9
 
9
10
  export const BusinessHero = styled.View`
@@ -48,3 +49,25 @@ export const BusinessLogo = styled.View`
48
49
  export const Reviews = styled.View`
49
50
  flex-direction: row;
50
51
  `
52
+
53
+ export const RibbonBox = styled.View`
54
+ position: absolute;
55
+ z-index: 1;
56
+ top: 0px;
57
+ right: 5px;
58
+ background-color: ${(props: any) => props.theme.colors.primary};
59
+ padding: 1px 8px;
60
+ max-width: 160px;
61
+
62
+ ${(props: any) => props.bgColor && css`
63
+ background-color: ${props.bgColor};
64
+ `}
65
+
66
+ ${(props: any) => props.isRoundRect && css`
67
+ border-radius: 7.6px;
68
+ `}
69
+
70
+ ${(props: any) => props.isCapsule && css`
71
+ border-radius: 50px;
72
+ `}
73
+ `
@@ -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'
@@ -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
  }}