ordering-ui-react-native 0.16.26 → 0.16.27-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 (199) hide show
  1. package/package.json +8 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +8 -14
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessInformation/index.tsx +33 -4
  8. package/src/components/BusinessInformation/styles.tsx +2 -2
  9. package/src/components/BusinessProductsList/index.tsx +10 -10
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +2 -1
  12. package/src/components/LanguageSelector/index.tsx +21 -16
  13. package/src/components/LoginForm/index.tsx +15 -0
  14. package/src/components/Messages/index.tsx +2 -2
  15. package/src/components/NotificationSetting/index.tsx +85 -0
  16. package/src/components/OrderDetails/index.tsx +2 -20
  17. package/src/components/OrdersOption/index.tsx +54 -56
  18. package/src/components/PaymentOptions/index.tsx +335 -365
  19. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  20. package/src/components/ReviewDriver/index.tsx +1 -1
  21. package/src/components/ReviewOrder/index.tsx +2 -1
  22. package/src/components/ReviewProducts/index.tsx +11 -0
  23. package/src/components/SignupForm/index.tsx +15 -0
  24. package/src/components/SingleProductReview/index.tsx +8 -5
  25. package/src/components/StripeElementsForm/index.tsx +25 -16
  26. package/src/components/VerifyPhone/styles.tsx +1 -2
  27. package/src/components/shared/OBottomPopup.tsx +6 -2
  28. package/src/index.tsx +2 -0
  29. package/src/pages/BusinessesListing.tsx +7 -6
  30. package/src/pages/OrderDetails.tsx +1 -1
  31. package/src/pages/ReviewDriver.tsx +2 -2
  32. package/src/pages/ReviewOrder.tsx +2 -2
  33. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  34. package/src/utils/index.tsx +0 -1
  35. package/themes/business/index.tsx +4 -0
  36. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  37. package/themes/business/src/components/Chat/index.tsx +42 -34
  38. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  39. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  40. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  41. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  42. package/themes/business/src/components/MapView/index.tsx +12 -1
  43. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  44. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  45. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  46. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  47. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  48. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  49. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  50. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  51. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  52. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  53. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  54. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  55. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  56. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  57. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  58. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  59. package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
  60. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  61. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  62. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  63. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  64. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  65. package/themes/business/src/components/shared/OModal.tsx +40 -37
  66. package/themes/business/src/types/index.tsx +15 -9
  67. package/themes/business/src/utils/index.tsx +10 -0
  68. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  69. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  70. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  71. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  72. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  73. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  74. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  75. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  76. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  77. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  78. package/themes/kiosk/src/types/index.d.ts +2 -0
  79. package/themes/original/index.tsx +12 -0
  80. package/themes/original/src/components/AddressForm/index.tsx +139 -135
  81. package/themes/original/src/components/AddressList/index.tsx +1 -1
  82. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  83. package/themes/original/src/components/BusinessBasicInformation/index.tsx +311 -161
  84. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  85. package/themes/original/src/components/BusinessController/index.tsx +190 -113
  86. package/themes/original/src/components/BusinessController/styles.tsx +0 -7
  87. package/themes/original/src/components/BusinessItemAccordion/index.tsx +4 -4
  88. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  89. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  90. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  91. package/themes/original/src/components/BusinessListingSearch/index.tsx +81 -128
  92. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  93. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  94. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  95. package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
  96. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  97. package/themes/original/src/components/BusinessProductsListing/index.tsx +293 -177
  98. package/themes/original/src/components/BusinessProductsListing/styles.tsx +23 -11
  99. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  100. package/themes/original/src/components/BusinessTypeFilter/index.tsx +109 -40
  101. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  102. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  103. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -10
  104. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +676 -0
  105. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  106. package/themes/original/src/components/BusinessesListing/index.tsx +105 -519
  107. package/themes/original/src/components/Cart/index.tsx +42 -10
  108. package/themes/original/src/components/Cart/styles.tsx +4 -0
  109. package/themes/original/src/components/CartContent/index.tsx +22 -16
  110. package/themes/original/src/components/Checkout/index.tsx +98 -57
  111. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  112. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  113. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  114. package/themes/original/src/components/Favorite/index.tsx +1 -0
  115. package/themes/original/src/components/FavoriteList/index.tsx +32 -2
  116. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  117. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  118. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  119. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  120. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  121. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  122. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  123. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -72
  124. package/themes/original/src/components/LoginForm/index.tsx +82 -44
  125. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  126. package/themes/original/src/components/Messages/index.tsx +17 -17
  127. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  128. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  129. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  130. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  131. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  132. package/themes/original/src/components/MyOrders/index.tsx +70 -6
  133. package/themes/original/src/components/NavBar/index.tsx +15 -9
  134. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  135. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  136. package/themes/original/src/components/Notifications/index.tsx +148 -0
  137. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  138. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  139. package/themes/original/src/components/OrderDetails/index.tsx +190 -35
  140. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  141. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  142. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  143. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  144. package/themes/original/src/components/OrderSummary/index.tsx +1 -34
  145. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  146. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  147. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +100 -106
  148. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +17 -12
  149. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  150. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  151. package/themes/original/src/components/PaymentOptions/index.tsx +41 -23
  152. package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
  153. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  154. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  155. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  156. package/themes/original/src/components/ProductForm/index.tsx +633 -664
  157. package/themes/original/src/components/ProductForm/styles.tsx +9 -8
  158. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  159. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  160. package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
  161. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  162. package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
  163. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  164. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  165. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  166. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  167. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  168. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  169. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  170. package/themes/original/src/components/ServiceForm/index.tsx +637 -0
  171. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  172. package/themes/original/src/components/SignupForm/index.tsx +350 -206
  173. package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
  174. package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
  175. package/themes/original/src/components/SingleProductCard/index.tsx +207 -107
  176. package/themes/original/src/components/SingleProductCard/styles.tsx +1 -10
  177. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  178. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  179. package/themes/original/src/components/StripeElementsForm/index.tsx +15 -7
  180. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
  181. package/themes/original/src/components/UserDetails/index.tsx +31 -17
  182. package/themes/original/src/components/UserFormDetails/index.tsx +74 -81
  183. package/themes/original/src/components/UserProfile/index.tsx +54 -29
  184. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  185. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  186. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  187. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  188. package/themes/original/src/components/Wallets/index.tsx +176 -164
  189. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  190. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  191. package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
  192. package/themes/original/src/components/shared/OButton.tsx +10 -3
  193. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  194. package/themes/original/src/components/shared/OInput.tsx +3 -2
  195. package/themes/original/src/layouts/Container.tsx +13 -9
  196. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  197. package/themes/original/src/types/index.tsx +121 -30
  198. package/themes/original/src/utils/index.tsx +77 -0
  199. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -1,24 +1,78 @@
1
1
  import React, { useEffect, useState } from 'react'
2
- import { View } from 'react-native'
3
- import { PlaceSpot as PlaceSpotController, useLanguage } from 'ordering-components/native'
2
+ import { View, StyleSheet } from 'react-native'
3
+ import { PlaceSpot as PlaceSpotController, useLanguage, useOrder, useToast, ToastType } from 'ordering-components/native'
4
4
  import { PlaceGroupContainer, PlaceSpotContainer } from './styles'
5
5
  import { NotFoundSource } from '../NotFoundSource'
6
- import { OText, ODropDown } from '../shared'
6
+ import { OText, ODropDown, OInput, OButton } from '../shared'
7
7
  import { Placeholder, PlaceholderLine } from 'rn-placeholder'
8
8
  import { PlaceSpotParams } from '../../types'
9
+ import { useTheme } from 'styled-components/native'
10
+ import SelectDropdown from 'react-native-select-dropdown'
11
+ import IconAntDesign from 'react-native-vector-icons/AntDesign'
9
12
 
10
13
  const PlaceSpotUI = (props: PlaceSpotParams) => {
11
14
  const {
12
- isOpenPlaceSpot,
13
15
  cart,
16
+ orderTypes,
14
17
  placesState,
15
18
  handleChangePlace,
16
- getPlacesList,
17
- setOpenPlaceModal
19
+ spotNumber,
20
+ spotState,
21
+ isCheckout,
22
+ vehicle,
23
+ isInputMode,
24
+ setSpotNumber,
25
+ setVehicle,
26
+ handleChangeSpot
18
27
  } = props
19
28
 
29
+ const theme = useTheme()
20
30
  const [, t] = useLanguage()
31
+ const [orderState] = useOrder()
32
+ const [, { showToast }] = useToast();
33
+
21
34
  const [placeGroupSelected, setPlaceGroupSelected] = useState<any>(null)
35
+ const vehicleInputAllowed = [4, 5]
36
+
37
+ const currentOrderType = isCheckout ? orderState?.options?.type : cart?.delivery_type
38
+ const isEatin = currentOrderType === 3
39
+ const isDriveThru = currentOrderType === 5
40
+ const placeholderText = isEatin
41
+ ? t('EATIN_SPOT_NUMBER', 'Table number')
42
+ : isDriveThru
43
+ ? t('DRIVE_THRU_SPOT_NUMBER', 'Drive thru lane')
44
+ : t('CURBSIDE_SPOT_NUMBER', 'Spot number')
45
+
46
+ const styles = StyleSheet.create({
47
+ selectOption: {
48
+ backgroundColor: theme.colors.backgroundGray100,
49
+ borderRadius: 7.6,
50
+ paddingVertical: 10,
51
+ paddingHorizontal: 14,
52
+ flexDirection: 'row-reverse',
53
+ alignItems: 'center',
54
+ justifyContent: 'space-between',
55
+ height: 50,
56
+ width: '100%'
57
+ },
58
+ optionWrapper: {
59
+ marginBottom: 20
60
+ }
61
+ })
62
+
63
+ const vehicleTypeList: any = [
64
+ { key: 'car', text: t('VEHICLE_TYPE_CAR', 'Car') },
65
+ { key: 'truck', text: t('VEHICLE_TYPE_TRUCK', 'Truck') },
66
+ { key: 'suv', text: t('VEHICLE_TYPE_SUV', 'SUV') },
67
+ { key: 'van', text: t('VEHICLE_TYPE_VAN', 'Van') },
68
+ { key: 'motorcycle', text: t('VEHICLE_TYPE_MOTORCYCLE', 'Motorcycle') }
69
+ ]
70
+
71
+ const vehicleInputList = [
72
+ { key: 'model', text: t('VEHICLE_MODEL', 'Model') },
73
+ { key: 'car_registration', text: t('VEHICLE_CAR_REGISTRATION', 'Car registration') },
74
+ { key: 'color', text: t('VEHICLE_COLOR', 'Color') }
75
+ ]
22
76
 
23
77
  const getPlacesGroups = () => {
24
78
  const groups = placesState.placeGroups?.filter((group: any) => group?.enabled && placesState?.places?.find((place: any) => place?.enabled && place?.place_group_id === group?.id))
@@ -39,10 +93,37 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
39
93
  }
40
94
 
41
95
  const handlerChangePlace = (place: any) => {
42
- setOpenPlaceModal(false)
43
96
  handleChangePlace(place)
44
97
  }
45
98
 
99
+ const onChangeSpot = () => {
100
+ if (orderState.loading) return
101
+ if (!Number.isInteger(Number(spotNumber))) {
102
+ showToast(ToastType.Error, t('VALIDATION_ERROR_INTEGER', 'The _attribute_ must be an integer.').replace('_attribute_', placeholderText))
103
+ return
104
+ }
105
+ if (Number(spotNumber) < 0) {
106
+ showToast(ToastType.Error, t('VALIDATION_MUST_BIGGER_ZERO', '_attribute_ must be bigger than zero').replace('_attribute_', placeholderText))
107
+ return
108
+ }
109
+ const isVehicle = Object.values(vehicle).every(e => e)
110
+ const bodyToSend: any = {}
111
+ spotNumber && (bodyToSend.spot_number = spotNumber)
112
+ isVehicle && (bodyToSend.vehicle = vehicle)
113
+
114
+ if (Object.keys(bodyToSend).length) {
115
+ handleChangeSpot({ bodyToSend, isCheckout: !!isCheckout })
116
+ }
117
+ }
118
+
119
+ const manageErrorsToShow = (array = []) => {
120
+ let stringError = ''
121
+ const list = Array.isArray(array) ? array : Object.values(array)
122
+ list.map((item: any, i: number) => {
123
+ stringError += (i + 1) === array.length ? `- ${item?.message || item}` : `- ${item?.message || item}\n`
124
+ })
125
+ return stringError;
126
+ }
46
127
 
47
128
  useEffect(() => {
48
129
  if (!placesState?.loading) {
@@ -52,51 +133,157 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
52
133
  }, [placesState])
53
134
 
54
135
  useEffect(() => {
55
- getPlacesList()
56
- }, [isOpenPlaceSpot])
136
+ if (spotState?.error?.length > 0) {
137
+ const errorText = manageErrorsToShow(spotState?.error)
138
+ showToast(ToastType.Error, errorText)
139
+ }
140
+ }, [spotState?.error])
57
141
 
58
142
  return (
59
143
  <PlaceSpotContainer>
60
- {(placesState.error || placesState?.placeGroups?.length === 0) && !placesState?.loading && (
61
- <NotFoundSource
62
- content={t('NO_PLACES_THIS_BUSINESS', 'There are not places for this business')}
63
- />
64
- )}
65
- {placesState?.loading && (
66
- <Placeholder>
67
- <PlaceGroupContainer>
68
- <PlaceholderLine width={100} height={25} />
69
- <PlaceholderLine height={30} />
70
- </PlaceGroupContainer>
71
- <View>
72
- <PlaceholderLine width={120} height={25} />
73
- <PlaceholderLine height={30} />
144
+ {isInputMode ? (
145
+ <PlaceGroupContainer>
146
+ <OText color={theme.colors.textNormal} size={16} weight='500' mBottom={15}>{orderTypes[currentOrderType]}</OText>
147
+ {vehicleInputAllowed.includes(currentOrderType) && (
148
+ <>
149
+ <View style={styles.optionWrapper}>
150
+ <OText color={theme.colors.textNormal} size={12} mBottom={5}>{t('VEHICLE_TYPE', 'Vehicle type')}</OText>
151
+ <SelectDropdown
152
+ defaultButtonText={t('SELECT_AN_OPTION', 'Select an option')}
153
+ data={vehicleTypeList}
154
+ defaultValue={vehicle?.type ? vehicleTypeList.find((obj: any) => obj.key === vehicle.type) : null}
155
+ onSelect={(selectedItem, index) => {
156
+ setVehicle({ ...vehicle, type: selectedItem.key ?? '' })
157
+ }}
158
+ buttonTextAfterSelection={(selectedItem, index) => {
159
+ return selectedItem.text
160
+ }}
161
+ rowTextForSelection={(item, index) => {
162
+ return item.text
163
+ }}
164
+ buttonStyle={styles.selectOption}
165
+ buttonTextStyle={{
166
+ color: theme.colors.disabled,
167
+ fontSize: 14,
168
+ textAlign: 'left',
169
+ marginHorizontal: 0
170
+ }}
171
+ dropdownStyle={{
172
+ borderRadius: 8,
173
+ borderColor: theme.colors.lightGray
174
+ }}
175
+ rowStyle={{
176
+ borderBottomColor: theme.colors.backgroundGray100,
177
+ backgroundColor: theme.colors.backgroundGray100,
178
+ height: 40,
179
+ flexDirection: 'column',
180
+ alignItems: 'flex-start',
181
+ paddingTop: 8,
182
+ paddingHorizontal: 14
183
+ }}
184
+ rowTextStyle={{
185
+ color: theme.colors.disabled,
186
+ fontSize: 14,
187
+ marginHorizontal: 0
188
+ }}
189
+ renderDropdownIcon={() => {
190
+ return (
191
+ <IconAntDesign
192
+ name='down'
193
+ color={theme.colors.textThird}
194
+ size={16}
195
+ />
196
+ )
197
+ }}
198
+ />
199
+ </View>
200
+ {vehicleInputList.map((input: any) => (
201
+ <View key={input.key}>
202
+ <OText color={theme.colors.textNormal} size={12} mBottom={5}>{input.text}</OText>
203
+ <OInput
204
+ placeholder={input.text}
205
+ value={vehicle[input.key] ?? ''}
206
+ onChange={(value: string) => setVehicle({ ...vehicle, [input.key]: value })}
207
+ style={{
208
+ borderColor: theme.colors.border,
209
+ borderRadius: 7.6,
210
+ marginBottom: 20
211
+ }}
212
+ inputStyle={{ fontSize: 12, color: theme.colors.textNormal }}
213
+ />
214
+ </View>
215
+ ))}
216
+ </>
217
+ )}
218
+ <OText color={theme.colors.textNormal} size={12} mBottom={5}>{placeholderText}</OText>
219
+ <OInput
220
+ value={spotNumber?.toString() ?? ''}
221
+ placeholder={placeholderText}
222
+ type='number-pad'
223
+ onChange={(value: string) => setSpotNumber(value)}
224
+ style={{
225
+ borderColor: theme.colors.border,
226
+ borderRadius: 7.6
227
+ }}
228
+ inputStyle={{ fontSize: 12, color: theme.colors.textNormal }}
229
+ />
230
+ <View style={{ alignItems: 'flex-start' }}>
231
+ <OButton
232
+ onClick={() => onChangeSpot()}
233
+ bgColor={theme.colors.primary}
234
+ borderColor={theme.colors.primary}
235
+ textStyle={{ color: 'white', fontSize: 12 }}
236
+ imgRightSrc={null}
237
+ text={t('UPDATE_SPOT_NUMBER', 'Update')}
238
+ isDisabled={(!spotNumber && !Object.values(vehicle).every(e => e))}
239
+ style={{ borderRadius: 7.6, height: 44, shadowOpacity: 0, marginTop: 20 }}
240
+ />
74
241
  </View>
75
- </Placeholder>
76
- )}
77
- {!(placesState.error || placesState?.placeGroups?.length === 0) && !placesState?.loading && (
242
+ </PlaceGroupContainer>
243
+ ) : (
78
244
  <>
79
- <PlaceGroupContainer>
80
- <OText size={16} mBottom={10}>{t('PLACE_GROUP', 'Place group')}</OText>
81
- <ODropDown
82
- placeholder={t('PLACE_GROUP', 'Place group')}
83
- options={getPlacesGroups()}
84
- onSelect={(group: any) => setPlaceGroupSelected(group)}
85
- defaultValue={placeGroupSelected ?? cart?.place}
86
- isModal
245
+ {(placesState.error || placesState?.placeGroups?.length === 0) && !placesState?.loading && (
246
+ <NotFoundSource
247
+ content={t('NO_PLACES_THIS_BUSINESS', 'There are not places for this business')}
87
248
  />
88
- </PlaceGroupContainer>
89
- {placeGroupSelected && (
90
- <View>
91
- <OText size={16} mBottom={10}>{t('SELECT_YOUR_SPOT', 'Select your spot')}</OText>
92
- <ODropDown
93
- onSelect={(place: any) => handlerChangePlace(place)}
94
- placeholder={t('SELECT_YOUR_SPOT', 'Select your spot')}
95
- options={getPlaces()}
96
- defaultValue={placesState?.places?.find((place : any) => place?.id === cart?.place_id)}
97
- isModal
98
- />
99
- </View>
249
+ )}
250
+ {placesState?.loading && (
251
+ <Placeholder>
252
+ <PlaceGroupContainer>
253
+ <PlaceholderLine width={100} height={25} />
254
+ <PlaceholderLine height={30} />
255
+ </PlaceGroupContainer>
256
+ <View>
257
+ <PlaceholderLine width={120} height={25} />
258
+ <PlaceholderLine height={30} />
259
+ </View>
260
+ </Placeholder>
261
+ )}
262
+ {!(placesState.error || placesState?.placeGroups?.length === 0) && !placesState?.loading && (
263
+ <>
264
+ <PlaceGroupContainer>
265
+ <OText size={16} mBottom={10}>{t('PLACE_GROUP', 'Place group')}</OText>
266
+ <ODropDown
267
+ placeholder={t('PLACE_GROUP', 'Place group')}
268
+ options={getPlacesGroups()}
269
+ onSelect={(group: any) => setPlaceGroupSelected(group)}
270
+ defaultValue={placeGroupSelected ?? cart?.place}
271
+ isModal
272
+ />
273
+ </PlaceGroupContainer>
274
+ {placeGroupSelected && (
275
+ <View>
276
+ <OText size={16} mBottom={10}>{t('SELECT_YOUR_SPOT', 'Select your spot')}</OText>
277
+ <ODropDown
278
+ onSelect={(place: any) => handlerChangePlace(place)}
279
+ placeholder={t('SELECT_YOUR_SPOT', 'Select your spot')}
280
+ options={getPlaces()}
281
+ defaultValue={placesState?.places?.find((place : any) => place?.id === cart?.place_id)}
282
+ isModal
283
+ />
284
+ </View>
285
+ )}
286
+ </>
100
287
  )}
101
288
  </>
102
289
  )}
@@ -105,9 +292,18 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
105
292
  }
106
293
 
107
294
  export const PlaceSpot = (props: PlaceSpotParams) => {
295
+ const [, t] = useLanguage()
296
+
108
297
  const placeSpotProps = {
109
298
  ...props,
110
- UIComponent: PlaceSpotUI
299
+ UIComponent: PlaceSpotUI,
300
+ orderTypes: {
301
+ 1: t('DELIVERY', 'Delivery'),
302
+ 2: t('PICKUP', 'Pickup'),
303
+ 3: t('EAT_IN', 'Eat in'),
304
+ 4: t('CURBSIDE', 'Curbside'),
305
+ 5: t('DRIVE_THRU', 'Drive thru')
306
+ }
111
307
  }
112
308
 
113
309
  return <PlaceSpotController {...placeSpotProps} />
@@ -1,8 +1,6 @@
1
1
  import styled from 'styled-components/native'
2
2
 
3
3
  export const PlaceSpotContainer = styled.View`
4
- min-height: 300px;
5
- padding: 20px;
6
4
  `
7
5
 
8
6
  export const PlaceGroupContainer = styled.View`
@@ -19,7 +19,8 @@ export const PreviousOrders = (props: PreviousOrdersParams) => {
19
19
  handleReorder,
20
20
  reorderLoading,
21
21
  orderID,
22
- handleUpdateOrderList
22
+ handleUpdateOrderList,
23
+ loading
23
24
  } = props;
24
25
 
25
26
  const theme = useTheme();
@@ -42,7 +43,7 @@ export const PreviousOrders = (props: PreviousOrdersParams) => {
42
43
  handleUpdateOrderList={handleUpdateOrderList}
43
44
  />
44
45
  ))}
45
- {pagination.totalPages && pagination.currentPage < pagination.totalPages && (
46
+ {!loading && pagination.totalPages && pagination.currentPage < pagination.totalPages && (
46
47
  <WrappButton>
47
48
  <OButton
48
49
  onClick={loadMoreOrders}