ordering-ui-react-native 0.21.25 → 0.21.26-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 (237) hide show
  1. package/package.json +7 -6
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessesListing/index.tsx +1 -1
  4. package/src/components/PaymentOptionsWebView/index.tsx +1 -0
  5. package/src/components/StripeMethodForm/index.tsx +6 -4
  6. package/src/components/VerifyPhone/styles.tsx +1 -2
  7. package/src/types/index.tsx +3 -1
  8. package/src/utils/index.tsx +2 -2
  9. package/themes/business/index.tsx +4 -0
  10. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  11. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  12. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  13. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  14. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  15. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  16. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  17. package/themes/business/src/components/Chat/index.tsx +23 -14
  18. package/themes/business/src/components/DriverMap/index.tsx +36 -23
  19. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  20. package/themes/business/src/components/GoogleMap/index.tsx +15 -8
  21. package/themes/business/src/components/Home/index.tsx +5 -1
  22. package/themes/business/src/components/LanguageSelector/index.tsx +1 -2
  23. package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
  24. package/themes/business/src/components/MapView/index.tsx +11 -7
  25. package/themes/business/src/components/MessagesOption/index.tsx +2 -1
  26. package/themes/business/src/components/NewOrderNotification/index.tsx +163 -115
  27. package/themes/business/src/components/OrderDetails/Business.tsx +50 -2
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +23 -11
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +61 -54
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +58 -24
  31. package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +220 -0
  32. package/themes/business/src/components/OrderDetailsLogistic/index.tsx +6 -1
  33. package/themes/business/src/components/OrderSummary/index.tsx +240 -76
  34. package/themes/business/src/components/OrdersListManager/index.tsx +7 -2
  35. package/themes/business/src/components/OrdersListManager/utils.tsx +1 -1
  36. package/themes/business/src/components/OrdersOption/index.tsx +125 -48
  37. package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
  38. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +36 -38
  39. package/themes/business/src/components/PreviousOrders/OrderList.tsx +18 -13
  40. package/themes/business/src/components/PreviousOrders/index.tsx +80 -66
  41. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  42. package/themes/business/src/components/PrinterSettings/index.tsx +279 -0
  43. package/themes/business/src/components/PrinterSettings/styles.tsx +17 -0
  44. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  45. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  46. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  47. package/themes/business/src/components/Sessions/index.tsx +187 -0
  48. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  49. package/themes/business/src/components/StoresList/index.tsx +5 -3
  50. package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
  51. package/themes/business/src/components/UserProfileForm/index.tsx +105 -47
  52. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  53. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  54. package/themes/business/src/components/shared/OInput.tsx +2 -0
  55. package/themes/business/src/hooks/useLocation.tsx +5 -4
  56. package/themes/business/src/types/index.tsx +15 -2
  57. package/themes/business/src/utils/index.tsx +5 -0
  58. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  59. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  60. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  61. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  62. package/themes/kiosk/src/components/LoginForm/index.tsx +7 -4
  63. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  64. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  65. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  66. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  67. package/themes/original/index.tsx +9 -4
  68. package/themes/original/src/components/AddressDetails/index.tsx +20 -10
  69. package/themes/original/src/components/AddressForm/index.tsx +10 -6
  70. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  71. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  72. package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
  73. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  74. package/themes/original/src/components/BusinessBasicInformation/index.tsx +3 -3
  75. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +1 -1
  76. package/themes/original/src/components/BusinessController/index.tsx +18 -10
  77. package/themes/original/src/components/BusinessController/styles.tsx +8 -7
  78. package/themes/original/src/components/BusinessInformation/styles.tsx +2 -2
  79. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -7
  80. package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +317 -0
  81. package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +96 -0
  82. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +1 -1
  83. package/themes/original/src/components/BusinessListingSearch/index.tsx +47 -358
  84. package/themes/original/src/components/BusinessListingSearch/styles.tsx +1 -1
  85. package/themes/original/src/components/BusinessPreorder/index.tsx +2 -3
  86. package/themes/original/src/components/BusinessProductsCategories/index.tsx +1 -1
  87. package/themes/original/src/components/BusinessProductsList/index.tsx +3 -3
  88. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  89. package/themes/original/src/components/BusinessProductsListing/index.tsx +35 -19
  90. package/themes/original/src/components/BusinessProductsListing/styles.tsx +2 -2
  91. package/themes/original/src/components/BusinessReviews/index.tsx +1 -1
  92. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +1 -1
  93. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -5
  94. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListFooter.tsx +69 -0
  95. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListHeader.tsx +406 -0
  96. package/themes/original/src/components/BusinessesListing/Layout/Original/FlatListBusinessListing.tsx +76 -0
  97. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +24 -404
  98. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
  99. package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
  100. package/themes/original/src/components/Cart/index.tsx +32 -9
  101. package/themes/original/src/components/CartContent/index.tsx +96 -58
  102. package/themes/original/src/components/CartStoresListing/styles.tsx +2 -2
  103. package/themes/original/src/components/Checkout/index.tsx +173 -66
  104. package/themes/original/src/components/Checkout/styles.tsx +17 -0
  105. package/themes/original/src/components/CitiesControl/styles.tsx +1 -1
  106. package/themes/original/src/components/DatePicker/index.tsx +33 -0
  107. package/themes/original/src/components/DatePicker/styles.tsx +20 -0
  108. package/themes/original/src/components/Favorite/index.tsx +4 -9
  109. package/themes/original/src/components/Favorite/styles.tsx +0 -2
  110. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  111. package/themes/original/src/components/GPSButton/index.tsx +1 -1
  112. package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
  113. package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
  114. package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +8 -3
  115. package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +36 -3
  116. package/themes/original/src/components/GiftCard/PurchaseGiftCard/styles.tsx +1 -1
  117. package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +67 -4
  118. package/themes/original/src/components/GiftCard/RedeemGiftCard/styles.tsx +1 -1
  119. package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +2 -2
  120. package/themes/original/src/components/GiftCard/SendGiftCard/styles.tsx +1 -1
  121. package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
  122. package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
  123. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +83 -0
  124. package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
  125. package/themes/original/src/components/GoogleMap/index.tsx +6 -5
  126. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +2 -2
  127. package/themes/original/src/components/HighestRatedBusinesses/styles.tsx +1 -1
  128. package/themes/original/src/components/Home/index.tsx +2 -1
  129. package/themes/original/src/components/LastOrder/index.tsx +2 -1
  130. package/themes/original/src/components/LastOrders/index.tsx +2 -1
  131. package/themes/original/src/components/LoginForm/Otp/index.tsx +4 -16
  132. package/themes/original/src/components/Messages/index.tsx +2 -1
  133. package/themes/original/src/components/Messages/styles.tsx +1 -1
  134. package/themes/original/src/components/MomentOption/index.tsx +4 -3
  135. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  136. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +1 -0
  137. package/themes/original/src/components/MultiCheckout/index.tsx +208 -21
  138. package/themes/original/src/components/MultiCheckout/styles.tsx +17 -0
  139. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -15
  140. package/themes/original/src/components/MyOrders/index.tsx +24 -29
  141. package/themes/original/src/components/NavBar/index.tsx +3 -1
  142. package/themes/original/src/components/NetworkError/index.tsx +2 -3
  143. package/themes/original/src/components/NetworkError/styles.tsx +2 -2
  144. package/themes/original/src/components/Notifications/index.tsx +4 -8
  145. package/themes/original/src/components/Notifications/styles.tsx +0 -1
  146. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +1 -1
  147. package/themes/original/src/components/OrderDetails/index.tsx +706 -667
  148. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  149. package/themes/original/src/components/OrderProgress/index.tsx +28 -6
  150. package/themes/original/src/components/OrderProgress/styles.tsx +1 -1
  151. package/themes/original/src/components/OrderSummary/index.tsx +3 -1
  152. package/themes/original/src/components/OrderTypeSelector/index.tsx +5 -6
  153. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +1 -1
  154. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +1 -1
  155. package/themes/original/src/components/OrdersOption/index.tsx +3 -5
  156. package/themes/original/src/components/OrdersOption/styles.tsx +1 -1
  157. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  158. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  159. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  160. package/themes/original/src/components/PaymentOptions/index.tsx +72 -6
  161. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  162. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  163. package/themes/original/src/components/ProductForm/index.tsx +68 -156
  164. package/themes/original/src/components/ProductItemAccordion/index.tsx +54 -44
  165. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
  166. package/themes/original/src/components/ProductOptionSubOption/index.tsx +105 -91
  167. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  168. package/themes/original/src/components/Promotions/index.tsx +4 -4
  169. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  170. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  171. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  172. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  173. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  174. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  175. package/themes/original/src/components/SignupForm/index.tsx +60 -58
  176. package/themes/original/src/components/SingleOrderCard/index.tsx +3 -2
  177. package/themes/original/src/components/SingleProductCard/index.tsx +2 -2
  178. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  179. package/themes/original/src/components/StripeCardsList/index.tsx +17 -36
  180. package/themes/original/src/components/StripeElementsForm/index.tsx +74 -59
  181. package/themes/original/src/components/StripeElementsForm/naked.tsx +47 -0
  182. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  183. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  184. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  185. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  186. package/themes/original/src/components/UserFormDetails/index.tsx +123 -75
  187. package/themes/original/src/components/UserFormDetails/styles.tsx +7 -0
  188. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  189. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  190. package/themes/original/src/components/Wallets/index.tsx +3 -4
  191. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  192. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  193. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  194. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  195. package/themes/original/src/components/shared/OButton.tsx +5 -5
  196. package/themes/original/src/components/shared/OInput.tsx +1 -4
  197. package/themes/original/src/components/shared/OModal.tsx +12 -14
  198. package/themes/original/src/layouts/Container.tsx +5 -3
  199. package/themes/original/src/types/index.tsx +1 -0
  200. package/themes/original/src/utils/index.tsx +125 -1
  201. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  202. package/src/navigators/BottomNavigator.tsx +0 -117
  203. package/src/navigators/CheckoutNavigator.tsx +0 -66
  204. package/src/navigators/HomeNavigator.tsx +0 -202
  205. package/src/navigators/NavigationRef.tsx +0 -7
  206. package/src/navigators/RootNavigator.tsx +0 -269
  207. package/src/pages/Account.tsx +0 -34
  208. package/src/pages/AddressForm.tsx +0 -62
  209. package/src/pages/AddressList.tsx +0 -24
  210. package/src/pages/BusinessProductsList.tsx +0 -81
  211. package/src/pages/BusinessesListing.tsx +0 -43
  212. package/src/pages/CartList.tsx +0 -49
  213. package/src/pages/Checkout.tsx +0 -101
  214. package/src/pages/ForgotPassword.tsx +0 -24
  215. package/src/pages/Help.tsx +0 -23
  216. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  217. package/src/pages/HelpGuide.tsx +0 -23
  218. package/src/pages/HelpOrder.tsx +0 -23
  219. package/src/pages/Home.tsx +0 -36
  220. package/src/pages/IntroductoryTutorial.tsx +0 -170
  221. package/src/pages/Login.tsx +0 -47
  222. package/src/pages/MomentOption.tsx +0 -30
  223. package/src/pages/MultiCheckout.tsx +0 -31
  224. package/src/pages/MultiOrdersDetails.tsx +0 -27
  225. package/src/pages/MyOrders.tsx +0 -40
  226. package/src/pages/NetworkError.tsx +0 -24
  227. package/src/pages/NotFound.tsx +0 -22
  228. package/src/pages/OrderDetails.tsx +0 -25
  229. package/src/pages/ProductDetails.tsx +0 -55
  230. package/src/pages/Profile.tsx +0 -36
  231. package/src/pages/ReviewDriver.tsx +0 -30
  232. package/src/pages/ReviewOrder.tsx +0 -32
  233. package/src/pages/ReviewProducts.tsx +0 -30
  234. package/src/pages/Sessions.tsx +0 -22
  235. package/src/pages/Signup.tsx +0 -53
  236. package/src/pages/SpinnerLoader.tsx +0 -10
  237. package/src/pages/Splash.tsx +0 -21
@@ -11,6 +11,8 @@ import {
11
11
  useToast,
12
12
  useLanguage,
13
13
  useUtils,
14
+ useConfig,
15
+ useValidationFields
14
16
  } from 'ordering-components/native';
15
17
  import {
16
18
  CenterView,
@@ -23,6 +25,7 @@ import { LogoutButton } from '../LogoutButton';
23
25
  import { LanguageSelector } from '../LanguageSelector';
24
26
  import { UserFormDetailsUI } from '../UserFormDetails';
25
27
  import { DriverSchedule } from '../DriverSchedule'
28
+ import { PrinterSettings } from '../PrinterSettings'
26
29
  import ToggleSwitch from 'toggle-switch-react-native';
27
30
  import { UDWrapper } from '../UserFormDetails/styles';
28
31
  import {
@@ -39,7 +42,6 @@ import { NotFoundSource } from '../NotFoundSource';
39
42
  import AntDesignIcon from 'react-native-vector-icons/AntDesign'
40
43
  const ProfileUI = (props: ProfileParams) => {
41
44
  const {
42
- navigation,
43
45
  formState,
44
46
  isEdit,
45
47
  validationFields,
@@ -47,16 +49,17 @@ const ProfileUI = (props: ProfileParams) => {
47
49
  toggleIsEdit,
48
50
  cleanFormState,
49
51
  handleToggleAvalaibleStatusDriver,
50
- userState,
51
- isAvailableLoading,
52
52
  isAlsea,
53
- isHideDriverStatus
53
+ isShowDriverStatus,
54
+ navigation
54
55
  } = props;
55
56
 
56
- const [{ user }] = useSession();
57
- const [state, t] = useLanguage();
57
+ const [{ user, sessionLoading }] = useSession();
58
+ const [, t] = useLanguage();
58
59
  const [, { showToast }] = useToast();
59
60
  const [{ optimizeImage }] = useUtils();
61
+ const [{ configs }] = useConfig();
62
+ const [{ loading }, { loadOriginalValidationFields }] = useValidationFields()
60
63
  const { errors } = useForm();
61
64
  const theme = useTheme();
62
65
 
@@ -68,10 +71,11 @@ const ProfileUI = (props: ProfileParams) => {
68
71
  },
69
72
  });
70
73
  const [phoneUpdate, setPhoneUpdate] = useState(false);
74
+ const [userState, setUserState] = useState(props.userState)
71
75
  const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
72
76
  const [phoneToShow, setPhoneToShow] = useState('');
73
77
  const [openModal, setOpenModal] = useState(false)
74
-
78
+ const allowDriverUpdateData = user?.level !== 4 || configs?.allow_driver_update_data?.value === "1"
75
79
  useEffect(() => {
76
80
  if (phoneInputData.phone.cellphone) {
77
81
  const codeNumberPhone = phoneInputData.phone.cellphone.slice(0, 3);
@@ -116,14 +120,15 @@ const ProfileUI = (props: ProfileParams) => {
116
120
  maxWidth: 200,
117
121
  includeBase64: true,
118
122
  },
119
- (response: any) => {
120
- if (response.didCancel) {
123
+ (image: any) => {
124
+ const response = image?.assets?.[0];
125
+ if (response?.didCancel) {
121
126
  console.log('User cancelled image picker');
122
- } else if (response.errorMessage) {
127
+ } else if (response?.errorMessage) {
123
128
  console.log('ImagePicker Error: ', response.errorMessage);
124
129
  showToast(ToastType.Error, response.errorMessage);
125
130
  } else {
126
- if (response.uri) {
131
+ if (response?.uri) {
127
132
  const url = `data:${response.type};base64,${response.base64}`;
128
133
  handleButtonUpdateClick(null, true, url);
129
134
  } else {
@@ -207,6 +212,22 @@ const ProfileUI = (props: ProfileParams) => {
207
212
  }
208
213
  }, [user?.country_phone_code]);
209
214
 
215
+ useEffect(() => {
216
+ setUserState({ ...userState, ...props.userState })
217
+ }, [props.userState])
218
+
219
+ useEffect(() => {
220
+ if (!user?.id) return
221
+
222
+ setUserState({
223
+ ...userState,
224
+ result: {
225
+ error: true,
226
+ result: user
227
+ }
228
+ })
229
+ }, [user, props.isFocused])
230
+
210
231
  const styles = StyleSheet.create({
211
232
  label: {
212
233
  color: theme.colors.textGray,
@@ -243,19 +264,21 @@ const ProfileUI = (props: ProfileParams) => {
243
264
 
244
265
  return (
245
266
  <>
246
- {validationFields?.error && (
267
+ {validationFields?.error && !loading && (
247
268
  <NotFoundSource
248
269
  content={
249
- validationFields?.error[0] ||
250
- validationFields?.error[0]?.message ||
270
+ validationFields?.error?.[0] ||
271
+ validationFields?.error?.[0]?.message ||
251
272
  t('NETWORK_ERROR', 'Network Error')
252
273
  }
253
274
  image={theme.images.general.notFound}
254
275
  conditioned={false}
276
+ onClickButton={() => loadOriginalValidationFields({ forceLoading: true })}
277
+ btnTitle={t('REFRESH_PROFILE', 'Refresh profile')}
255
278
  />
256
279
  )}
257
280
 
258
- {(formState?.loading || state?.loading) && !validationFields.error && (
281
+ {(formState?.loading || sessionLoading) && !validationFields.error && (
259
282
  <View
260
283
  style={{
261
284
  backgroundColor: theme.colors.backgroundLight,
@@ -326,7 +349,7 @@ const ProfileUI = (props: ProfileParams) => {
326
349
  </View>
327
350
  )}
328
351
 
329
- {!formState?.loading && !state?.loading && !validationFields.error && (
352
+ {!(formState?.loading || sessionLoading) && !validationFields.error && (
330
353
  <ScrollView showsVerticalScrollIndicator={false} style={{ flex: 1 }}>
331
354
  <CenterView>
332
355
  <OIcon
@@ -336,17 +359,18 @@ const ProfileUI = (props: ProfileParams) => {
336
359
  height={150}
337
360
  style={{ borderRadius: 7.2 }}
338
361
  />
339
-
340
- <OIconButton
341
- icon={theme.images.general.camera}
342
- borderColor={theme.colors.clear}
343
- iconStyle={{ width: 21, height: 21 }}
344
- style={{ maxWidth: 40 }}
345
- onClick={() => handleImagePicker()}
346
- />
362
+ {allowDriverUpdateData && (
363
+ <OIconButton
364
+ icon={theme.images.general.camera}
365
+ borderColor={theme.colors.clear}
366
+ iconStyle={{ width: 21, height: 21 }}
367
+ style={{ maxWidth: 40 }}
368
+ onClick={() => handleImagePicker()}
369
+ />
370
+ )}
347
371
  </CenterView>
348
372
 
349
- {user?.level === 4 && !isHideDriverStatus && (
373
+ {user?.level === 4 && (
350
374
  <EnabledStatusDriver>
351
375
  <View style={{ flex: 1 }}>
352
376
  <OText
@@ -354,29 +378,33 @@ const ProfileUI = (props: ProfileParams) => {
354
378
  adjustsFontSizeToFit
355
379
  style={{ ...styles.label, paddingHorizontal: 0 }}>
356
380
  {t(
357
- 'AVAILABLE_TO_RECEIVE_ORDERS',
358
- 'Available to receive orders',
381
+ `${!isShowDriverStatus ? 'NOT_' : ''}AVAILABLE_TO_RECEIVE_ORDERS`,
382
+ `${!isShowDriverStatus ? 'You are not ' : ''}Available to receive orders`
359
383
  )}
360
384
  </OText>
361
385
  </View>
362
386
 
363
- {userState.loadingDriver ? (
364
- <ActivityIndicator size="small" color={theme.colors.primary} />
365
- ) : (
366
- <ToggleSwitch
367
- isOn={userState?.result?.result?.available}
368
- onColor={theme.colors.primary}
369
- offColor={theme.colors.offColor}
370
- size="small"
371
- onToggle={() =>
372
- handleToggleAvalaibleStatusDriver &&
373
- handleToggleAvalaibleStatusDriver(
374
- !userState?.result?.result?.available,
375
- )
376
- }
377
- disabled={userState?.loading}
378
- animationSpeed={200}
379
- />
387
+ {isShowDriverStatus && (
388
+ <>
389
+ {userState.loadingDriver ? (
390
+ <ActivityIndicator size="small" color={theme.colors.primary} />
391
+ ) : (
392
+ <ToggleSwitch
393
+ isOn={userState?.result?.result?.available}
394
+ onColor={theme.colors.primary}
395
+ offColor={theme.colors.offColor}
396
+ size="small"
397
+ onToggle={() =>
398
+ handleToggleAvalaibleStatusDriver &&
399
+ handleToggleAvalaibleStatusDriver(
400
+ !userState?.result?.result?.available,
401
+ )
402
+ }
403
+ disabled={userState?.loading}
404
+ animationSpeed={200}
405
+ />
406
+ )}
407
+ </>
380
408
  )}
381
409
  </EnabledStatusDriver>
382
410
  )}
@@ -462,6 +490,7 @@ const ProfileUI = (props: ProfileParams) => {
462
490
  handleCancelEdit={handleCancelEdit}
463
491
  toggleIsEdit={toggleIsEdit}
464
492
  isAlsea={isAlsea}
493
+ allowDriverUpdateData={allowDriverUpdateData}
465
494
  />
466
495
  </View>
467
496
  )}
@@ -479,9 +508,34 @@ const ProfileUI = (props: ProfileParams) => {
479
508
  />
480
509
  </EditButton>
481
510
  )}
482
- <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
511
+ {!props.isBusinessApp ? (
512
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
513
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
514
+ <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
515
+ <AntDesignIcon size={18} name='right' />
516
+ </View>
517
+ <View style={{
518
+ borderBottomColor: theme.colors.tabBar,
519
+ borderBottomWidth: 1,
520
+ marginTop: 10
521
+ }} />
522
+ </Pressable>
523
+ ) : (
524
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
525
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
526
+ <OText size={16}>{t('PRINTER_SETTINGS', 'Printer Settings')}</OText>
527
+ <AntDesignIcon size={18} name='right' />
528
+ </View>
529
+ <View style={{
530
+ borderBottomColor: theme.colors.tabBar,
531
+ borderBottomWidth: 1,
532
+ marginTop: 10
533
+ }} />
534
+ </Pressable>
535
+ )}
536
+ <Pressable style={{ marginBottom: 10 }} onPress={() => navigation.navigate('Sessions')}>
483
537
  <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
484
- <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
538
+ <OText size={16}>{t('SESSIONS', 'Sessions')}</OText>
485
539
  <AntDesignIcon size={18} name='right' />
486
540
  </View>
487
541
  <View style={{
@@ -501,7 +555,11 @@ const ProfileUI = (props: ProfileParams) => {
501
555
  entireModal
502
556
  hideIcons
503
557
  >
504
- <DriverSchedule schedule={user?.schedule} />
558
+ {props.isBusinessApp ? (
559
+ <PrinterSettings onClose={() => setOpenModal(false)} />
560
+ ) : (
561
+ <DriverSchedule schedule={user?.schedule} />
562
+ )}
505
563
  </OModal>
506
564
  </ScrollView>
507
565
  )}
@@ -0,0 +1,171 @@
1
+ import React, { useState } from 'react'
2
+ import { useLanguage, useUtils, WebsocketStatus as WebsocketStatusController } from 'ordering-components/native'
3
+ import { TouchableOpacity, View, StyleSheet } from 'react-native'
4
+ import MaterialIcon from 'react-native-vector-icons/MaterialCommunityIcons';
5
+ import { useTheme } from 'styled-components/native'
6
+ import RNRestart from 'react-native-restart'
7
+ import { OModal, OButton, OText, OIcon } from '../shared'
8
+
9
+ import {
10
+ Container,
11
+ ModalContainer,
12
+ ModalTitle,
13
+ StatusItemWrapper,
14
+ StatusText
15
+ } from './styles'
16
+
17
+ const SocketStatusUI = (props: any) => {
18
+ const {
19
+ socketStatus,
20
+ connectedDate
21
+ } = props
22
+
23
+ const theme = useTheme()
24
+ const [, t] = useLanguage()
25
+ const [{ parseDate }] = useUtils()
26
+ const [openModal, setOpenModal] = useState(false)
27
+
28
+ const styles = StyleSheet.create({
29
+ btnBackArrow: {
30
+ borderWidth: 0,
31
+ width: 32,
32
+ height: 32,
33
+ tintColor: theme.colors.textGray,
34
+ backgroundColor: theme.colors.clear,
35
+ borderColor: theme.colors.clear,
36
+ shadowColor: theme.colors.clear,
37
+ paddingLeft: 0,
38
+ paddingRight: 0,
39
+ marginBottom: 30,
40
+ marginTop: 30
41
+ },
42
+ })
43
+
44
+ const getStatusColor = (status: number) => {
45
+ switch (status) {
46
+ case 0:
47
+ return '#FF9922';
48
+ case 1:
49
+ return '#00D27A';
50
+ case 2:
51
+ return '#E63757';
52
+ default:
53
+ return '#FF9922';
54
+ }
55
+ }
56
+
57
+ return (
58
+ <Container>
59
+ <TouchableOpacity
60
+ style={{
61
+ flexDirection: 'row',
62
+ alignItems: 'center',
63
+ justifyContent: 'center',
64
+ backgroundColor: theme.colors.inputChat,
65
+ borderRadius: 7.6,
66
+ marginVertical: 10,
67
+ paddingVertical: 10,
68
+ paddingHorizontal: 15,
69
+ }}
70
+ activeOpacity={0.6}
71
+ onPress={() => setOpenModal(true)}
72
+ >
73
+ <OText
74
+ style={{ color: theme.colors.backArrow, fontSize: 16, marginBottom: 0, lineHeight: 16 }}
75
+ >
76
+ {t('CONNECTION_STATUS_SHORT', 'Status')}
77
+ </OText>
78
+ <MaterialIcon
79
+ name='circle'
80
+ size={12}
81
+ color={getStatusColor(socketStatus)}
82
+ style={{ marginLeft: 8 }}
83
+ />
84
+ </TouchableOpacity>
85
+
86
+ <OModal
87
+ open={openModal}
88
+ onClose={() => setOpenModal(false)}
89
+ entireModal
90
+ customClose
91
+ >
92
+ <ModalContainer nestedScrollEnabled={true}>
93
+ <TouchableOpacity
94
+ onPress={() => setOpenModal(false)}
95
+ style={styles.btnBackArrow}
96
+ >
97
+ <OIcon src={theme.images.general.arrow_left} color={theme.colors.textGray} />
98
+ </TouchableOpacity>
99
+ <View>
100
+ <ModalTitle>{t('CONNECTION_STATUS', 'Connection status')}</ModalTitle>
101
+ <OText style={{ marginBottom: 20 }}>
102
+ {t('LAST_UPDATE', 'Last update')}: {parseDate(connectedDate)}
103
+ </OText>
104
+ <StatusItemWrapper>
105
+ <MaterialIcon
106
+ name='circle'
107
+ size={12}
108
+ color={getStatusColor(1)}
109
+ style={{ marginTop: 10, marginHorizontal: 8 }}
110
+ />
111
+ <View style={{ marginLeft: 16 }}>
112
+ <StatusText>{t('OK', 'Ok')}</StatusText>
113
+ <OText style={{ color: theme.colors.backArrow, fontSize: 14 }}>{t('WEBSOCKET_OK', 'The websocket works normally.')}</OText>
114
+ </View>
115
+ </StatusItemWrapper>
116
+ <StatusItemWrapper>
117
+ <MaterialIcon
118
+ name='circle'
119
+ size={12}
120
+ color={getStatusColor(0)}
121
+ style={{ marginTop: 10, marginHorizontal: 8 }}
122
+ />
123
+ <View style={{ marginLeft: 16 }}>
124
+ <StatusText>{t('CONNECTING', 'Connecting')}</StatusText>
125
+ <OText style={{ color: theme.colors.backArrow, fontSize: 14 }}>{t('WEBSOCKET_CONNECTING', 'The websocket is connecting.')}</OText>
126
+ </View>
127
+ </StatusItemWrapper>
128
+ <StatusItemWrapper>
129
+ <MaterialIcon
130
+ name='circle'
131
+ size={12}
132
+ color={getStatusColor(2)}
133
+ style={{ marginTop: 10, marginHorizontal: 8 }}
134
+ />
135
+ <View style={{ marginLeft: 16 }}>
136
+ <StatusText>{t('DISCONNECTED', 'Disconnected')}</StatusText>
137
+ <OText style={{ color: theme.colors.backArrow, fontSize: 14 }}>{t('WEBSOCKET_DISCONNECTED', 'The server is slow, please reload.')}</OText>
138
+ </View>
139
+ </StatusItemWrapper>
140
+
141
+ <View style={{ flexDirection: 'row', marginTop: 50 }}>
142
+ <OButton
143
+ onClick={() => setOpenModal(false)}
144
+ bgColor={theme.colors.white}
145
+ borderColor={theme.colors.primary}
146
+ textStyle={{ color: theme.colors.primary }}
147
+ style={{ borderRadius: 8, height: 48 }}
148
+ text={t('CLOSE', 'Close')}
149
+ />
150
+ <OButton
151
+ onClick={() => RNRestart.Restart()}
152
+ borderColor={theme.colors.primary}
153
+ textStyle={{ color: theme.colors.white }}
154
+ style={{ borderRadius: 8, marginLeft: 16, height: 48 }}
155
+ text={t('UPDATE', 'Update')}
156
+ />
157
+ </View>
158
+ </View>
159
+ </ModalContainer>
160
+ </OModal>
161
+ </Container>
162
+ )
163
+ }
164
+
165
+ export const WebsocketStatus = (props: any) => {
166
+ const socketProps = {
167
+ ...props,
168
+ UIComponent: SocketStatusUI
169
+ }
170
+ return <WebsocketStatusController {...socketProps} />
171
+ }
@@ -0,0 +1,28 @@
1
+ import styled from 'styled-components/native'
2
+
3
+ export const Container = styled.View`
4
+ display: flex;
5
+ flex-direction: column;
6
+ `
7
+ export const ModalContainer = styled.ScrollView`
8
+ padding: 0px 30px;
9
+ `
10
+ export const ModalTitle = styled.Text`
11
+ font-family: Poppins;
12
+ font-style: normal;
13
+ font-weight: bold;
14
+ font-size: 20px;
15
+ color: ${(props: any) => props.theme.colors.textGray};
16
+ margin-bottom: 10px;
17
+ `
18
+ export const StatusItemWrapper = styled.View`
19
+ flex-direction: row;
20
+ margin-bottom: 16px;
21
+ `
22
+ export const StatusText = styled.Text`
23
+ font-family: Poppins;
24
+ font-style: normal;
25
+ font-weight: 500;
26
+ font-size: 18px;
27
+ color: ${(props: any) => props.theme.colors.textGray};
28
+ `
@@ -64,6 +64,7 @@ interface Props extends TextInputProps {
64
64
  onSubmitEditing?: any;
65
65
  blurOnSubmit?: any;
66
66
  color?: any;
67
+ isValueSync?: boolean
67
68
  }
68
69
 
69
70
  const OInput = (props: Props): React.ReactElement => {
@@ -118,6 +119,7 @@ const OInput = (props: Props): React.ReactElement => {
118
119
  selectionColor={props.selectionColor}
119
120
  color={props.color}
120
121
  maxLength={props.maxLength || 1000}
122
+ value={props.isValueSync && props.value}
121
123
  />
122
124
 
123
125
  {props.iconRight && (
@@ -48,8 +48,8 @@ export const useLocation = () => {
48
48
  GeoLocation.getCurrentPosition(
49
49
  ({ coords }) => {
50
50
  resolve({
51
- latitude: coords.latitude,
52
- longitude: coords.longitude,
51
+ latitude: typeof coords.latitude === 'number' && !Number.isNaN(coords.latitude) ? coords.latitude : 0,
52
+ longitude: typeof coords.longitude === 'number' && !Number.isNaN(coords.longitude) ? coords.longitude : 0,
53
53
  speed: coords.speed,
54
54
  });
55
55
  },
@@ -63,9 +63,10 @@ export const useLocation = () => {
63
63
  watchId.current = GeoLocation.watchPosition(
64
64
  ({ coords }) => {
65
65
  if (!isMounted.current) return;
66
+ if (typeof coords.latitude !== 'number' || typeof coords.longitude !== 'number') return
66
67
  const location: Location = {
67
- latitude: coords.latitude,
68
- longitude: coords.longitude,
68
+ latitude: coords.latitude || 0,
69
+ longitude: coords.longitude || 0,
69
70
  speed: coords.speed,
70
71
  };
71
72
  setUserLocation(location);
@@ -57,7 +57,9 @@ export interface ProfileParams {
57
57
  showField?: any;
58
58
  isRequiredField?: any;
59
59
  isAlsea?: boolean;
60
- isHideDriverStatus?: boolean;
60
+ isShowDriverStatus?: boolean;
61
+ isFocused?: boolean;
62
+ isBusinessApp?: boolean;
61
63
  }
62
64
 
63
65
  export interface AddressListParams {
@@ -173,6 +175,7 @@ export interface BusinessControllerParams {
173
175
  isBusinessOpen?: boolean;
174
176
  businessWillCloseSoonMinutes?: number;
175
177
  updateBusiness?: (id: any, value: any) => {};
178
+ navigation?: any;
176
179
  }
177
180
  export interface BusinessProductsListingParams {
178
181
  navigation?: any;
@@ -301,6 +304,7 @@ export interface OrdersOptionParams {
301
304
  filtered?: any;
302
305
  handleClickOrder?: any;
303
306
  orderGroupStatusCustom?: {
307
+ active?: Array<number>;
304
308
  pending?: Array<number>;
305
309
  inProgress?: Array<number>;
306
310
  completed?: Array<number>;
@@ -388,7 +392,7 @@ export interface OrderDetailsParams {
388
392
  urlToShare?: string;
389
393
  messages?: any;
390
394
  handleAssignDriver?: (id: any) => {};
391
- handleChangeOrderStatus?: (status: any) => {};
395
+ handleChangeOrderStatus?: (status: any, isAcceptOrReject: any) => {};
392
396
  order?: any;
393
397
  isFromRoot?: any;
394
398
  handleOrderRedirect?: () => {};
@@ -492,6 +496,7 @@ export interface FloatingButtonParams {
492
496
  firstColorCustom?: string;
493
497
  secondColorCustom?: string;
494
498
  paddingBottomIos?: any;
499
+ isHideRejectButtons?: boolean
495
500
  }
496
501
  export interface MomentOptionParams {
497
502
  navigation: any;
@@ -626,3 +631,11 @@ export interface OrderDetailsLogisticParams {
626
631
  orderAssingId: number,
627
632
  order: any
628
633
  }
634
+
635
+ export interface SessionsParams {
636
+ navigation: any,
637
+ sessionsList: any,
638
+ actionState: any,
639
+ handleDeleteSession: any,
640
+ handleDeleteAllSessions: any
641
+ }
@@ -146,6 +146,11 @@ export const transformCountryCode = (countryCode: number) => {
146
146
  return code?.countryCode;
147
147
  };
148
148
 
149
+ export const findExitingCode = (countryCode: string) => {
150
+ const code = CODES.find((code: any) => code.countryCode === (countryCode || '').toUpperCase())
151
+ return code?.countryCode
152
+ }
153
+
149
154
  /**
150
155
  * Function to check if a number is decimal or not
151
156
  * @param {*} value number to check if decimal or not
@@ -197,7 +197,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
197
197
  {isFarAway && (
198
198
  <FarAwayMessage style={styles.farAwayMsg}>
199
199
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
200
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
200
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
201
201
  </FarAwayMessage>
202
202
  )}
203
203
  {!auth && (
@@ -410,8 +410,7 @@ const LoginFormUI = (props: LoginParams) => {
410
410
  textInputProps={{
411
411
  returnKeyType: 'next',
412
412
  onSubmitEditing: () => inputRef?.current?.focus?.(),
413
- style: { borderWidth: 0, fontSize: 12 },
414
- maxLength: 10
413
+ style: { borderWidth: 0, fontSize: 12 }
415
414
  }}
416
415
  textWrapStyle={{ borderColor: theme.colors.clear, borderWidth: 0, height: 40, paddingStart: 0 }}
417
416
  />
@@ -155,7 +155,7 @@ const BusinessesListingUI = (props: BusinessesListingParams) => {
155
155
  {isFarAway && (
156
156
  <FarAwayMessage style={styles.farAwayMsg}>
157
157
  <Ionicons name='md-warning-outline' style={styles.iconStyle} />
158
- <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'You are far from this address')}</OText>
158
+ <OText size={12} numberOfLines={1} ellipsizeMode={'tail'} color={theme.colors.textNormal}>{t('YOU_ARE_FAR_FROM_ADDRESS', 'Your are far from this address')}</OText>
159
159
  </FarAwayMessage>
160
160
  )}
161
161
  <View style={styles.wrapperOrderOptions}>
@@ -50,6 +50,12 @@ const CheckoutUI = (props: any) => {
50
50
  }
51
51
  }, [cart])
52
52
 
53
+ useEffect(() => {
54
+ if (!cartState.loading && cart && !cart?.valid && cart?.status === 2) {
55
+ navigation?.canGoBack() && navigation.goBack()
56
+ }
57
+ }, [cart])
58
+
53
59
  return (
54
60
  <>
55
61
  <PaymentOptions
@@ -52,7 +52,7 @@ const LoginFormUI = (props: LoginParams) => {
52
52
  } = props;
53
53
 
54
54
  const theme = useTheme()
55
- const [{ configs }] = useConfig()
55
+ const [{ configs }, { refreshConfigs }] = useConfig()
56
56
  const [ordering, { setOrdering }] = useApi();
57
57
  const [, { showToast }] = useToast();
58
58
  const [, t] = useLanguage();
@@ -347,13 +347,16 @@ const LoginFormUI = (props: LoginParams) => {
347
347
  project: projectName
348
348
  })
349
349
  }
350
- if (isDeviceLoginEnabled) {
351
- props.handleChangeTab('device_code')
352
- }
353
350
  }, 1500)
354
351
  return () => clearTimeout(projectInputTimeout);
355
352
  }, [projectName, isDeviceLoginEnabled])
356
353
 
354
+ useEffect(() => {
355
+ if (ordering?.project) {
356
+ refreshConfigs()
357
+ }
358
+ }, [ordering?.project])
359
+
357
360
  const logo = (
358
361
  <LogoWrapper>
359
362
  <OIcon src={theme.images.logos.logotype} style={styles.logo} />