ordering-ui-react-native 0.16.35 → 0.16.36-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 (196) 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/src/components/BusinessController/index.tsx +2 -2
  35. package/themes/business/src/components/Chat/index.tsx +38 -30
  36. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  37. package/themes/business/src/components/DriverSchedule/index.tsx +36 -19
  38. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  39. package/themes/business/src/components/MapView/index.tsx +12 -1
  40. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  41. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
  42. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  43. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  44. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  45. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  46. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  47. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  48. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  49. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  50. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  51. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  52. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  53. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  54. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  55. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  56. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  57. package/themes/business/src/components/ReviewCustomer/index.tsx +27 -13
  58. package/themes/business/src/components/ScheduleBlocked/index.tsx +2 -2
  59. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  60. package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
  61. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  62. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  63. package/themes/business/src/types/index.tsx +15 -9
  64. package/themes/business/src/utils/index.tsx +10 -0
  65. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  66. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  67. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  68. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  69. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  70. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  71. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  72. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  73. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  74. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  75. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  76. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  77. package/themes/kiosk/src/types/index.d.ts +2 -0
  78. package/themes/original/index.tsx +4 -0
  79. package/themes/original/src/components/AddressDetails/index.tsx +2 -2
  80. package/themes/original/src/components/AddressForm/index.tsx +151 -140
  81. package/themes/original/src/components/AddressList/index.tsx +1 -1
  82. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  83. package/themes/original/src/components/BusinessBasicInformation/index.tsx +324 -162
  84. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  85. package/themes/original/src/components/BusinessController/index.tsx +190 -113
  86. package/themes/original/src/components/BusinessController/styles.tsx +0 -7
  87. package/themes/original/src/components/BusinessItemAccordion/index.tsx +12 -6
  88. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  89. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  90. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  91. package/themes/original/src/components/BusinessListingSearch/index.tsx +80 -128
  92. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  93. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  94. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  95. package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
  96. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  97. package/themes/original/src/components/BusinessProductsListing/index.tsx +179 -104
  98. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -11
  99. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  100. package/themes/original/src/components/BusinessTypeFilter/index.tsx +3 -2
  101. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +37 -25
  102. package/themes/original/src/components/BusinessesListing/Layout/Appointment/styles.tsx +5 -4
  103. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +278 -104
  104. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +47 -10
  105. package/themes/original/src/components/BusinessesListing/index.tsx +95 -7
  106. package/themes/original/src/components/Cart/index.tsx +54 -16
  107. package/themes/original/src/components/Cart/styles.tsx +4 -0
  108. package/themes/original/src/components/CartContent/index.tsx +22 -16
  109. package/themes/original/src/components/Checkout/index.tsx +109 -64
  110. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  111. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  112. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  113. package/themes/original/src/components/Favorite/index.tsx +1 -0
  114. package/themes/original/src/components/FavoriteList/index.tsx +32 -2
  115. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  116. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  117. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  118. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
  119. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
  120. package/themes/original/src/components/HelpGuide/index.tsx +9 -8
  121. package/themes/original/src/components/HelpOrder/index.tsx +9 -8
  122. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  123. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -72
  124. package/themes/original/src/components/LoginForm/index.tsx +107 -50
  125. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  126. package/themes/original/src/components/Messages/index.tsx +17 -17
  127. package/themes/original/src/components/MomentOption/index.tsx +8 -6
  128. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  129. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  130. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  131. package/themes/original/src/components/MyOrders/index.tsx +70 -6
  132. package/themes/original/src/components/NavBar/index.tsx +15 -9
  133. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  134. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  135. package/themes/original/src/components/Notifications/index.tsx +148 -0
  136. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  137. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  138. package/themes/original/src/components/OrderDetails/index.tsx +200 -37
  139. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  140. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  141. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  142. package/themes/original/src/components/OrderProgress/index.tsx +77 -66
  143. package/themes/original/src/components/OrderProgress/styles.tsx +5 -0
  144. package/themes/original/src/components/OrderSummary/index.tsx +3 -36
  145. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  146. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  147. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +97 -106
  148. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  149. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  150. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  151. package/themes/original/src/components/PaymentOptions/index.tsx +41 -23
  152. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  153. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  154. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  155. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  156. package/themes/original/src/components/ProductForm/index.tsx +635 -664
  157. package/themes/original/src/components/ProductForm/styles.tsx +9 -8
  158. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  159. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  160. package/themes/original/src/components/ProfessionalFilter/index.tsx +2 -1
  161. package/themes/original/src/components/ProfessionalProfile/index.tsx +26 -14
  162. package/themes/original/src/components/ReviewDriver/index.tsx +7 -7
  163. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  164. package/themes/original/src/components/ReviewProducts/index.tsx +2 -2
  165. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  166. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  167. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  168. package/themes/original/src/components/ServiceForm/index.tsx +410 -258
  169. package/themes/original/src/components/SignupForm/index.tsx +362 -210
  170. package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
  171. package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
  172. package/themes/original/src/components/SingleProductCard/index.tsx +200 -110
  173. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -10
  174. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  175. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  176. package/themes/original/src/components/StripeElementsForm/index.tsx +18 -7
  177. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
  178. package/themes/original/src/components/UserDetails/index.tsx +11 -2
  179. package/themes/original/src/components/UserFormDetails/index.tsx +67 -77
  180. package/themes/original/src/components/UserProfile/index.tsx +56 -31
  181. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  182. package/themes/original/src/components/UserProfileForm/index.tsx +10 -10
  183. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  184. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  185. package/themes/original/src/components/Wallets/index.tsx +176 -164
  186. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  187. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  188. package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
  189. package/themes/original/src/components/shared/OButton.tsx +10 -3
  190. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  191. package/themes/original/src/components/shared/OInput.tsx +13 -3
  192. package/themes/original/src/layouts/Container.tsx +13 -9
  193. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  194. package/themes/original/src/types/index.tsx +91 -30
  195. package/themes/original/src/utils/index.tsx +121 -10
  196. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -14,6 +14,8 @@ Sound.setCategory('Playback')
14
14
 
15
15
  const windowWidth = Dimensions.get('screen').width
16
16
 
17
+ const SOUND_LOOP = 3
18
+
17
19
  const NewOrderNotificationUI = (props: any) => {
18
20
  const { isBusinessApp } = props
19
21
  const [events] = useEvent()
@@ -22,8 +24,7 @@ const NewOrderNotificationUI = (props: any) => {
22
24
  const [{ user, token }] = useSession()
23
25
  const [ordering] = useApi()
24
26
  const { getCurrentLocation } = useLocation();
25
- const [soundTimeout, setSoundTimeout] = useState<any>(null)
26
- let [currentEvent, setCurrentEvent] = useState<any>(null)
27
+ const [currentEvent, setCurrentEvent] = useState<any>(null)
27
28
 
28
29
  const evtList: any = {
29
30
  1: {
@@ -43,29 +44,27 @@ const NewOrderNotificationUI = (props: any) => {
43
44
  },
44
45
  }
45
46
 
46
- const notificationSound = new Sound(theme.sounds.notification, (e) => { console.log(e) });
47
+ const notificationSound = new Sound(theme.sounds.notification);
47
48
 
48
- const handlePlayNotificationSound = () => {
49
- if (currentEvent) return
50
- let times = 0
51
- const _timeout = setInterval(function () {
52
- notificationSound.play(success => {
53
- if (success) {
54
- times = times + 1
55
- }
56
- })
57
- setSoundTimeout(_timeout)
58
- if (times === 3) {
59
- clearInterval(_timeout)
60
- clearInterval(soundTimeout)
61
- }
62
- }, 2500)
49
+ let _timeout: any = null
50
+
51
+ const handleCloseEvents = () => {
52
+ notificationSound.stop()
53
+ setCurrentEvent(null)
54
+ clearInterval(_timeout)
63
55
  }
64
56
 
65
- const handleCloseModal = () => {
66
- clearInterval(soundTimeout)
67
- currentEvent = null
68
- setCurrentEvent({ evt: null })
57
+ const handlePlayNotificationSound = (eventObj: any = null) => {
58
+ setCurrentEvent(eventObj)
59
+ let times = 1
60
+ if (times < SOUND_LOOP) {
61
+ _timeout = setInterval(() => {
62
+ notificationSound.setVolume(1).play(success => success && (times = times + 1))
63
+ if (times === SOUND_LOOP) {
64
+ clearInterval(_timeout)
65
+ }
66
+ }, 2500)
67
+ }
69
68
  }
70
69
 
71
70
  const handleEventNotification = async (evtType: number, value: any) => {
@@ -79,26 +78,15 @@ const NewOrderNotificationUI = (props: any) => {
79
78
  }),
80
79
  headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }
81
80
  })
82
- } catch (error) {
83
- console.log(error)
84
- }
81
+ } catch {}
85
82
  const duration = moment.duration(moment().diff(moment.utc(value?.last_driver_assigned_at)))
86
83
  const assignedSecondsDiff = duration.asSeconds()
87
84
  if (assignedSecondsDiff < 5 && !isBusinessApp) {
88
- handlePlayNotificationSound()
89
- clearInterval(soundTimeout)
90
- currentEvent = { evt: 2, orderId: value?.id }
91
- setCurrentEvent({ evt: 2, orderId: value?.id })
85
+ handlePlayNotificationSound({ evt: 2, orderId: value?.id })
92
86
  }
93
87
  }
94
88
  if (evtType === 3 || value.author_id === user.id) return
95
- handlePlayNotificationSound()
96
- clearInterval(soundTimeout)
97
- currentEvent = {
98
- evt: evtType,
99
- orderId: evtList[evtType].event === 'messages' ? value?.order_id : value?.id
100
- }
101
- setCurrentEvent({
89
+ handlePlayNotificationSound({
102
90
  evt: evtType,
103
91
  orderId: evtList[evtType].event === 'messages' ? value?.order_id : value?.id
104
92
  })
@@ -116,10 +104,7 @@ const NewOrderNotificationUI = (props: any) => {
116
104
  }, [])
117
105
 
118
106
  useEffect(() => {
119
- notificationSound.setVolume(1);
120
- return () => {
121
- notificationSound.release();
122
- }
107
+ return () => handleCloseEvents()
123
108
  }, [])
124
109
 
125
110
  return (
@@ -133,7 +118,7 @@ const NewOrderNotificationUI = (props: any) => {
133
118
  <View style={styles.modalView}>
134
119
  <TouchableOpacity
135
120
  style={styles.wrapperIcon}
136
- onPress={() => handleCloseModal()}
121
+ onPress={() => handleCloseEvents()}
137
122
  >
138
123
  <Icon name="x" size={30} />
139
124
  </TouchableOpacity>
@@ -439,7 +439,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
439
439
  <>
440
440
  <OrderContentComponent order={order} />
441
441
  {(order?.status === 7 || order?.status === 4) &&
442
- order?.delivery_type === 1 && (
442
+ order?.delivery_type === 1 && configs?.assign_driver_enabled?.value === '1' && (
443
443
  <AssignDriver>
444
444
  <OText style={{ marginBottom: 5 }} size={16} weight="600">
445
445
  {t('ASSIGN_DRIVER', 'Assign driver')}
@@ -337,9 +337,14 @@ export const OrderContentComponent = (props: OrderContent) => {
337
337
  </OText>
338
338
  )}
339
339
  {!!order?.comment && (
340
- <OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 5 }}>
341
- {order?.comment}
342
- </OText>
340
+ <>
341
+ <OText weight='500' style={{ marginBottom: 5 }}>
342
+ {t('ORDER_COMMENT', 'Order Comment')}
343
+ </OText>
344
+ <OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 20 }}>
345
+ {order?.comment}
346
+ </OText>
347
+ </>
343
348
  )}
344
349
  </View>
345
350
  )}
@@ -364,6 +369,7 @@ export const OrderContentComponent = (props: OrderContent) => {
364
369
  <ProductItemAccordion
365
370
  key={product?.id || i}
366
371
  product={product}
372
+ currency={order?.currency}
367
373
  />
368
374
  ))}
369
375
  </OrderProducts>
@@ -372,7 +378,7 @@ export const OrderContentComponent = (props: OrderContent) => {
372
378
  <Table>
373
379
  <OText mBottom={4}>{t('SUBTOTAL', 'Subtotal')}</OText>
374
380
  <OText mBottom={4}>
375
- {parsePrice(((order?.summary?.subtotal ?? order?.subtotal) + getIncludedTaxes()))}
381
+ {parsePrice(((order?.summary?.subtotal ?? order?.subtotal) + getIncludedTaxes()), { currency: order?.currency})}
376
382
  </OText>
377
383
  </Table>
378
384
  {(order?.summary?.discount > 0 ?? order?.discount > 0) && order?.offers?.length === 0 && (
@@ -385,7 +391,7 @@ export const OrderContentComponent = (props: OrderContent) => {
385
391
  ) : (
386
392
  <OText mBottom={4}>{t('DISCOUNT', theme?.defaultLanguages?.DISCOUNT || 'Discount')}</OText>
387
393
  )}
388
- <OText>- {parsePrice(order?.summary?.discount ?? order?.discount)}</OText>
394
+ <OText>- {parsePrice(order?.summary?.discount ?? order?.discount, { currency: order?.currency})}</OText>
389
395
  </Table>
390
396
  )}
391
397
  {
@@ -399,7 +405,7 @@ export const OrderContentComponent = (props: OrderContent) => {
399
405
  )}
400
406
  </OText>
401
407
  </OSRow>
402
- <OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
408
+ <OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
403
409
  </Table>
404
410
  ))
405
411
  }
@@ -407,9 +413,9 @@ export const OrderContentComponent = (props: OrderContent) => {
407
413
  <Table>
408
414
  <OText mBottom={4}>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
409
415
  {order?.tax_type === 1 ? (
410
- <OText mBottom={4}>{parsePrice((order?.summary?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0))}</OText>
416
+ <OText mBottom={4}>{parsePrice((order?.summary?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0), { currency: order?.currency})}</OText>
411
417
  ) : (
412
- <OText mBottom={4}>{parsePrice(order?.summary?.subtotal_with_discount ?? 0)}</OText>
418
+ <OText mBottom={4}>{parsePrice(order?.summary?.subtotal_with_discount ?? 0, { currency: order?.currency})}</OText>
413
419
  )}
414
420
  </Table>
415
421
  )}
@@ -419,7 +425,7 @@ export const OrderContentComponent = (props: OrderContent) => {
419
425
  {t('TAX', 'Tax')} {`(${verifyDecimals(order?.tax, parseNumber)}%)`}
420
426
  </OText>
421
427
  <OText mBottom={4}>
422
- {parsePrice(order?.summary?.tax ?? 0)}
428
+ {parsePrice(order?.summary?.tax ?? 0, { currency: order?.currency})}
423
429
  </OText>
424
430
  </Table>
425
431
  )}
@@ -430,7 +436,7 @@ export const OrderContentComponent = (props: OrderContent) => {
430
436
  {t('SERVICE_FEE', 'Service fee')}
431
437
  {`(${verifyDecimals(order?.service_fee, parseNumber)}%)`}
432
438
  </OText>
433
- <OText mBottom={4}>{parsePrice(order?.summary?.service_fee ?? 0)}</OText>
439
+ <OText mBottom={4}>{parsePrice(order?.summary?.service_fee ?? 0, { currency: order?.currency})}</OText>
434
440
  </Table>
435
441
  )
436
442
  }
@@ -443,7 +449,7 @@ export const OrderContentComponent = (props: OrderContent) => {
443
449
  {`(${verifyDecimals(tax?.rate, parseNumber)}%)`}{' '}
444
450
  </OText>
445
451
  </OSRow>
446
- <OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
452
+ <OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0, { currency: order?.currency})}</OText>
447
453
  </Table>
448
454
  ))
449
455
  }
@@ -453,10 +459,10 @@ export const OrderContentComponent = (props: OrderContent) => {
453
459
  <OSRow>
454
460
  <OText mBottom={4}>
455
461
  {fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
456
- ({fee?.fixed > 0 && `${parsePrice(fee?.fixed)} + `}{fee.percentage}%){' '}
462
+ ({fee?.fixed > 0 && `${parsePrice(fee?.fixed, { currency: order?.currency})} + `}{fee.percentage}%){' '}
457
463
  </OText>
458
464
  </OSRow>
459
- <OText mBottom={4}>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0)}</OText>
465
+ <OText mBottom={4}>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0, { currency: order?.currency})}</OText>
460
466
  </Table>
461
467
  ))
462
468
  }
@@ -471,7 +477,7 @@ export const OrderContentComponent = (props: OrderContent) => {
471
477
  )}
472
478
  </OText>
473
479
  </OSRow>
474
- <OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
480
+ <OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
475
481
  </Table>
476
482
  ))
477
483
  }
@@ -483,7 +489,7 @@ export const OrderContentComponent = (props: OrderContent) => {
483
489
  </OText>
484
490
 
485
491
  <OText mBottom={4}>
486
- {parsePrice(order?.summary?.delivery_price)}
492
+ {parsePrice(order?.summary?.delivery_price, { currency: order?.currency})}
487
493
  </OText>
488
494
  </Table>
489
495
  )
@@ -499,7 +505,7 @@ export const OrderContentComponent = (props: OrderContent) => {
499
505
  )}
500
506
  </OText>
501
507
  </OSRow>
502
- <OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
508
+ <OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
503
509
  </Table>
504
510
  ))
505
511
  }
@@ -514,7 +520,7 @@ export const OrderContentComponent = (props: OrderContent) => {
514
520
  `(${verifyDecimals(order?.summary?.driver_tip, parseNumber)}%)`
515
521
  )}
516
522
  </OText>
517
- <OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip)}</OText>
523
+ <OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip, { currency: order?.currency})}</OText>
518
524
  </Table>
519
525
  )}
520
526
 
@@ -528,7 +534,7 @@ export const OrderContentComponent = (props: OrderContent) => {
528
534
  mBottom={4}
529
535
  style={styles.textBold}
530
536
  color={theme.colors.primary}>
531
- {parsePrice(order?.summary?.total ?? order?.total)}
537
+ {parsePrice(order?.summary?.total ?? order?.total, { currency: order?.currency})}
532
538
  </OText>
533
539
  </Table>
534
540
  </Total>
@@ -571,7 +577,7 @@ export const OrderContentComponent = (props: OrderContent) => {
571
577
  )}
572
578
  </View>
573
579
  <OText>
574
- -{parsePrice(event.amount)}
580
+ -{parsePrice(event.amount, { currency: order?.currency})}
575
581
  </OText>
576
582
  </View>
577
583
  ))}
@@ -6,7 +6,7 @@ import FontistoIcon from 'react-native-vector-icons/Fontisto'
6
6
  import FeatherIcon from 'react-native-vector-icons/Feather';
7
7
  import SelectDropdown from 'react-native-select-dropdown'
8
8
  import { useTheme } from 'styled-components/native';
9
-
9
+ import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
10
10
  import {
11
11
  FiltersTab,
12
12
  TabsContainer,
@@ -611,7 +611,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
611
611
  </LeftSide>
612
612
 
613
613
  <RightSide style={{ paddingBottom: 110, paddingHorizontal: 20 }}>
614
- {currentOrderSelected && (
614
+ {currentOrderSelected && (
615
615
  <OrderDetailsBusiness {...props.orderDetailsProps} order={currentOrderSelected} isCustomView />
616
616
  )}
617
617
  </RightSide>
@@ -756,6 +756,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
756
756
 
757
757
  export const OrdersListManager = (props: OrdersOptionParams) => {
758
758
  const [, t] = useLanguage();
759
+ const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
759
760
  const ordersProps = {
760
761
  ...props,
761
762
  UIComponent: OrdersListManagerUI,
@@ -870,5 +871,11 @@ export const OrdersListManager = (props: OrdersOptionParams) => {
870
871
  ]
871
872
  };
872
873
 
873
- return <OrderListGroups {...ordersProps} />;
874
+ return (<>
875
+ <OrderListGroups {...ordersProps} />
876
+ {props?.checkNotification && (
877
+ <NotificationSetting checkNotificationStatus={checkNotificationStatus}
878
+ setCheckNotificationStatus={setCheckNotificationStatus} />
879
+ )}
880
+ </>);
874
881
  };
@@ -5,8 +5,10 @@ import SelectDropdown from 'react-native-select-dropdown'
5
5
  import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
6
6
  import FeatherIcon from 'react-native-vector-icons/Feather';
7
7
  import FontistoIcon from 'react-native-vector-icons/Fontisto'
8
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
8
9
  import { useTheme } from 'styled-components/native';
9
10
  import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
11
+ import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
10
12
  import { NewOrderNotification } from '../NewOrderNotification';
11
13
 
12
14
  import { OText, OButton, OModal, OIconButton, OInput, OIcon } from '../shared';
@@ -32,7 +34,8 @@ import {
32
34
  ItemContent,
33
35
  TimerInputWrapper,
34
36
  OverLine,
35
- Actions
37
+ Actions,
38
+ InputContainer
36
39
  } from './styles';
37
40
  import { PreviousOrders } from '../PreviousOrders';
38
41
  import { OrdersOptionParams } from '../../types';
@@ -47,7 +50,7 @@ import { OrdersOptionDelivery } from '../OrdersOptionDelivery';
47
50
  import { OrdersOptionPaymethod } from '../OrdersOptionPaymethod';
48
51
  import { OrdersOptionDriver } from '../OrdersOptionDriver';
49
52
  import { OrdersOptionDate } from '../OrdersOptionDate';
50
-
53
+ import { GestureEvent, GestureDetector } from 'react-native-gesture-handler'
51
54
  const tabsList: any = {
52
55
  pending: 1,
53
56
  inProgress: 2,
@@ -88,7 +91,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
88
91
  handleClickLogisticOrder,
89
92
  logisticOrders,
90
93
  loadLogisticOrders,
91
- isLogisticActivated
94
+ isLogisticActivated,
95
+ isAlsea
92
96
  } = props;
93
97
 
94
98
  const defaultSearchList = {
@@ -121,7 +125,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
121
125
  const [selectedTabStatus, setSelectedTabStatus] = useState([])
122
126
  const [hour, setHour] = useState(0)
123
127
  const [minute, setMinute] = useState(0)
124
-
128
+ const [openedSelect, setOpenedSelect] = useState('')
125
129
  const WIDTH_SCREEN = orientationState?.dimensions?.width
126
130
  const HEIGHT_SCREEN = orientationState?.dimensions?.height
127
131
  const IS_PORTRAIT = orientationState.orientation === PORTRAIT
@@ -401,19 +405,21 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
401
405
  setOpenSLASettingModal(false)
402
406
  }
403
407
 
404
- useEffect(() => {
405
- setCurrentFilters(null)
406
- onFiltered && onFiltered(null)
408
+ const handleClearFilters = () => {
407
409
  setSearch(defaultSearchList)
410
+ }
411
+
412
+ useEffect(() => {
408
413
  scrollRefTab.current?.scrollTo({ animated: true });
409
414
  scrollListRef.current?.scrollTo({ animated: true });
410
415
  scrollRef.current?.scrollTo({ y: 0, animated: true });
416
+ setTags({ values: [] })
411
417
  }, [currentTabSelected])
412
418
 
413
419
  useEffect(() => {
414
420
  setSelectedTabStatus(deliveryStatus)
415
421
  }, [])
416
-
422
+
417
423
  return (
418
424
  // <GestureRecognizer
419
425
  // onSwipeLeft={onSwipeLeft}
@@ -545,7 +551,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
545
551
  </ScrollView>
546
552
  </FiltersTab>
547
553
  <View style={{ flex: 1, minHeight: HEIGHT_SCREEN - 450 }}>
548
- {currentTabSelected !== 'logisticOrders' && (
554
+ {currentTabSelected !== 'logisticOrders' && !isAlsea && (
549
555
  <View
550
556
  style={{
551
557
  display: 'flex',
@@ -725,11 +731,11 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
725
731
  </ScrollView>
726
732
  </View>
727
733
  {/* </GestureRecognizer> */}
728
-
734
+
729
735
  {isBusinessApp && (
730
736
  <NewOrderNotification isBusinessApp={isBusinessApp} />
731
737
  )}
732
-
738
+
733
739
  {(openSearchModal || openSLASettingModal) && (
734
740
  <OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
735
741
  <ModalContainer
@@ -752,22 +758,34 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
752
758
  {openSearchModal && (
753
759
  <SearchModalContent>
754
760
  <ModalTitle>{t('SEARCH_ORDERS', 'Search orders')}</ModalTitle>
755
- <OInput
756
- value={search.id}
757
- onChange={(value: any) => setSearch({ ...search, id: value })}
758
- style={styles.inputStyle}
759
- placeholder={t('ORDER_NUMBER', 'Order number')}
760
- autoCorrect={false}
761
- />
761
+ <InputContainer>
762
+ <OInput
763
+ value={search.id}
764
+ onChange={(value: any) => setSearch({ ...search, id: value })}
765
+ style={styles.inputStyle}
766
+ placeholder={t('ORDER_NUMBER', 'Order number')}
767
+ autoCorrect={false}
768
+ />
769
+ <AntDesignIcon
770
+ name='close'
771
+ size={20}
772
+ style={{ position: 'absolute', right: 12, top: 13 }}
773
+ onPress={() => setSearch({ ...search, id: '' })}
774
+ />
775
+ </InputContainer>
762
776
  <OrdersOptionDate
763
777
  {...props}
764
778
  search={search}
765
779
  onSearch={setSearch}
780
+ setOpenedSelect={setOpenedSelect}
781
+ openedSelect={openedSelect}
766
782
  />
767
783
  <OrdersOptionCity
768
784
  {...props}
769
785
  search={search}
770
786
  onSearch={setSearch}
787
+ setOpenedSelect={setOpenedSelect}
788
+ openedSelect={openedSelect}
771
789
  />
772
790
  {isBusinessApp && (
773
791
  <>
@@ -775,21 +793,29 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
775
793
  {...props}
776
794
  search={search}
777
795
  onSearch={setSearch}
796
+ setOpenedSelect={setOpenedSelect}
797
+ openedSelect={openedSelect}
778
798
  />
779
799
  <OrdersOptionDelivery
780
800
  {...props}
781
801
  search={search}
782
802
  onSearch={setSearch}
803
+ setOpenedSelect={setOpenedSelect}
804
+ openedSelect={openedSelect}
783
805
  />
784
806
  <OrdersOptionDriver
785
807
  {...props}
786
808
  search={search}
787
809
  onSearch={setSearch}
810
+ setOpenedSelect={setOpenedSelect}
811
+ openedSelect={openedSelect}
788
812
  />
789
813
  <OrdersOptionPaymethod
790
814
  {...props}
791
815
  search={search}
792
816
  onSearch={setSearch}
817
+ setOpenedSelect={setOpenedSelect}
818
+ openedSelect={openedSelect}
793
819
  />
794
820
  </>
795
821
  )}
@@ -799,13 +825,24 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
799
825
  imgRightSrc={null}
800
826
  style={{
801
827
  borderRadius: 7.6,
802
- marginBottom: 70,
828
+ marginBottom: 10,
803
829
  marginTop: 60,
804
830
  zIndex: 12
805
831
  }}
806
832
  onClick={applyFilters}
807
833
  />
808
-
834
+ <OButton
835
+ text={t('CLEAR_SEARCh', 'Clear search')}
836
+ imgRightSrc={null}
837
+ bgColor='#fff'
838
+ style={{
839
+ borderRadius: 7.6,
840
+ marginBottom: 0,
841
+ marginTop: 0,
842
+ zIndex: 12
843
+ }}
844
+ onClick={handleClearFilters}
845
+ />
809
846
  </SearchModalContent>
810
847
  )}
811
848
  {openSLASettingModal && (
@@ -934,6 +971,7 @@ export const OrdersOption = (props: OrdersOptionParams) => {
934
971
  const [, t] = useLanguage();
935
972
  const [configState] = useConfig()
936
973
  const theme = useTheme()
974
+ const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
937
975
  const ordersProps = {
938
976
  ...props,
939
977
  UIComponent: OrdersOptionUI,
@@ -1048,5 +1086,11 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1048
1086
  ]
1049
1087
  };
1050
1088
 
1051
- return <OrderListGroups {...ordersProps} />;
1089
+ return (<>
1090
+ <OrderListGroups {...ordersProps} />
1091
+ {props?.checkNotification && (
1092
+ <NotificationSetting checkNotificationStatus={checkNotificationStatus}
1093
+ setCheckNotificationStatus={setCheckNotificationStatus} />
1094
+ )}
1095
+ </>);
1052
1096
  };
@@ -149,4 +149,8 @@ export const OverLine = styled.View`
149
149
  `
150
150
  export const Actions = styled.View`
151
151
 
152
- `
152
+ `
153
+
154
+ export const InputContainer = styled.View`
155
+ position: relative;
156
+ `
@@ -10,7 +10,9 @@ export const OrdersOptionBusinessUI = (props: any) => {
10
10
  const {
11
11
  search,
12
12
  onSearch,
13
- businessesList
13
+ businessesList,
14
+ setOpenedSelect,
15
+ openedSelect
14
16
  } = props
15
17
 
16
18
  const theme = useTheme();
@@ -25,6 +27,14 @@ export const OrdersOptionBusinessUI = (props: any) => {
25
27
  setOptionsList(businesses)
26
28
  }, [businessesList?.businesses])
27
29
 
30
+ const handleClear = () => {
31
+ onSearch({ ...search, business: '' })
32
+ }
33
+
34
+ const handleOpenSelect = () => {
35
+ setOpenedSelect('business')
36
+ }
37
+
28
38
  return (
29
39
  <Container isIos={Platform.OS === 'ios'}>
30
40
  <ODropDown
@@ -36,6 +46,10 @@ export const OrdersOptionBusinessUI = (props: any) => {
36
46
  textcolor={theme.colors.unselectText}
37
47
  placeholder={t('SELECT_BUSINESS', 'Select Business')}
38
48
  dropViewMaxHeight={200}
49
+ handleClear={handleClear}
50
+ handleOpenSelect={handleOpenSelect}
51
+ openedSelect={openedSelect}
52
+ selectType='business'
39
53
  />
40
54
  </Container>
41
55
  );
@@ -10,7 +10,9 @@ export const OrdersOptionCityUI = (props: any) => {
10
10
  const {
11
11
  search,
12
12
  onSearch,
13
- allListValues
13
+ allListValues,
14
+ setOpenedSelect,
15
+ openedSelect
14
16
  } = props
15
17
 
16
18
  const theme = useTheme();
@@ -27,6 +29,14 @@ export const OrdersOptionCityUI = (props: any) => {
27
29
  setOptionsList(cities)
28
30
  }, [allListValues?.countries])
29
31
 
32
+ const handleClear = () => {
33
+ onSearch({ ...search, city: '' })
34
+ }
35
+
36
+ const handleOpenSelect = () => {
37
+ setOpenedSelect('city')
38
+ }
39
+
30
40
  return (
31
41
  <Container isIos={Platform.OS === 'ios'}>
32
42
  <ODropDown
@@ -38,6 +48,10 @@ export const OrdersOptionCityUI = (props: any) => {
38
48
  textcolor={theme.colors.unselectText}
39
49
  placeholder={t('SELECT_CITY', 'Select City')}
40
50
  dropViewMaxHeight={200}
51
+ handleClear={handleClear}
52
+ handleOpenSelect={handleOpenSelect}
53
+ openedSelect={openedSelect}
54
+ selectType='city'
41
55
  />
42
56
  </Container>
43
57
  );
@@ -3,12 +3,16 @@ import { useLanguage } from 'ordering-components/native';
3
3
  import { useTheme } from 'styled-components/native';
4
4
  import { Container } from './styles';
5
5
  import ODropDownCalendar from '../shared/ODropDownCalendar';
6
- import { Platform } from 'react-native'
7
-
6
+ import { Button, Platform, Touchable, TouchableOpacity, View } from 'react-native'
7
+ import DoubleClick from 'react-native-double-tap'
8
+ import { OText } from '../shared';
9
+ import DoubleTap from 'react-native-double-tap';
8
10
  export const OrdersOptionDate = (props: any) => {
9
11
  const {
10
12
  search,
11
- onSearch
13
+ onSearch,
14
+ setOpenedSelect,
15
+ openedSelect
12
16
  } = props
13
17
 
14
18
  const theme = useTheme();
@@ -22,18 +26,23 @@ export const OrdersOptionDate = (props: any) => {
22
26
 
23
27
  const handleChangeOption = (option: any) => {
24
28
  if (option === 'calendar') {
25
- onSearch({...search, date: {...search.date, type: option}})
29
+ onSearch({ ...search, date: { ...search.date, type: option } })
26
30
  } else {
27
- onSearch({...search, date: {from: '', to: '', type: option}})
31
+ onSearch({ ...search, date: { from: '', to: '', type: option } })
28
32
  }
29
33
  }
30
34
 
31
35
  const handleChangeDate = (from: any, to: any) => {
32
- onSearch({...search, date: {...search.date, from: from, to: to}})
36
+ onSearch({ ...search, date: { ...search.date, from: from, to: to } })
37
+ }
38
+
39
+ const handleOpenSelect = () => {
40
+ setOpenedSelect('calendar')
33
41
  }
34
42
 
35
43
  return (
36
44
  <Container isIos={Platform.OS === 'ios'}>
45
+
37
46
  <ODropDownCalendar
38
47
  options={optionsList}
39
48
  defaultValue={search.date.type}
@@ -47,6 +56,10 @@ export const OrdersOptionDate = (props: any) => {
47
56
  rangeDate={search.date}
48
57
  handleChangeDate={handleChangeDate}
49
58
  isCalendarAlwaysVisible
59
+ handleClear={() => onSearch({ ...search, date: { from: '', to: '', type: '' } })}
60
+ handleOpenSelect={handleOpenSelect}
61
+ openedSelect={openedSelect}
62
+ selectType='calendar'
50
63
  />
51
64
  </Container>
52
65
  );