ordering-ui-react-native 0.16.33 → 0.16.34-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/package.json +7 -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/BusinessBasicInformation/index.tsx +11 -19
  6. package/src/components/BusinessInformation/index.tsx +33 -4
  7. package/src/components/BusinessInformation/styles.tsx +2 -2
  8. package/src/components/BusinessProductsList/index.tsx +10 -10
  9. package/src/components/BusinessesListing/index.tsx +1 -1
  10. package/src/components/Checkout/index.tsx +2 -1
  11. package/src/components/LanguageSelector/index.tsx +21 -16
  12. package/src/components/LoginForm/index.tsx +15 -0
  13. package/src/components/Messages/index.tsx +2 -2
  14. package/src/components/NotificationSetting/index.tsx +85 -0
  15. package/src/components/OrderDetails/index.tsx +2 -20
  16. package/src/components/OrdersOption/index.tsx +54 -56
  17. package/src/components/PaymentOptions/index.tsx +335 -365
  18. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  19. package/src/components/ReviewDriver/index.tsx +1 -1
  20. package/src/components/ReviewOrder/index.tsx +2 -1
  21. package/src/components/ReviewProducts/index.tsx +11 -0
  22. package/src/components/SignupForm/index.tsx +15 -0
  23. package/src/components/SingleProductReview/index.tsx +8 -5
  24. package/src/components/StripeElementsForm/index.tsx +25 -16
  25. package/src/components/VerifyPhone/styles.tsx +1 -2
  26. package/src/components/shared/OBottomPopup.tsx +6 -2
  27. package/src/index.tsx +2 -0
  28. package/src/pages/BusinessesListing.tsx +7 -6
  29. package/src/pages/OrderDetails.tsx +1 -1
  30. package/src/pages/ReviewDriver.tsx +2 -2
  31. package/src/pages/ReviewOrder.tsx +2 -2
  32. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  33. package/src/utils/index.tsx +2 -1
  34. package/themes/business/index.tsx +4 -0
  35. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  36. package/themes/business/src/components/Chat/index.tsx +38 -30
  37. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  38. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  39. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  40. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  41. package/themes/business/src/components/MapView/index.tsx +12 -1
  42. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  43. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
  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 +3 -2
  59. package/themes/business/src/components/ReviewCustomer/index.tsx +27 -13
  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/BusinessesListing/index.tsx +2 -1
  72. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  73. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  74. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  75. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  76. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  77. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  78. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  79. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  80. package/themes/kiosk/src/types/index.d.ts +2 -0
  81. package/themes/original/index.tsx +4 -0
  82. package/themes/original/src/components/AddressDetails/index.tsx +2 -2
  83. package/themes/original/src/components/AddressForm/index.tsx +151 -140
  84. package/themes/original/src/components/AddressList/index.tsx +1 -1
  85. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  86. package/themes/original/src/components/BusinessBasicInformation/index.tsx +311 -161
  87. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  88. package/themes/original/src/components/BusinessController/index.tsx +190 -113
  89. package/themes/original/src/components/BusinessController/styles.tsx +0 -7
  90. package/themes/original/src/components/BusinessItemAccordion/index.tsx +4 -4
  91. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  92. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  93. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  94. package/themes/original/src/components/BusinessListingSearch/index.tsx +80 -128
  95. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  96. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  97. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  98. package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
  99. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  100. package/themes/original/src/components/BusinessProductsListing/index.tsx +173 -104
  101. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -11
  102. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  103. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  104. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +37 -25
  105. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -4
  106. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +278 -104
  107. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +47 -10
  108. package/themes/original/src/components/BusinessesListing/index.tsx +95 -7
  109. package/themes/original/src/components/Cart/index.tsx +44 -12
  110. package/themes/original/src/components/Cart/styles.tsx +4 -0
  111. package/themes/original/src/components/CartContent/index.tsx +22 -16
  112. package/themes/original/src/components/Checkout/index.tsx +101 -61
  113. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  114. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  115. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  116. package/themes/original/src/components/Favorite/index.tsx +1 -0
  117. package/themes/original/src/components/FavoriteList/index.tsx +32 -2
  118. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  119. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  120. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  121. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
  122. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
  123. package/themes/original/src/components/HelpGuide/index.tsx +9 -8
  124. package/themes/original/src/components/HelpOrder/index.tsx +9 -8
  125. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  126. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -72
  127. package/themes/original/src/components/LoginForm/index.tsx +90 -46
  128. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  129. package/themes/original/src/components/Messages/index.tsx +17 -17
  130. package/themes/original/src/components/MomentOption/index.tsx +8 -6
  131. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  132. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  133. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  134. package/themes/original/src/components/MyOrders/index.tsx +70 -6
  135. package/themes/original/src/components/NavBar/index.tsx +15 -9
  136. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  137. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  138. package/themes/original/src/components/Notifications/index.tsx +148 -0
  139. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  140. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  141. package/themes/original/src/components/OrderDetails/index.tsx +200 -37
  142. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  143. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  144. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  145. package/themes/original/src/components/OrderProgress/index.tsx +77 -66
  146. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  147. package/themes/original/src/components/OrderSummary/index.tsx +3 -36
  148. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  149. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  150. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +97 -106
  151. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  152. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  153. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  154. package/themes/original/src/components/PaymentOptions/index.tsx +41 -23
  155. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  156. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  157. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  158. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  159. package/themes/original/src/components/ProductForm/index.tsx +635 -664
  160. package/themes/original/src/components/ProductForm/styles.tsx +9 -8
  161. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  162. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  163. package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
  164. package/themes/original/src/components/ProfessionalProfile/index.tsx +26 -14
  165. package/themes/original/src/components/ReviewDriver/index.tsx +7 -7
  166. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  167. package/themes/original/src/components/ReviewProducts/index.tsx +2 -2
  168. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  169. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  170. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  171. package/themes/original/src/components/ServiceForm/index.tsx +410 -258
  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 +200 -110
  176. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -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 +18 -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 +13 -3
  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 +91 -30
  198. package/themes/original/src/utils/index.tsx +121 -10
  199. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -22,9 +22,8 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
22
22
  textStyle,
23
23
  flagStyle,
24
24
  noDropIcon,
25
- isDisabled,
26
- isStartValidation,
27
- changeCountry
25
+ isDisabled,
26
+ isStartValidation
28
27
  } = props
29
28
 
30
29
  const theme = useTheme();
@@ -107,16 +106,11 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
107
106
  )}
108
107
  <PhoneInput
109
108
  ref={phoneInput}
110
- disabled={isDisabled}
109
+ disabled={isDisabled}
111
110
  defaultValue={userphoneNumber || defaultValue}
112
- defaultCode={defaultCode ?
113
- !isNaN(defaultCode)
114
- ? transformCountryCode(defaultCode)
115
- : defaultCode
116
- : configs?.default_country_code?.value}
111
+ defaultCode={defaultCode ? transformCountryCode(defaultCode) : configs?.default_country_code?.value}
117
112
  onChangeFormattedText={(text: string) => handleChangeNumber(text)}
118
113
  withDarkTheme
119
- onChangeCountry={(country) => changeCountry?.(country)}
120
114
  countryPickerProps={{ withAlphaFilter: true }}
121
115
  textContainerStyle={{ ...style.input, ...inputStyle ? inputStyle : {} }}
122
116
  textInputStyle={textStyle}
@@ -124,7 +118,7 @@ export const PhoneInputNumber = (props: PhoneInputParams) => {
124
118
  flagButtonStyle={flagStyle}
125
119
  countryPickerButtonStyle={{ ...style.countryBtn, ...boxStyle ? boxStyle : {} }}
126
120
  placeholder={t('PHONE_NUMBER', 'Phone Number')}
127
- textInputProps={{ autoCompleteType: 'tel', ref: forwardRef, ...textInputProps }}
121
+ textInputProps={{ keyboardType: 'number-pad', autoCompleteType: 'tel', textContentType: 'telephoneNumber', dataDetectorTypes: 'phoneNumber', ref: forwardRef, ...textInputProps }}
128
122
  containerStyle={{ width: '100%' }}
129
123
  renderDropdownImage={noDropIcon ? <View /> : <OIcon src={theme.images.general.arrow_down} width={13} color={'#B1BCCC'}></OIcon>}
130
124
  />
@@ -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}