ordering-ui-react-native 0.21.6 → 0.21.7-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 (239) hide show
  1. package/package.json +6 -5
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/BusinessInformation/index.tsx +10 -9
  4. package/src/components/BusinessesListing/index.tsx +1 -1
  5. package/src/components/PaymentOptionsWebView/index.tsx +1 -0
  6. package/src/components/StripeMethodForm/index.tsx +4 -4
  7. package/src/components/VerifyPhone/styles.tsx +1 -2
  8. package/src/components/shared/OToast.tsx +3 -2
  9. package/src/types/index.tsx +2 -1
  10. package/src/utils/index.tsx +2 -2
  11. package/themes/business/index.tsx +4 -0
  12. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -2
  13. package/themes/business/src/components/BusinessController/index.tsx +19 -17
  14. package/themes/business/src/components/BusinessProductList/AccordionDropdown.tsx +63 -0
  15. package/themes/business/src/components/BusinessProductList/IterateCategories.tsx +108 -0
  16. package/themes/business/src/components/BusinessProductList/ProductList.tsx +196 -0
  17. package/themes/business/src/components/BusinessProductList/index.tsx +196 -0
  18. package/themes/business/src/components/BusinessProductList/styles.tsx +10 -0
  19. package/themes/business/src/components/Chat/index.tsx +41 -13
  20. package/themes/business/src/components/DriverMap/index.tsx +4 -2
  21. package/themes/business/src/components/DriverSchedule/index.tsx +5 -5
  22. package/themes/business/src/components/FloatingButton/index.tsx +34 -31
  23. package/themes/business/src/components/Home/index.tsx +5 -1
  24. package/themes/business/src/components/MapView/index.tsx +11 -7
  25. package/themes/business/src/components/MessagesOption/index.tsx +22 -94
  26. package/themes/business/src/components/NewOrderNotification/index.tsx +161 -106
  27. package/themes/business/src/components/OrderDetails/Business.tsx +47 -1
  28. package/themes/business/src/components/OrderDetails/Delivery.tsx +21 -11
  29. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +56 -50
  30. package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +54 -23
  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 +244 -82
  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/PreviousMessages/FooterMessageComponent.tsx +103 -0
  38. package/themes/business/src/components/PreviousMessages/index.tsx +97 -55
  39. package/themes/business/src/components/PreviousOrders/OrderItem.tsx +27 -35
  40. package/themes/business/src/components/PreviousOrders/OrderList.tsx +93 -0
  41. package/themes/business/src/components/PreviousOrders/OrdersGroupedItem.tsx +1 -1
  42. package/themes/business/src/components/PreviousOrders/index.tsx +192 -220
  43. package/themes/business/src/components/PreviousOrders/styles.tsx +10 -0
  44. package/themes/business/src/components/PrinterSettings/index.tsx +279 -0
  45. package/themes/business/src/components/PrinterSettings/styles.tsx +17 -0
  46. package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
  47. package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
  48. package/themes/business/src/components/SearchBar/index.tsx +2 -1
  49. package/themes/business/src/components/Sessions/index.tsx +187 -0
  50. package/themes/business/src/components/Sessions/styles.tsx +20 -0
  51. package/themes/business/src/components/StoresList/index.tsx +5 -3
  52. package/themes/business/src/components/UserProfileForm/index.tsx +98 -44
  53. package/themes/business/src/components/WebsocketStatus/index.tsx +171 -0
  54. package/themes/business/src/components/WebsocketStatus/styles.tsx +28 -0
  55. package/themes/business/src/components/shared/OInput.tsx +2 -0
  56. package/themes/business/src/hooks/useLocation.tsx +5 -4
  57. package/themes/business/src/types/index.tsx +21 -1
  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 +124 -96
  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 +2 -2
  70. package/themes/original/src/components/AddressForm/styles.tsx +1 -1
  71. package/themes/original/src/components/AddressList/index.tsx +4 -7
  72. package/themes/original/src/components/AddressList/styles.tsx +4 -4
  73. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  74. package/themes/original/src/components/BusinessBasicInformation/index.tsx +4 -4
  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 +56 -361
  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 +43 -20
  90. package/themes/original/src/components/BusinessProductsListing/styles.tsx +3 -4
  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 +29 -403
  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 +190 -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 +17 -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 +1 -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 +53 -47
  132. package/themes/original/src/components/LoginForm/index.tsx +6 -1
  133. package/themes/original/src/components/Messages/index.tsx +9 -4
  134. package/themes/original/src/components/Messages/styles.tsx +1 -1
  135. package/themes/original/src/components/MomentOption/index.tsx +3 -3
  136. package/themes/original/src/components/MultiCart/index.tsx +1 -1
  137. package/themes/original/src/components/MultiCheckout/index.tsx +251 -53
  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 +7 -3
  147. package/themes/original/src/components/OrderDetails/index.tsx +716 -667
  148. package/themes/original/src/components/OrderDetails/styles.tsx +24 -8
  149. package/themes/original/src/components/OrderProgress/index.tsx +28 -9
  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/PageBanner/index.tsx +3 -0
  158. package/themes/original/src/components/PaymentOptionCard/index.tsx +4 -2
  159. package/themes/original/src/components/PaymentOptionStripe/styles.tsx +3 -0
  160. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  161. package/themes/original/src/components/PaymentOptions/index.tsx +72 -6
  162. package/themes/original/src/components/PhoneInputNumber/index.tsx +15 -1
  163. package/themes/original/src/components/ProductForm/ActionButton.tsx +120 -0
  164. package/themes/original/src/components/ProductForm/ExtraOptions.tsx +56 -0
  165. package/themes/original/src/components/ProductForm/index.tsx +75 -166
  166. package/themes/original/src/components/ProductItemAccordion/index.tsx +13 -9
  167. package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -1
  168. package/themes/original/src/components/ProductOptionSubOption/index.tsx +123 -82
  169. package/themes/original/src/components/ProductOptionSubOption/styles.tsx +6 -1
  170. package/themes/original/src/components/ProfessionalProfile/styles.tsx +3 -3
  171. package/themes/original/src/components/Promotions/index.tsx +4 -4
  172. package/themes/original/src/components/Promotions/styles.tsx +0 -2
  173. package/themes/original/src/components/ReviewDriver/styles.tsx +1 -1
  174. package/themes/original/src/components/ReviewOrder/styles.tsx +1 -1
  175. package/themes/original/src/components/ReviewProducts/styles.tsx +1 -1
  176. package/themes/original/src/components/ServiceForm/index.tsx +2 -2
  177. package/themes/original/src/components/ServiceForm/styles.tsx +4 -4
  178. package/themes/original/src/components/SingleOrderCard/index.tsx +5 -4
  179. package/themes/original/src/components/SingleProductCard/index.tsx +2 -2
  180. package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
  181. package/themes/original/src/components/StripeCardsList/index.tsx +17 -36
  182. package/themes/original/src/components/StripeElementsForm/index.tsx +9 -4
  183. package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +170 -0
  184. package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +86 -0
  185. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -199
  186. package/themes/original/src/components/UpsellingProducts/styles.tsx +19 -0
  187. package/themes/original/src/components/UserFormDetails/index.tsx +53 -7
  188. package/themes/original/src/components/UserProfile/index.tsx +3 -2
  189. package/themes/original/src/components/UserProfileForm/index.tsx +30 -36
  190. package/themes/original/src/components/UserVerification/index.tsx +55 -50
  191. package/themes/original/src/components/WalletTransactions/styles.tsx +1 -0
  192. package/themes/original/src/components/Wallets/index.tsx +8 -9
  193. package/themes/original/src/components/Wallets/styles.tsx +1 -1
  194. package/themes/original/src/components/WebsocketStatus/index.tsx +172 -0
  195. package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
  196. package/themes/original/src/components/shared/HeaderTitle.tsx +1 -1
  197. package/themes/original/src/components/shared/OButton.tsx +5 -5
  198. package/themes/original/src/components/shared/OInput.tsx +1 -4
  199. package/themes/original/src/components/shared/OModal.tsx +12 -14
  200. package/themes/original/src/layouts/Container.tsx +5 -3
  201. package/themes/original/src/types/index.tsx +6 -1
  202. package/themes/original/src/utils/index.tsx +124 -0
  203. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
  204. package/src/navigators/BottomNavigator.tsx +0 -117
  205. package/src/navigators/CheckoutNavigator.tsx +0 -66
  206. package/src/navigators/HomeNavigator.tsx +0 -202
  207. package/src/navigators/NavigationRef.tsx +0 -7
  208. package/src/navigators/RootNavigator.tsx +0 -269
  209. package/src/pages/Account.tsx +0 -34
  210. package/src/pages/AddressForm.tsx +0 -62
  211. package/src/pages/AddressList.tsx +0 -24
  212. package/src/pages/BusinessProductsList.tsx +0 -81
  213. package/src/pages/BusinessesListing.tsx +0 -43
  214. package/src/pages/CartList.tsx +0 -49
  215. package/src/pages/Checkout.tsx +0 -101
  216. package/src/pages/ForgotPassword.tsx +0 -24
  217. package/src/pages/Help.tsx +0 -23
  218. package/src/pages/HelpAccountAndPayment.tsx +0 -23
  219. package/src/pages/HelpGuide.tsx +0 -23
  220. package/src/pages/HelpOrder.tsx +0 -23
  221. package/src/pages/Home.tsx +0 -36
  222. package/src/pages/IntroductoryTutorial.tsx +0 -170
  223. package/src/pages/Login.tsx +0 -47
  224. package/src/pages/MomentOption.tsx +0 -30
  225. package/src/pages/MultiCheckout.tsx +0 -31
  226. package/src/pages/MultiOrdersDetails.tsx +0 -27
  227. package/src/pages/MyOrders.tsx +0 -40
  228. package/src/pages/NetworkError.tsx +0 -24
  229. package/src/pages/NotFound.tsx +0 -22
  230. package/src/pages/OrderDetails.tsx +0 -25
  231. package/src/pages/ProductDetails.tsx +0 -55
  232. package/src/pages/Profile.tsx +0 -36
  233. package/src/pages/ReviewDriver.tsx +0 -30
  234. package/src/pages/ReviewOrder.tsx +0 -32
  235. package/src/pages/ReviewProducts.tsx +0 -30
  236. package/src/pages/Sessions.tsx +0 -22
  237. package/src/pages/Signup.tsx +0 -53
  238. package/src/pages/SpinnerLoader.tsx +0 -10
  239. package/src/pages/Splash.tsx +0 -21
@@ -11,6 +11,7 @@ import {
11
11
  useToast,
12
12
  useLanguage,
13
13
  useUtils,
14
+ useConfig
14
15
  } from 'ordering-components/native';
15
16
  import {
16
17
  CenterView,
@@ -23,6 +24,7 @@ import { LogoutButton } from '../LogoutButton';
23
24
  import { LanguageSelector } from '../LanguageSelector';
24
25
  import { UserFormDetailsUI } from '../UserFormDetails';
25
26
  import { DriverSchedule } from '../DriverSchedule'
27
+ import { PrinterSettings } from '../PrinterSettings'
26
28
  import ToggleSwitch from 'toggle-switch-react-native';
27
29
  import { UDWrapper } from '../UserFormDetails/styles';
28
30
  import {
@@ -39,7 +41,6 @@ import { NotFoundSource } from '../NotFoundSource';
39
41
  import AntDesignIcon from 'react-native-vector-icons/AntDesign'
40
42
  const ProfileUI = (props: ProfileParams) => {
41
43
  const {
42
- navigation,
43
44
  formState,
44
45
  isEdit,
45
46
  validationFields,
@@ -47,15 +48,16 @@ const ProfileUI = (props: ProfileParams) => {
47
48
  toggleIsEdit,
48
49
  cleanFormState,
49
50
  handleToggleAvalaibleStatusDriver,
50
- userState,
51
- isAvailableLoading,
52
- isAlsea
51
+ isAlsea,
52
+ isShowDriverStatus,
53
+ navigation
53
54
  } = props;
54
55
 
55
- const [{ user }] = useSession();
56
- const [state, t] = useLanguage();
56
+ const [{ user, sessionLoading }] = useSession();
57
+ const [, t] = useLanguage();
57
58
  const [, { showToast }] = useToast();
58
59
  const [{ optimizeImage }] = useUtils();
60
+ const [{ configs }] = useConfig()
59
61
  const { errors } = useForm();
60
62
  const theme = useTheme();
61
63
 
@@ -67,10 +69,11 @@ const ProfileUI = (props: ProfileParams) => {
67
69
  },
68
70
  });
69
71
  const [phoneUpdate, setPhoneUpdate] = useState(false);
72
+ const [userState, setUserState] = useState(props.userState)
70
73
  const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
71
74
  const [phoneToShow, setPhoneToShow] = useState('');
72
75
  const [openModal, setOpenModal] = useState(false)
73
-
76
+ const allowDriverUpdateData = user?.level !== 4 || configs?.allow_driver_update_data?.value === "1"
74
77
  useEffect(() => {
75
78
  if (phoneInputData.phone.cellphone) {
76
79
  const codeNumberPhone = phoneInputData.phone.cellphone.slice(0, 3);
@@ -115,14 +118,15 @@ const ProfileUI = (props: ProfileParams) => {
115
118
  maxWidth: 200,
116
119
  includeBase64: true,
117
120
  },
118
- (response: any) => {
119
- if (response.didCancel) {
121
+ (image: any) => {
122
+ const response = image?.assets?.[0];
123
+ if (response?.didCancel) {
120
124
  console.log('User cancelled image picker');
121
- } else if (response.errorMessage) {
125
+ } else if (response?.errorMessage) {
122
126
  console.log('ImagePicker Error: ', response.errorMessage);
123
127
  showToast(ToastType.Error, response.errorMessage);
124
128
  } else {
125
- if (response.uri) {
129
+ if (response?.uri) {
126
130
  const url = `data:${response.type};base64,${response.base64}`;
127
131
  handleButtonUpdateClick(null, true, url);
128
132
  } else {
@@ -206,6 +210,22 @@ const ProfileUI = (props: ProfileParams) => {
206
210
  }
207
211
  }, [user?.country_phone_code]);
208
212
 
213
+ useEffect(() => {
214
+ setUserState({ ...userState, ...props.userState })
215
+ }, [props.userState])
216
+
217
+ useEffect(() => {
218
+ if (!user?.id) return
219
+
220
+ setUserState({
221
+ ...userState,
222
+ result: {
223
+ error: true,
224
+ result: user
225
+ }
226
+ })
227
+ }, [user, props.isFocused])
228
+
209
229
  const styles = StyleSheet.create({
210
230
  label: {
211
231
  color: theme.colors.textGray,
@@ -254,7 +274,7 @@ const ProfileUI = (props: ProfileParams) => {
254
274
  />
255
275
  )}
256
276
 
257
- {(formState?.loading || state?.loading) && !validationFields.error && (
277
+ {(formState?.loading || sessionLoading) && !validationFields.error && (
258
278
  <View
259
279
  style={{
260
280
  backgroundColor: theme.colors.backgroundLight,
@@ -325,7 +345,7 @@ const ProfileUI = (props: ProfileParams) => {
325
345
  </View>
326
346
  )}
327
347
 
328
- {!formState?.loading && !state?.loading && !validationFields.error && (
348
+ {!(formState?.loading || sessionLoading) && !validationFields.error && (
329
349
  <ScrollView showsVerticalScrollIndicator={false} style={{ flex: 1 }}>
330
350
  <CenterView>
331
351
  <OIcon
@@ -335,14 +355,15 @@ const ProfileUI = (props: ProfileParams) => {
335
355
  height={150}
336
356
  style={{ borderRadius: 7.2 }}
337
357
  />
338
-
339
- <OIconButton
340
- icon={theme.images.general.camera}
341
- borderColor={theme.colors.clear}
342
- iconStyle={{ width: 21, height: 21 }}
343
- style={{ maxWidth: 40 }}
344
- onClick={() => handleImagePicker()}
345
- />
358
+ {allowDriverUpdateData && (
359
+ <OIconButton
360
+ icon={theme.images.general.camera}
361
+ borderColor={theme.colors.clear}
362
+ iconStyle={{ width: 21, height: 21 }}
363
+ style={{ maxWidth: 40 }}
364
+ onClick={() => handleImagePicker()}
365
+ />
366
+ )}
346
367
  </CenterView>
347
368
 
348
369
  {user?.level === 4 && (
@@ -353,29 +374,33 @@ const ProfileUI = (props: ProfileParams) => {
353
374
  adjustsFontSizeToFit
354
375
  style={{ ...styles.label, paddingHorizontal: 0 }}>
355
376
  {t(
356
- 'AVAILABLE_TO_RECEIVE_ORDERS',
357
- 'Available to receive orders',
377
+ `${!isShowDriverStatus ? 'NOT_' : ''}AVAILABLE_TO_RECEIVE_ORDERS`,
378
+ `${!isShowDriverStatus ? 'You are not ' : ''}Available to receive orders`
358
379
  )}
359
380
  </OText>
360
381
  </View>
361
382
 
362
- {userState.loadingDriver ? (
363
- <ActivityIndicator size="small" color={theme.colors.primary} />
364
- ) : (
365
- <ToggleSwitch
366
- isOn={userState?.result?.result?.available}
367
- onColor={theme.colors.primary}
368
- offColor={theme.colors.offColor}
369
- size="small"
370
- onToggle={() =>
371
- handleToggleAvalaibleStatusDriver &&
372
- handleToggleAvalaibleStatusDriver(
373
- !userState?.result?.result?.available,
374
- )
375
- }
376
- disabled={userState?.loading}
377
- animationSpeed={200}
378
- />
383
+ {isShowDriverStatus && (
384
+ <>
385
+ {userState.loadingDriver ? (
386
+ <ActivityIndicator size="small" color={theme.colors.primary} />
387
+ ) : (
388
+ <ToggleSwitch
389
+ isOn={userState?.result?.result?.available}
390
+ onColor={theme.colors.primary}
391
+ offColor={theme.colors.offColor}
392
+ size="small"
393
+ onToggle={() =>
394
+ handleToggleAvalaibleStatusDriver &&
395
+ handleToggleAvalaibleStatusDriver(
396
+ !userState?.result?.result?.available,
397
+ )
398
+ }
399
+ disabled={userState?.loading}
400
+ animationSpeed={200}
401
+ />
402
+ )}
403
+ </>
379
404
  )}
380
405
  </EnabledStatusDriver>
381
406
  )}
@@ -464,7 +489,7 @@ const ProfileUI = (props: ProfileParams) => {
464
489
  />
465
490
  </View>
466
491
  )}
467
- {!validationFields.loading && !isEdit && (
492
+ {!validationFields.loading && !isEdit && allowDriverUpdateData && (
468
493
  <EditButton>
469
494
  <OButton
470
495
  text={t('EDIT', 'Edit')}
@@ -478,9 +503,34 @@ const ProfileUI = (props: ProfileParams) => {
478
503
  />
479
504
  </EditButton>
480
505
  )}
481
- <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
506
+ {!props.isBusinessApp ? (
507
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
508
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
509
+ <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
510
+ <AntDesignIcon size={18} name='right' />
511
+ </View>
512
+ <View style={{
513
+ borderBottomColor: theme.colors.tabBar,
514
+ borderBottomWidth: 1,
515
+ marginTop: 10
516
+ }} />
517
+ </Pressable>
518
+ ) : (
519
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
520
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
521
+ <OText size={16}>{t('PRINTER_SETTINGS', 'Printer Settings')}</OText>
522
+ <AntDesignIcon size={18} name='right' />
523
+ </View>
524
+ <View style={{
525
+ borderBottomColor: theme.colors.tabBar,
526
+ borderBottomWidth: 1,
527
+ marginTop: 10
528
+ }} />
529
+ </Pressable>
530
+ )}
531
+ <Pressable style={{ marginBottom: 10 }} onPress={() => navigation.navigate('Sessions')}>
482
532
  <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
483
- <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
533
+ <OText size={16}>{t('SESSIONS', 'Sessions')}</OText>
484
534
  <AntDesignIcon size={18} name='right' />
485
535
  </View>
486
536
  <View style={{
@@ -500,7 +550,11 @@ const ProfileUI = (props: ProfileParams) => {
500
550
  entireModal
501
551
  hideIcons
502
552
  >
503
- <DriverSchedule schedule={user?.schedule} />
553
+ {props.isBusinessApp ? (
554
+ <PrinterSettings onClose={() => setOpenModal(false)} />
555
+ ) : (
556
+ <DriverSchedule schedule={user?.schedule} />
557
+ )}
504
558
  </OModal>
505
559
  </ScrollView>
506
560
  )}
@@ -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,6 +57,9 @@ export interface ProfileParams {
57
57
  showField?: any;
58
58
  isRequiredField?: any;
59
59
  isAlsea?: boolean;
60
+ isShowDriverStatus?: boolean;
61
+ isFocused?: boolean;
62
+ isBusinessApp?: boolean;
60
63
  }
61
64
 
62
65
  export interface AddressListParams {
@@ -172,6 +175,7 @@ export interface BusinessControllerParams {
172
175
  isBusinessOpen?: boolean;
173
176
  businessWillCloseSoonMinutes?: number;
174
177
  updateBusiness?: (id: any, value: any) => {};
178
+ navigation?: any;
175
179
  }
176
180
  export interface BusinessProductsListingParams {
177
181
  navigation?: any;
@@ -300,6 +304,7 @@ export interface OrdersOptionParams {
300
304
  filtered?: any;
301
305
  handleClickOrder?: any;
302
306
  orderGroupStatusCustom?: {
307
+ active?: Array<number>;
303
308
  pending?: Array<number>;
304
309
  inProgress?: Array<number>;
305
310
  completed?: Array<number>;
@@ -365,6 +370,12 @@ export interface PreviousMessagesParams {
365
370
  loadMessages?: (id: any) => {};
366
371
  handleReorder?: (order: any) => {};
367
372
  onNavigationRedirect?: (route: string, params?: any) => {};
373
+ getOrders?: any;
374
+ loading?: boolean;
375
+ reload?: boolean;
376
+ tabs?: any;
377
+ loadMore: any
378
+ error?: boolean
368
379
  }
369
380
  export interface OrderDetailsParams {
370
381
  handleUpdateLocationDriver?: () => {};
@@ -381,7 +392,7 @@ export interface OrderDetailsParams {
381
392
  urlToShare?: string;
382
393
  messages?: any;
383
394
  handleAssignDriver?: (id: any) => {};
384
- handleChangeOrderStatus?: (status: any) => {};
395
+ handleChangeOrderStatus?: (status: any, isAcceptOrReject: any) => {};
385
396
  order?: any;
386
397
  isFromRoot?: any;
387
398
  handleOrderRedirect?: () => {};
@@ -485,6 +496,7 @@ export interface FloatingButtonParams {
485
496
  firstColorCustom?: string;
486
497
  secondColorCustom?: string;
487
498
  paddingBottomIos?: any;
499
+ isHideRejectButtons?: boolean
488
500
  }
489
501
  export interface MomentOptionParams {
490
502
  navigation: any;
@@ -619,3 +631,11 @@ export interface OrderDetailsLogisticParams {
619
631
  orderAssingId: number,
620
632
  order: any
621
633
  }
634
+
635
+ export interface SessionsParams {
636
+ navigation: any,
637
+ sessionsList: any,
638
+ actionState: any,
639
+ handleDeleteSession: any,
640
+ handleDeleteAllSessions: any
641
+ }
@@ -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