ordering-ui-react-native 0.12.31 → 0.12.35

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 (177) hide show
  1. package/package.json +1 -1
  2. package/themes/business/src/components/OrderDetails/Delivery.tsx +206 -178
  3. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +344 -334
  4. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +83 -69
  5. package/themes/business/src/components/OrdersOption/index.tsx +122 -77
  6. package/themes/business/src/components/OrdersOption/styles.tsx +1 -0
  7. package/themes/business/src/components/PreviousOrders/index.tsx +124 -73
  8. package/themes/business/src/components/PreviousOrders/styles.tsx +7 -0
  9. package/themes/business/src/components/ProductItemAccordion/index.tsx +26 -25
  10. package/themes/business/src/components/SearchBar/index.tsx +1 -1
  11. package/themes/business/src/components/StoresList/index.tsx +12 -12
  12. package/themes/business/src/components/shared/OButton.tsx +0 -1
  13. package/themes/business/src/components/shared/OIcon.tsx +2 -0
  14. package/themes/business/src/types/index.tsx +5 -0
  15. package/themes/single-business/src/components/BusinessBasicInformation/index.tsx +1 -1
  16. package/themes/single-business/src/components/BusinessProductsListing/index.tsx +9 -8
  17. package/themes/single-business/src/components/BusinessesListing/index.tsx +307 -296
  18. package/themes/single-business/src/components/BusinessesListing/styles.tsx +41 -14
  19. package/themes/single-business/src/components/HelpAccountAndPayment/index.tsx +7 -6
  20. package/themes/single-business/src/components/HelpGuide/index.tsx +7 -6
  21. package/themes/single-business/src/components/HelpOrder/index.tsx +7 -6
  22. package/themes/single-business/src/components/LoginForm/index.tsx +2 -2
  23. package/themes/single-business/src/components/OrderDetails/index.tsx +7 -7
  24. package/themes/single-business/src/components/shared/OIconButton.tsx +2 -2
  25. package/themes/single-business/src/types/index.tsx +2 -0
  26. package/themes/uber-eats/src/components/AddressList/index.tsx +1 -1
  27. package/themes/uber-eats/src/components/Messages/index.tsx +4 -4
  28. package/themes/uber-eats/src/components/shared/OButton.tsx +0 -1
  29. package/themes/uber-eats/src/components/shared/ODropDown.tsx +3 -2
  30. package/themes/uber-eats/src/components/shared/OIcon.tsx +3 -2
  31. package/themes/business/src/assets/fonts/Poppins-Bold.ttf +0 -0
  32. package/themes/business/src/assets/fonts/Poppins-Light.ttf +0 -0
  33. package/themes/business/src/assets/fonts/Poppins-Medium.ttf +0 -0
  34. package/themes/business/src/assets/fonts/Poppins-Regular.ttf +0 -0
  35. package/themes/business/src/assets/fonts/Poppins-SemiBold.ttf +0 -0
  36. package/themes/business/src/assets/fonts/Poppins-Thin.ttf +0 -0
  37. package/themes/business/src/assets/icons/Close.png +0 -0
  38. package/themes/business/src/assets/icons/arrow_down.png +0 -0
  39. package/themes/business/src/assets/icons/arrow_left.png +0 -0
  40. package/themes/business/src/assets/icons/arrow_return_left.png +0 -0
  41. package/themes/business/src/assets/icons/arrow_right.png +0 -0
  42. package/themes/business/src/assets/icons/arrow_up.png +0 -0
  43. package/themes/business/src/assets/icons/attach.png +0 -0
  44. package/themes/business/src/assets/icons/camera.png +0 -0
  45. package/themes/business/src/assets/icons/cellphone.png +0 -0
  46. package/themes/business/src/assets/icons/chevron-down.png +0 -0
  47. package/themes/business/src/assets/icons/docFile.png +0 -0
  48. package/themes/business/src/assets/icons/drop_down.png +0 -0
  49. package/themes/business/src/assets/icons/email.png +0 -0
  50. package/themes/business/src/assets/icons/image-chat.png +0 -0
  51. package/themes/business/src/assets/icons/imageFile.png +0 -0
  52. package/themes/business/src/assets/icons/information.png +0 -0
  53. package/themes/business/src/assets/icons/logout.png +0 -0
  54. package/themes/business/src/assets/icons/map.png +0 -0
  55. package/themes/business/src/assets/icons/messages.png +0 -0
  56. package/themes/business/src/assets/icons/orders.png +0 -0
  57. package/themes/business/src/assets/icons/password.png +0 -0
  58. package/themes/business/src/assets/icons/pdfFile.png +0 -0
  59. package/themes/business/src/assets/icons/phone.png +0 -0
  60. package/themes/business/src/assets/icons/profile-default-photo.png +0 -0
  61. package/themes/business/src/assets/icons/profile.png +0 -0
  62. package/themes/business/src/assets/icons/reload.png +0 -0
  63. package/themes/business/src/assets/icons/search.png +0 -0
  64. package/themes/business/src/assets/icons/stores.png +0 -0
  65. package/themes/business/src/assets/images/background.png +0 -0
  66. package/themes/business/src/assets/images/dummies/store.png +0 -0
  67. package/themes/business/src/assets/images/image.png +0 -0
  68. package/themes/business/src/assets/images/loading-splash.png +0 -0
  69. package/themes/business/src/assets/images/logo-long.png +0 -0
  70. package/themes/business/src/assets/images/logo-white.png +0 -0
  71. package/themes/business/src/assets/images/logo.png +0 -0
  72. package/themes/business/src/assets/images/logotype-invert.png +0 -0
  73. package/themes/business/src/assets/images/logotype.png +0 -0
  74. package/themes/business/src/assets/images/not-found.png +0 -0
  75. package/themes/business/src/assets/json/order.json +0 -205
  76. package/themes/business/src/assets/json/orders.json +0 -3592
  77. package/themes/uber-eats/src/assets/fonts/Poppins-Bold.ttf +0 -0
  78. package/themes/uber-eats/src/assets/fonts/Poppins-Light.ttf +0 -0
  79. package/themes/uber-eats/src/assets/fonts/Poppins-Medium.ttf +0 -0
  80. package/themes/uber-eats/src/assets/fonts/Poppins-Regular.ttf +0 -0
  81. package/themes/uber-eats/src/assets/fonts/Poppins-SemiBold.ttf +0 -0
  82. package/themes/uber-eats/src/assets/fonts/Poppins-Thin.ttf +0 -0
  83. package/themes/uber-eats/src/assets/icons/add-circular-outlined-button.png +0 -0
  84. package/themes/uber-eats/src/assets/icons/alert.png +0 -0
  85. package/themes/uber-eats/src/assets/icons/arrow_left.png +0 -0
  86. package/themes/uber-eats/src/assets/icons/arrow_right.png +0 -0
  87. package/themes/uber-eats/src/assets/icons/arrow_up.png +0 -0
  88. package/themes/uber-eats/src/assets/icons/autograph.png +0 -0
  89. package/themes/uber-eats/src/assets/icons/calendar.png +0 -0
  90. package/themes/uber-eats/src/assets/icons/camera.png +0 -0
  91. package/themes/uber-eats/src/assets/icons/canceled.png +0 -0
  92. package/themes/uber-eats/src/assets/icons/card-delivery.png +0 -0
  93. package/themes/uber-eats/src/assets/icons/card.png +0 -0
  94. package/themes/uber-eats/src/assets/icons/cash.png +0 -0
  95. package/themes/uber-eats/src/assets/icons/cc-stripe.png +0 -0
  96. package/themes/uber-eats/src/assets/icons/chat.png +0 -0
  97. package/themes/uber-eats/src/assets/icons/checkmark.png +0 -0
  98. package/themes/uber-eats/src/assets/icons/close.png +0 -0
  99. package/themes/uber-eats/src/assets/icons/completed.png +0 -0
  100. package/themes/uber-eats/src/assets/icons/credit-card.png +0 -0
  101. package/themes/uber-eats/src/assets/icons/delete.png +0 -0
  102. package/themes/uber-eats/src/assets/icons/drop_down.png +0 -0
  103. package/themes/uber-eats/src/assets/icons/group.png +0 -0
  104. package/themes/uber-eats/src/assets/icons/help.png +0 -0
  105. package/themes/uber-eats/src/assets/icons/home.png +0 -0
  106. package/themes/uber-eats/src/assets/icons/ic_email.png +0 -0
  107. package/themes/uber-eats/src/assets/icons/ic_lock.png +0 -0
  108. package/themes/uber-eats/src/assets/icons/image.png +0 -0
  109. package/themes/uber-eats/src/assets/icons/inprogress.png +0 -0
  110. package/themes/uber-eats/src/assets/icons/lunch.png +0 -0
  111. package/themes/uber-eats/src/assets/icons/mail.png +0 -0
  112. package/themes/uber-eats/src/assets/icons/map.png +0 -0
  113. package/themes/uber-eats/src/assets/icons/menu-help.png +0 -0
  114. package/themes/uber-eats/src/assets/icons/menu-logout.png +0 -0
  115. package/themes/uber-eats/src/assets/icons/menu-orders.png +0 -0
  116. package/themes/uber-eats/src/assets/icons/menu-user.png +0 -0
  117. package/themes/uber-eats/src/assets/icons/menu.png +0 -0
  118. package/themes/uber-eats/src/assets/icons/paypal.png +0 -0
  119. package/themes/uber-eats/src/assets/icons/paypal2.png +0 -0
  120. package/themes/uber-eats/src/assets/icons/pending.png +0 -0
  121. package/themes/uber-eats/src/assets/icons/phone.png +0 -0
  122. package/themes/uber-eats/src/assets/icons/pin_outline.png +0 -0
  123. package/themes/uber-eats/src/assets/icons/send.png +0 -0
  124. package/themes/uber-eats/src/assets/icons/speech-bubble.png +0 -0
  125. package/themes/uber-eats/src/assets/icons/stripe-s.png +0 -0
  126. package/themes/uber-eats/src/assets/icons/stripe-sb.png +0 -0
  127. package/themes/uber-eats/src/assets/icons/stripe.png +0 -0
  128. package/themes/uber-eats/src/assets/icons/trash.png +0 -0
  129. package/themes/uber-eats/src/assets/icons/upload.png +0 -0
  130. package/themes/uber-eats/src/assets/icons/wallet.png +0 -0
  131. package/themes/uber-eats/src/assets/images/business.png +0 -0
  132. package/themes/uber-eats/src/assets/images/categories/category-all.png +0 -0
  133. package/themes/uber-eats/src/assets/images/dummies/product.png +0 -0
  134. package/themes/uber-eats/src/assets/images/dummies/store.png +0 -0
  135. package/themes/uber-eats/src/assets/images/empty-active-orders.png +0 -0
  136. package/themes/uber-eats/src/assets/images/empty-past-orders.png +0 -0
  137. package/themes/uber-eats/src/assets/images/home-hero.png +0 -0
  138. package/themes/uber-eats/src/assets/images/image.png +0 -0
  139. package/themes/uber-eats/src/assets/images/logo-long.png +0 -0
  140. package/themes/uber-eats/src/assets/images/logo-white.png +0 -0
  141. package/themes/uber-eats/src/assets/images/logo.png +0 -0
  142. package/themes/uber-eats/src/assets/images/logotype-invert.png +0 -0
  143. package/themes/uber-eats/src/assets/images/logotype.png +0 -0
  144. package/themes/uber-eats/src/assets/images/marker.png +0 -0
  145. package/themes/uber-eats/src/assets/images/not-found.png +0 -0
  146. package/themes/uber-eats/src/assets/images/paper-plane.png +0 -0
  147. package/themes/uber-eats/src/assets/images/slide1.png +0 -0
  148. package/themes/uber-eats/src/assets/images/slide2.png +0 -0
  149. package/themes/uber-eats/src/assets/images/slide3.png +0 -0
  150. package/themes/uber-eats/src/assets/images/slide4.png +0 -0
  151. package/themes/uber-eats/src/assets/images/slide5.png +0 -0
  152. package/themes/uber-eats/src/assets/images/slide6.png +0 -0
  153. package/themes/uber-eats/src/assets/images/status-0.png +0 -0
  154. package/themes/uber-eats/src/assets/images/status-1.png +0 -0
  155. package/themes/uber-eats/src/assets/images/status-10.png +0 -0
  156. package/themes/uber-eats/src/assets/images/status-11.png +0 -0
  157. package/themes/uber-eats/src/assets/images/status-12.png +0 -0
  158. package/themes/uber-eats/src/assets/images/status-13.png +0 -0
  159. package/themes/uber-eats/src/assets/images/status-14.png +0 -0
  160. package/themes/uber-eats/src/assets/images/status-15.png +0 -0
  161. package/themes/uber-eats/src/assets/images/status-16.png +0 -0
  162. package/themes/uber-eats/src/assets/images/status-17.png +0 -0
  163. package/themes/uber-eats/src/assets/images/status-18.png +0 -0
  164. package/themes/uber-eats/src/assets/images/status-19.png +0 -0
  165. package/themes/uber-eats/src/assets/images/status-2.png +0 -0
  166. package/themes/uber-eats/src/assets/images/status-20.png +0 -0
  167. package/themes/uber-eats/src/assets/images/status-21.png +0 -0
  168. package/themes/uber-eats/src/assets/images/status-3.png +0 -0
  169. package/themes/uber-eats/src/assets/images/status-4.png +0 -0
  170. package/themes/uber-eats/src/assets/images/status-5.png +0 -0
  171. package/themes/uber-eats/src/assets/images/status-6.png +0 -0
  172. package/themes/uber-eats/src/assets/images/status-7.png +0 -0
  173. package/themes/uber-eats/src/assets/images/status-8.png +0 -0
  174. package/themes/uber-eats/src/assets/images/status-9.png +0 -0
  175. package/themes/uber-eats/src/assets/images/store.png +0 -0
  176. package/themes/uber-eats/src/assets/json/order.json +0 -205
  177. package/themes/uber-eats/src/assets/json/orders.json +0 -3592
@@ -1,34 +1,37 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
3
3
  import {
4
- View,
5
- StyleSheet,
6
- ScrollView,
7
- Platform,
8
- TouchableOpacity,
4
+ View,
5
+ StyleSheet,
6
+ ScrollView,
7
+ Platform,
8
+ TouchableOpacity,
9
9
  } from 'react-native';
10
10
  import {
11
- BusinessList as BusinessesListingController,
12
- useLanguage,
13
- useSession,
14
- useOrder,
15
- useConfig,
16
- useUtils,
11
+ BusinessList as BusinessesListingController,
12
+ useLanguage,
13
+ useSession,
14
+ useOrder,
15
+ useConfig,
16
+ useUtils,
17
17
  } from 'ordering-components/native';
18
18
  import { useTheme } from 'styled-components/native';
19
19
 
20
20
  import {
21
- Search,
22
- OrderControlContainer,
23
- AddressInput,
24
- WrapMomentOption,
25
- HeaderWrapper,
26
- ListWrapper,
27
- FeaturedWrapper,
21
+ Search,
22
+ OrderControlContainer,
23
+ AddressInput,
24
+ WrapMomentOption,
25
+ HeaderWrapper,
26
+ ListWrapper,
27
+ FeaturedWrapper,
28
+ TopHeader,
29
+ DropOptionButton,
30
+ WrapSearchBar,
28
31
  } from './styles';
29
32
 
30
33
  import { SearchBar } from '../SearchBar';
31
- import { OIcon, OText } from '../shared';
34
+ import { OButton, OIcon, OText } from '../shared';
32
35
  import { BusinessesListingParams } from '../../types';
33
36
  import { NotFoundSource } from '../NotFoundSource';
34
37
  import { BusinessTypeFilter } from '../BusinessTypeFilter';
@@ -36,302 +39,310 @@ import { BusinessController } from '../BusinessController';
36
39
  import { OrderTypeSelector } from '../OrderTypeSelector';
37
40
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
38
41
  import { BusinessFeaturedController } from '../BusinessFeaturedController';
42
+ import { getTypesText } from '../../utils';
43
+ import NavBar from '../NavBar';
39
44
 
40
45
  const PIXELS_TO_SCROLL = 1000;
41
46
 
42
47
  const BusinessesListingUI = (props: BusinessesListingParams) => {
43
- const {
44
- navigation,
45
- businessesList,
46
- searchValue,
47
- getBusinesses,
48
- handleChangeBusinessType,
49
- handleBusinessClick,
50
- paginationProps,
51
- handleChangeSearch,
52
- } = props;
48
+ const {
49
+ navigation,
50
+ businessesList,
51
+ searchValue,
52
+ getBusinesses,
53
+ handleChangeBusinessType,
54
+ handleBusinessClick,
55
+ paginationProps,
56
+ handleChangeSearch,
57
+ } = props;
53
58
 
54
- const theme = useTheme();
59
+ const theme = useTheme();
55
60
 
56
61
 
57
- const styles = StyleSheet.create({
58
- container: {
59
- marginBottom: 0,
60
- },
61
- welcome: {
62
- flex: 1,
63
- flexDirection: 'row',
64
- },
65
- inputStyle: {
66
- backgroundColor: theme.colors.inputDisabled,
67
- flex: 1,
68
- },
69
- wrapperOrderOptions: {
70
- width: '100%',
71
- flexDirection: 'row',
72
- justifyContent: 'space-between',
73
- marginBottom: 10,
74
- zIndex: 100,
75
- },
76
- borderStyle: {
77
- borderColor: theme.colors.backgroundGray,
78
- borderWidth: 1,
79
- borderRadius: 10,
80
- },
81
- searchInput: {
82
- fontSize: 12,
83
- }
84
- });
62
+ const styles = StyleSheet.create({
63
+ container: {
64
+ marginBottom: 0,
65
+ },
66
+ welcome: {
67
+ flex: 1,
68
+ flexDirection: 'row',
69
+ },
70
+ inputStyle: {
71
+ backgroundColor: theme.colors.inputDisabled,
72
+ flex: 1,
73
+ },
74
+ wrapperOrderOptions: {
75
+ width: '100%',
76
+ flexDirection: 'row',
77
+ justifyContent: 'flex-start',
78
+ marginBottom: 10,
79
+ zIndex: 100,
80
+ },
81
+ borderStyle: {
82
+ borderColor: theme.colors.backgroundGray,
83
+ borderWidth: 1,
84
+ borderRadius: 10,
85
+ },
86
+ searchInput: {
87
+ fontSize: 12,
88
+ },
89
+ btnBackArrow: {
90
+ borderWidth: 0,
91
+ backgroundColor: theme.colors.clear,
92
+ shadowColor: theme.colors.clear,
93
+ paddingLeft: 40,
94
+ paddingRight: 40
95
+ },
96
+ headerStyle: {
97
+ height: 260,
98
+ paddingHorizontal: 40
99
+ },
100
+ });
85
101
 
86
102
 
87
- const [, t] = useLanguage();
88
- const [{ user, auth }] = useSession();
89
- const [orderState] = useOrder();
90
- const [{ configs }] = useConfig();
91
- const [{ parseDate }] = useUtils();
103
+ const [, t] = useLanguage();
104
+ const [{ user, auth }] = useSession();
105
+ const [orderState] = useOrder();
106
+ const [{ configs }] = useConfig();
107
+ const [{ parseDate }] = useUtils();
92
108
 
93
- const { top } = useSafeAreaInsets();
109
+ const { top } = useSafeAreaInsets();
94
110
 
95
- const [featuredBusiness, setFeaturedBusinesses] = useState(Array);
111
+ const [featuredBusiness, setFeaturedBusinesses] = useState(Array);
96
112
 
97
- // const timerId = useRef<any>(false)
98
- // const panResponder = useRef(
99
- // PanResponder.create({
100
- // onMoveShouldSetPanResponder: (e, gestureState) => {
101
- // const {dx, dy} = gestureState;
102
- // resetInactivityTimeout()
103
- // return (Math.abs(dx) > 20) || (Math.abs(dy) > 20);
104
- // },
105
- // })
106
- // ).current
113
+ const configTypes = configs?.order_types_allowed?.value.split('|').map((value: any) => Number(value)) || [];
107
114
 
108
- const configTypes =
109
- configs?.order_types_allowed?.value
110
- .split('|')
111
- .map((value: any) => Number(value)) || [];
115
+ const handleScroll = ({ nativeEvent }: any) => {
116
+ const y = nativeEvent.contentOffset.y;
117
+ const height = nativeEvent.contentSize.height;
118
+ const hasMore = !(
119
+ paginationProps.totalPages === paginationProps.currentPage
120
+ );
112
121
 
113
- const handleScroll = ({ nativeEvent }: any) => {
114
- const y = nativeEvent.contentOffset.y;
115
- const height = nativeEvent.contentSize.height;
116
- const hasMore = !(
117
- paginationProps.totalPages === paginationProps.currentPage
118
- );
122
+ if (y + PIXELS_TO_SCROLL > height && !businessesList.loading && hasMore) {
123
+ getBusinesses();
124
+ }
125
+ };
119
126
 
120
- if (y + PIXELS_TO_SCROLL > height && !businessesList.loading && hasMore) {
121
- getBusinesses();
122
- }
123
- };
127
+ useEffect(() => {
128
+ if (businessesList.businesses.length > 0) {
129
+ const fb = businessesList.businesses.filter((b) => b.featured == true);
130
+ const ary = [];
131
+ while (fb.length > 0) {
132
+ ary.push(fb.splice(0, 2));
133
+ }
134
+ setFeaturedBusinesses(ary);
135
+ }
136
+ }, [businessesList.businesses]);
124
137
 
125
- useEffect(() => {
126
- if (businessesList.businesses.length > 0) {
127
- const fb = businessesList.businesses.filter((b) => b.featured == true);
128
- const ary = [];
129
- while (fb.length > 0) {
130
- ary.push(fb.splice(0, 2));
131
- }
132
- setFeaturedBusinesses(ary);
133
- }
134
- }, [businessesList.businesses]);
135
- // const resetInactivityTimeout = () => {
136
- // clearTimeout(timerId.current)
137
- // timerId.current = setInterval(() => {
138
- // getBusinesses(true)
139
- // }, 600000)
140
- // }
138
+ return (
139
+ <ScrollView
140
+ style={styles.container}
141
+ onScroll={(e) => handleScroll(e)}
142
+ showsVerticalScrollIndicator={false}
143
+ >
144
+ <HeaderWrapper
145
+ source={theme.images.backgrounds.business_list_header}
146
+ >
147
+ {!auth && (
148
+ <TopHeader style={{ top: top }}>
149
+ <NavBar
150
+ style={{ paddingBottom: 0, marginLeft: 20, backgroundColor: 'transparent' }}
151
+ btnStyle={{ backgroundColor: 'transparent' }}
152
+ leftImageStyle={{ tintColor: theme.colors.white }}
153
+ onActionLeft={() => navigation?.canGoBack() && navigation.goBack()}
154
+ />
155
+ </TopHeader>
156
+ )}
141
157
 
142
- // useEffect(() => {
143
- // resetInactivityTimeout()
144
- // }, [])
145
-
146
- return (
147
- <ScrollView style={styles.container} onScroll={(e) => handleScroll(e)} showsVerticalScrollIndicator={false}>
148
- <HeaderWrapper
149
- source={theme.images.backgrounds.business_list_header}
150
- style={{ paddingTop: top + 20 }}>
151
- {!auth && (
152
- <TouchableOpacity onPress={() => navigation?.canGoBack() && navigation.goBack()} style={{ position: 'absolute', marginStart: 40, paddingVertical: 20 }}>
153
- <OIcon src={theme.images.general.arrow_left} width={20} style={{ tintColor: theme.colors.white }} />
154
- </TouchableOpacity>
155
- )}
156
-
157
- <Search>
158
- <AddressInput
159
- onPress={() =>
160
- auth
161
- ? navigation.navigate('AddressList', { isFromBusinesses: true })
162
- : navigation.navigate('AddressForm', {
163
- address: orderState.options?.address,
164
- isFromBusinesses: true,
165
- })
166
- }>
167
- <OIcon
168
- src={theme.images.general.pin}
169
- color={theme.colors.disabled}
170
- width={16}
171
- style={{ marginRight: 10 }}
172
- />
173
- <OText size={12} numberOfLines={1} style={{ width: '90%' }}>
174
- {orderState?.options?.address?.address}
175
- </OText>
176
- </AddressInput>
177
- </Search>
178
- <OrderControlContainer>
179
- <View style={styles.wrapperOrderOptions}>
180
- <OrderTypeSelector configTypes={configTypes} />
181
- <WrapMomentOption
182
- onPress={() => navigation.navigate('MomentOption')}>
183
- <OText
184
- size={12}
185
- numberOfLines={1}
186
- ellipsizeMode="tail"
187
- color={theme.colors.textSecondary}>
188
- {orderState.options?.moment
189
- ? parseDate(orderState.options?.moment, {
190
- outputFormat:
191
- configs?.format_time?.value === '12'
192
- ? 'MM/DD hh:mma'
193
- : 'MM/DD HH:mm',
194
- })
195
- : t('ASAP_ABBREVIATION', 'ASAP')}
196
- </OText>
197
- <OIcon
198
- src={theme.images.general.arrow_down}
199
- width={10}
200
- style={{ marginStart: 8 }}
201
- />
202
- </WrapMomentOption>
203
-
204
- <SearchBar
205
- onSearch={handleChangeSearch}
206
- searchValue={searchValue}
207
- lazyLoad
208
- isCancelXButtonShow={!!searchValue}
209
- borderStyle={styles.borderStyle}
210
- onCancel={() => handleChangeSearch('')}
211
- placeholder={t('SEARCH', 'Search')}
212
- height={26}
213
- inputStyle={{ ...styles.searchInput, ...Platform.OS === 'ios' ? {} : { paddingBottom: 4 } }}
214
- />
215
- </View>
216
- </OrderControlContainer>
217
- </HeaderWrapper>
218
- {featuredBusiness && featuredBusiness.length > 0 && (
219
- <FeaturedWrapper>
220
- <OText size={16} style={{ marginLeft: 40 }} weight={Platform.OS === 'ios' ? '600' : 'bold'}>{t('FEATURED_BUSINESS', 'Featured business')}</OText>
221
- <ScrollView
222
- showsHorizontalScrollIndicator={false}
223
- nestedScrollEnabled
224
- horizontal contentContainerStyle={{ paddingHorizontal: 40 }}>
225
- {featuredBusiness.map((bAry: any, idx) => (
226
- <View key={'f-listing_' + idx}>
227
- <BusinessFeaturedController
228
- key={bAry[0].id}
229
- business={bAry[0]}
230
- handleCustomClick={handleBusinessClick}
231
- orderType={orderState?.options?.type}
232
- />
233
- {bAry.length > 1 && (
234
- <BusinessFeaturedController
235
- key={bAry[1].id}
236
- business={bAry[1]}
237
- handleCustomClick={handleBusinessClick}
238
- orderType={orderState?.options?.type}
239
- />
240
- )}
241
- </View>
242
- ))}
243
- </ScrollView>
244
- </FeaturedWrapper>
245
- )}
246
- <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100 }} />
247
- <ListWrapper>
248
- <BusinessTypeFilter
249
- images={props.images}
250
- businessTypes={props.businessTypes}
251
- defaultBusinessType={props.defaultBusinessType}
252
- handleChangeBusinessType={handleChangeBusinessType}
253
- />
254
- {!businessesList.loading && businessesList.businesses.length === 0 && (
255
- <NotFoundSource
256
- content={t(
257
- 'NOT_FOUND_BUSINESSES',
258
- 'No businesses to delivery / pick up at this address, please change filters or change address.',
259
- )}
260
- />
261
- )}
262
- {businessesList.businesses?.map(
263
- (business: any) =>
264
- !business.featured && (
265
- <BusinessController
266
- key={business.id}
267
- business={business}
268
- handleCustomClick={handleBusinessClick}
269
- orderType={orderState?.options?.type}
270
- />
271
- ),
272
- )}
273
- {businessesList.loading && (
274
- <>
275
- {[
276
- ...Array(
277
- paginationProps.nextPageItems
278
- ? paginationProps.nextPageItems
279
- : 8,
280
- ).keys(),
281
- ].map((item, i) => (
282
- <Placeholder
283
- Animation={Fade}
284
- key={i}
285
- style={{ marginBottom: 20 }}>
286
- <View style={{ width: '100%' }}>
287
- <PlaceholderLine
288
- height={200}
289
- style={{ marginBottom: 20, borderRadius: 25 }}
290
- />
291
- <View style={{ paddingHorizontal: 10 }}>
292
- <View
293
- style={{
294
- flexDirection: 'row',
295
- justifyContent: 'space-between',
296
- }}>
297
- <PlaceholderLine
298
- height={25}
299
- width={40}
300
- style={{ marginBottom: 10 }}
301
- />
302
- <PlaceholderLine
303
- height={25}
304
- width={20}
305
- style={{ marginBottom: 10 }}
306
- />
307
- </View>
308
- <PlaceholderLine
309
- height={20}
310
- width={30}
311
- style={{ marginBottom: 10 }}
312
- />
313
- <PlaceholderLine
314
- height={20}
315
- width={80}
316
- style={{ marginBottom: 10 }}
317
- />
318
- </View>
319
- </View>
320
- </Placeholder>
321
- ))}
322
- </>
323
- )}
324
- </ListWrapper>
325
- </ScrollView>
326
- );
158
+ <AddressInput
159
+ onPress={() => auth
160
+ ? navigation.navigate('AddressList', { isFromBusinesses: true })
161
+ : navigation.navigate('AddressForm', {
162
+ address: orderState.options?.address,
163
+ isFromBusinesses: true,
164
+ })
165
+ }
166
+ style={{ marginTop: !auth ? 36 : top > 0 ? 0 : 20 }}
167
+ activeOpacity={0.8}
168
+ >
169
+ <OIcon src={theme.images.general.pin} width={16} color={theme.colors.textSecondary} />
170
+ <OText color={theme.colors.textPrimary} numberOfLines={1} lineHeight={20} weight={Platform.OS === 'android' ? 'bold' : '600'} style={{ paddingStart: 10, flexBasis: '90%' }}>
171
+ {orderState?.options?.address?.address}
172
+ </OText>
173
+ </AddressInput>
174
+ <OrderControlContainer>
175
+ <View style={styles.wrapperOrderOptions}>
176
+ <DropOptionButton
177
+ activeOpacity={0.7}
178
+ onPress={() => navigation.navigate('OrderTypes', { configTypes: configTypes })}
179
+ >
180
+ <OText
181
+ size={12}
182
+ numberOfLines={1}
183
+ ellipsizeMode={'tail'}
184
+ color={theme.colors.textSecondary}
185
+ >
186
+ {t(getTypesText(orderState?.options?.type || 1), 'Delivery')}
187
+ </OText>
188
+ <OIcon
189
+ src={theme.images.general.arrow_down}
190
+ width={10}
191
+ style={{ marginStart: 8 }}
192
+ />
193
+ </DropOptionButton>
194
+ <DropOptionButton
195
+ onPress={() => navigation.navigate('MomentOption')}>
196
+ <OText
197
+ size={12}
198
+ numberOfLines={1}
199
+ ellipsizeMode="tail"
200
+ color={theme.colors.textSecondary}>
201
+ {orderState.options?.moment
202
+ ? parseDate(orderState.options?.moment, {
203
+ outputFormat:
204
+ configs?.format_time?.value === '12'
205
+ ? 'MM/DD hh:mma'
206
+ : 'MM/DD HH:mm',
207
+ })
208
+ : t('ASAP_ABBREVIATION', 'ASAP')}
209
+ </OText>
210
+ <OIcon
211
+ src={theme.images.general.arrow_down}
212
+ width={10}
213
+ style={{ marginStart: 8 }}
214
+ />
215
+ </DropOptionButton>
216
+ </View>
217
+ </OrderControlContainer>
218
+ </HeaderWrapper>
219
+ <WrapSearchBar>
220
+ <SearchBar
221
+ onSearch={handleChangeSearch}
222
+ isCancelXButtonShow
223
+ noBorderShow
224
+ placeholder={t('SEARCH', 'Search')}
225
+ lazyLoad
226
+ />
227
+ </WrapSearchBar>
228
+ <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100 }} />
229
+ {featuredBusiness && featuredBusiness.length > 0 && (
230
+ <FeaturedWrapper>
231
+ <OText size={16} style={{ marginLeft: 40 }} weight={Platform.OS === 'ios' ? '600' : 'bold'}>{t('FEATURED_BUSINESS', 'Featured business')}</OText>
232
+ <ScrollView
233
+ showsHorizontalScrollIndicator={false}
234
+ nestedScrollEnabled
235
+ horizontal contentContainerStyle={{ paddingHorizontal: 40 }}>
236
+ {featuredBusiness.map((bAry: any, idx) => (
237
+ <View key={'f-listing_' + idx}>
238
+ <BusinessFeaturedController
239
+ key={bAry[0].id}
240
+ business={bAry[0]}
241
+ handleCustomClick={handleBusinessClick}
242
+ orderType={orderState?.options?.type}
243
+ />
244
+ {bAry.length > 1 && (
245
+ <BusinessFeaturedController
246
+ key={bAry[1].id}
247
+ business={bAry[1]}
248
+ handleCustomClick={handleBusinessClick}
249
+ orderType={orderState?.options?.type}
250
+ />
251
+ )}
252
+ </View>
253
+ ))}
254
+ </ScrollView>
255
+ </FeaturedWrapper>
256
+ )}
257
+ <View style={{ height: 8, backgroundColor: theme.colors.backgroundGray100 }} />
258
+ <ListWrapper>
259
+ <BusinessTypeFilter
260
+ images={props.images}
261
+ businessTypes={props.businessTypes}
262
+ defaultBusinessType={props.defaultBusinessType}
263
+ handleChangeBusinessType={handleChangeBusinessType}
264
+ />
265
+ {!businessesList.loading && businessesList.businesses.length === 0 && (
266
+ <NotFoundSource
267
+ content={t(
268
+ 'NOT_FOUND_BUSINESSES',
269
+ 'No businesses to delivery / pick up at this address, please change filters or change address.',
270
+ )}
271
+ />
272
+ )}
273
+ {businessesList.businesses?.map(
274
+ (business: any) =>
275
+ !business.featured && (
276
+ <BusinessController
277
+ key={business.id}
278
+ business={business}
279
+ handleCustomClick={handleBusinessClick}
280
+ orderType={orderState?.options?.type}
281
+ />
282
+ ),
283
+ )}
284
+ {businessesList.loading && (
285
+ <>
286
+ {[
287
+ ...Array(
288
+ paginationProps.nextPageItems
289
+ ? paginationProps.nextPageItems
290
+ : 8,
291
+ ).keys(),
292
+ ].map((item, i) => (
293
+ <Placeholder
294
+ Animation={Fade}
295
+ key={i}
296
+ style={{ marginBottom: 20 }}>
297
+ <View style={{ width: '100%' }}>
298
+ <PlaceholderLine
299
+ height={200}
300
+ style={{ marginBottom: 20, borderRadius: 25 }}
301
+ />
302
+ <View style={{ paddingHorizontal: 10 }}>
303
+ <View
304
+ style={{
305
+ flexDirection: 'row',
306
+ justifyContent: 'space-between',
307
+ }}>
308
+ <PlaceholderLine
309
+ height={25}
310
+ width={40}
311
+ style={{ marginBottom: 10 }}
312
+ />
313
+ <PlaceholderLine
314
+ height={25}
315
+ width={20}
316
+ style={{ marginBottom: 10 }}
317
+ />
318
+ </View>
319
+ <PlaceholderLine
320
+ height={20}
321
+ width={30}
322
+ style={{ marginBottom: 10 }}
323
+ />
324
+ <PlaceholderLine
325
+ height={20}
326
+ width={80}
327
+ style={{ marginBottom: 10 }}
328
+ />
329
+ </View>
330
+ </View>
331
+ </Placeholder>
332
+ ))}
333
+ </>
334
+ )}
335
+ </ListWrapper>
336
+ </ScrollView>
337
+ );
327
338
  };
328
339
 
329
340
  export const BusinessesListing = (props: BusinessesListingParams) => {
330
- const BusinessesListingProps = {
331
- ...props,
332
- isForceSearch: Platform.OS === 'ios',
333
- UIComponent: BusinessesListingUI,
334
- };
341
+ const BusinessesListingProps = {
342
+ ...props,
343
+ isForceSearch: Platform.OS === 'ios',
344
+ UIComponent: BusinessesListingUI,
345
+ };
335
346
 
336
- return <BusinessesListingController {...BusinessesListingProps} />;
347
+ return <BusinessesListingController {...BusinessesListingProps} />;
337
348
  };