ordering-ui-react-native 0.15.83 → 0.15.84-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 (226) hide show
  1. package/package.json +7 -3
  2. package/src/DeliveryApp.tsx +43 -1
  3. package/src/components/ActiveOrders/index.tsx +61 -63
  4. package/src/components/ActiveOrders/styles.tsx +1 -1
  5. package/src/components/AddressForm/index.tsx +18 -2
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessController/index.tsx +16 -8
  8. package/src/components/BusinessInformation/index.tsx +14 -0
  9. package/src/components/BusinessTypeFilter/index.tsx +1 -2
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +25 -3
  12. package/src/components/DriverTips/index.tsx +11 -6
  13. package/src/components/LanguageSelector/index.tsx +24 -15
  14. package/src/components/LoginForm/index.tsx +120 -30
  15. package/src/components/LoginForm/styles.tsx +6 -0
  16. package/src/components/Messages/index.tsx +2 -2
  17. package/src/components/NotificationSetting/index.tsx +85 -0
  18. package/src/components/OrderDetails/index.tsx +7 -21
  19. package/src/components/PaymentOptions/index.tsx +335 -365
  20. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  21. package/src/components/ReviewDriver/index.tsx +1 -1
  22. package/src/components/ReviewOrder/index.tsx +2 -1
  23. package/src/components/ReviewProducts/index.tsx +11 -0
  24. package/src/components/SignupForm/index.tsx +145 -61
  25. package/src/components/SingleProductCard/index.tsx +16 -4
  26. package/src/components/SingleProductReview/index.tsx +1 -1
  27. package/src/components/StripeElementsForm/index.tsx +25 -16
  28. package/src/components/StripeMethodForm/index.tsx +22 -24
  29. package/src/components/UpsellingProducts/index.tsx +1 -1
  30. package/src/components/UserProfileForm/index.tsx +63 -6
  31. package/src/components/UserProfileForm/styles.tsx +8 -0
  32. package/src/components/VerifyPhone/styles.tsx +1 -2
  33. package/src/components/shared/OBottomPopup.tsx +6 -2
  34. package/src/components/shared/OModal.tsx +1 -1
  35. package/src/hooks/useCountdownTimer.tsx +26 -0
  36. package/src/index.tsx +2 -0
  37. package/src/navigators/CheckoutNavigator.tsx +6 -0
  38. package/src/navigators/HomeNavigator.tsx +6 -0
  39. package/src/pages/BusinessesListing.tsx +7 -6
  40. package/src/pages/MultiCheckout.tsx +31 -0
  41. package/src/pages/MultiOrdersDetails.tsx +27 -0
  42. package/src/pages/OrderDetails.tsx +1 -1
  43. package/src/pages/ReviewDriver.tsx +2 -2
  44. package/src/pages/ReviewOrder.tsx +2 -2
  45. package/src/theme.json +0 -1
  46. package/src/types/index.tsx +18 -11
  47. package/src/utils/index.tsx +28 -29
  48. package/themes/business/index.tsx +4 -0
  49. package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +100 -60
  50. package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
  51. package/themes/business/src/components/Chat/index.tsx +51 -91
  52. package/themes/business/src/components/DriverMap/index.tsx +6 -5
  53. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  54. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  55. package/themes/business/src/components/LoginForm/index.tsx +89 -2
  56. package/themes/business/src/components/LoginForm/styles.tsx +6 -0
  57. package/themes/business/src/components/LogoutButton/index.tsx +1 -1
  58. package/themes/business/src/components/MapView/index.tsx +1 -1
  59. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -13
  60. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  61. package/themes/business/src/components/OrderDetails/Delivery.tsx +17 -7
  62. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +26 -18
  63. package/themes/business/src/components/OrdersListManager/index.tsx +11 -4
  64. package/themes/business/src/components/OrdersOption/index.tsx +16 -4
  65. package/themes/business/src/components/PreviousOrders/index.tsx +7 -7
  66. package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
  67. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  68. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  69. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  70. package/themes/business/src/components/shared/OModal.tsx +41 -38
  71. package/themes/business/src/types/index.tsx +13 -6
  72. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  73. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  74. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  75. package/themes/kiosk/src/components/BusinessMenu/index.tsx +25 -26
  76. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
  77. package/themes/kiosk/src/components/Cart/index.tsx +10 -11
  78. package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
  79. package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
  80. package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
  81. package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
  82. package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
  83. package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
  84. package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
  85. package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
  86. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  87. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  88. package/themes/kiosk/src/components/OrderDetails/index.tsx +2 -2
  89. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
  90. package/themes/kiosk/src/components/PaymentOptions/index.tsx +55 -53
  91. package/themes/kiosk/src/components/ProductForm/index.tsx +6 -7
  92. package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
  93. package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
  94. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  95. package/themes/kiosk/src/types/index.d.ts +1 -0
  96. package/themes/original/index.tsx +22 -0
  97. package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
  98. package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
  99. package/themes/original/src/components/AddressForm/index.tsx +7 -6
  100. package/themes/original/src/components/AddressList/index.tsx +1 -1
  101. package/themes/original/src/components/AppleLogin/index.tsx +6 -8
  102. package/themes/original/src/components/BusinessBasicInformation/index.tsx +291 -150
  103. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  104. package/themes/original/src/components/BusinessController/index.tsx +179 -96
  105. package/themes/original/src/components/BusinessController/styles.tsx +5 -0
  106. package/themes/original/src/components/BusinessItemAccordion/index.tsx +11 -8
  107. package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
  108. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  109. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  110. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  111. package/themes/original/src/components/BusinessListingSearch/index.tsx +185 -120
  112. package/themes/original/src/components/BusinessListingSearch/styles.tsx +23 -11
  113. package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
  114. package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
  115. package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
  116. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  117. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  118. package/themes/original/src/components/BusinessProductsList/index.tsx +66 -73
  119. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  120. package/themes/original/src/components/BusinessProductsListing/index.tsx +311 -176
  121. package/themes/original/src/components/BusinessProductsListing/styles.tsx +18 -0
  122. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  123. package/themes/original/src/components/BusinessTypeFilter/index.tsx +106 -38
  124. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  125. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  126. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -2
  127. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +663 -0
  128. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  129. package/themes/original/src/components/BusinessesListing/index.tsx +104 -462
  130. package/themes/original/src/components/Cart/index.tsx +83 -38
  131. package/themes/original/src/components/Cart/styles.tsx +4 -0
  132. package/themes/original/src/components/CartContent/index.tsx +3 -3
  133. package/themes/original/src/components/Checkout/index.tsx +128 -67
  134. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  135. package/themes/original/src/components/DriverTips/index.tsx +17 -12
  136. package/themes/original/src/components/Favorite/index.tsx +92 -0
  137. package/themes/original/src/components/Favorite/styles.tsx +22 -0
  138. package/themes/original/src/components/FavoriteList/index.tsx +298 -0
  139. package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
  140. package/themes/original/src/components/ForgotPasswordForm/index.tsx +13 -4
  141. package/themes/original/src/components/GPSButton/index.tsx +15 -8
  142. package/themes/original/src/components/GoogleMap/index.tsx +11 -11
  143. package/themes/original/src/components/Help/index.tsx +21 -4
  144. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
  145. package/themes/original/src/components/HelpGuide/index.tsx +8 -3
  146. package/themes/original/src/components/HelpOrder/index.tsx +8 -3
  147. package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
  148. package/themes/original/src/components/LastOrders/index.tsx +12 -1
  149. package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
  150. package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
  151. package/themes/original/src/components/LoginForm/index.tsx +332 -164
  152. package/themes/original/src/components/LoginForm/styles.tsx +1 -3
  153. package/themes/original/src/components/Messages/index.tsx +17 -17
  154. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  155. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  156. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
  157. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
  158. package/themes/original/src/components/MultiCheckout/index.tsx +304 -0
  159. package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
  160. package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
  161. package/themes/original/src/components/MultiOrdersDetails/index.tsx +262 -0
  162. package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
  163. package/themes/original/src/components/MyOrders/index.tsx +132 -27
  164. package/themes/original/src/components/MyOrders/styles.tsx +8 -1
  165. package/themes/original/src/components/NavBar/index.tsx +11 -5
  166. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  167. package/themes/original/src/components/OrderDetails/index.tsx +164 -81
  168. package/themes/original/src/components/OrderDetails/styles.tsx +5 -2
  169. package/themes/original/src/components/OrderItAgain/index.tsx +73 -0
  170. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  171. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  172. package/themes/original/src/components/OrderSummary/index.tsx +2 -35
  173. package/themes/original/src/components/OrderTypeSelector/index.tsx +78 -35
  174. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  175. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +140 -0
  176. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
  177. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
  178. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
  179. package/themes/original/src/components/OrdersOption/index.tsx +138 -46
  180. package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
  181. package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
  182. package/themes/original/src/components/PaymentOptionWallet/index.tsx +15 -22
  183. package/themes/original/src/components/PaymentOptions/index.tsx +57 -37
  184. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  185. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  186. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  187. package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
  188. package/themes/original/src/components/ProductForm/index.tsx +714 -673
  189. package/themes/original/src/components/ProductForm/styles.tsx +9 -7
  190. package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
  191. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  192. package/themes/original/src/components/ProductOptionSubOption/index.tsx +13 -9
  193. package/themes/original/src/components/ProfessionalFilter/index.tsx +128 -0
  194. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  195. package/themes/original/src/components/ProfessionalProfile/index.tsx +298 -0
  196. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  197. package/themes/original/src/components/Promotions/index.tsx +22 -6
  198. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  199. package/themes/original/src/components/ReviewOrder/index.tsx +1 -1
  200. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  201. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  202. package/themes/original/src/components/SearchBar/index.tsx +13 -5
  203. package/themes/original/src/components/ServiceForm/index.tsx +579 -0
  204. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  205. package/themes/original/src/components/SignupForm/index.tsx +237 -126
  206. package/themes/original/src/components/SingleOrderCard/index.tsx +316 -0
  207. package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
  208. package/themes/original/src/components/SingleProductCard/index.tsx +197 -95
  209. package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
  210. package/themes/original/src/components/StripeElementsForm/index.tsx +25 -9
  211. package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
  212. package/themes/original/src/components/UpsellingProducts/index.tsx +7 -7
  213. package/themes/original/src/components/UserDetails/index.tsx +32 -18
  214. package/themes/original/src/components/UserFormDetails/index.tsx +108 -74
  215. package/themes/original/src/components/UserProfile/index.tsx +5 -1
  216. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  217. package/themes/original/src/components/UserVerification/index.tsx +178 -192
  218. package/themes/original/src/components/Wallets/index.tsx +177 -163
  219. package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
  220. package/themes/original/src/components/shared/OButton.tsx +10 -3
  221. package/themes/original/src/components/shared/OInput.tsx +3 -2
  222. package/themes/original/src/components/shared/OModal.tsx +4 -2
  223. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  224. package/themes/original/src/types/index.tsx +212 -44
  225. package/themes/original/src/utils/index.tsx +94 -1
  226. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -7,6 +7,7 @@ import FeatherIcon from 'react-native-vector-icons/Feather';
7
7
  import FontistoIcon from 'react-native-vector-icons/Fontisto'
8
8
  import { useTheme } from 'styled-components/native';
9
9
  import { DeviceOrientationMethods } from '../../../../../src/hooks/DeviceOrientation'
10
+ import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
10
11
  import { NewOrderNotification } from '../NewOrderNotification';
11
12
 
12
13
  import { OText, OButton, OModal, OIconButton, OInput, OIcon } from '../shared';
@@ -88,7 +89,8 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
88
89
  handleClickLogisticOrder,
89
90
  logisticOrders,
90
91
  loadLogisticOrders,
91
- isLogisticActivated
92
+ isLogisticActivated,
93
+ isAlsea
92
94
  } = props;
93
95
 
94
96
  const defaultSearchList = {
@@ -545,7 +547,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
545
547
  </ScrollView>
546
548
  </FiltersTab>
547
549
  <View style={{ flex: 1, minHeight: HEIGHT_SCREEN - 450 }}>
548
- {currentTabSelected !== 'logisticOrders' && (
550
+ {currentTabSelected !== 'logisticOrders' && !isAlsea && (
549
551
  <View
550
552
  style={{
551
553
  display: 'flex',
@@ -726,7 +728,10 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
726
728
  </View>
727
729
  {/* </GestureRecognizer> */}
728
730
 
729
- <NewOrderNotification />
731
+ {isBusinessApp && (
732
+ <NewOrderNotification isBusinessApp={isBusinessApp} />
733
+ )}
734
+
730
735
  {(openSearchModal || openSLASettingModal) && (
731
736
  <OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
732
737
  <ModalContainer
@@ -931,6 +936,7 @@ export const OrdersOption = (props: OrdersOptionParams) => {
931
936
  const [, t] = useLanguage();
932
937
  const [configState] = useConfig()
933
938
  const theme = useTheme()
939
+ const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
934
940
  const ordersProps = {
935
941
  ...props,
936
942
  UIComponent: OrdersOptionUI,
@@ -1045,5 +1051,11 @@ export const OrdersOption = (props: OrdersOptionParams) => {
1045
1051
  ]
1046
1052
  };
1047
1053
 
1048
- return <OrderListGroups {...ordersProps} />;
1054
+ return (<>
1055
+ <OrderListGroups {...ordersProps} />
1056
+ {props?.checkNotification && (
1057
+ <NotificationSetting checkNotificationStatus={checkNotificationStatus}
1058
+ setCheckNotificationStatus={setCheckNotificationStatus} />
1059
+ )}
1060
+ </>);
1049
1061
  };
@@ -31,8 +31,8 @@ export const PreviousOrders = (props: any) => {
31
31
  const theme = useTheme();
32
32
  const [, setCurrentTime] = useState()
33
33
  const [allowColumns, setAllowColumns] = useState({
34
- timer: true,
35
- slaBar: true,
34
+ timer: configState?.configs?.order_deadlines_enabled?.value === '1',
35
+ slaBar: configState?.configs?.order_deadlines_enabled?.value === '1',
36
36
  })
37
37
 
38
38
  const [orientationState] = useDeviceOrientation();
@@ -104,8 +104,8 @@ export const PreviousOrders = (props: any) => {
104
104
  const offset = 300
105
105
  const cdtToutc = moment(order?.delivery_datetime).add(offset, 'minutes').format('YYYY-MM-DD HH:mm:ss')
106
106
  const _delivery = order?.delivery_datetime_utc
107
- ? parseDate(order?.delivery_datetime_utc)
108
- : parseDate(cdtToutc)
107
+ ? parseDate(order?.delivery_datetime_utc, { outputFormat: 'YYYY-MM-DD hh:mm A' })
108
+ : parseDate(cdtToutc, { outputFormat: 'YYYY-MM-DD hh:mm A' })
109
109
  const _eta = order?.eta_time
110
110
  const diffTimeAsSeconds = moment(_delivery, 'YYYY-MM-DD hh:mm A').add(_eta, 'minutes').diff(moment().utc(), 'seconds')
111
111
  return Math.ceil(diffTimeAsSeconds / 60)
@@ -178,9 +178,9 @@ export const PreviousOrders = (props: any) => {
178
178
  activeOpacity={1}
179
179
  >
180
180
  <Card key={order.id}>
181
- {allowColumns?.slaBar && (
182
- <Timestatus style={{ backgroundColor: getStatusClassName(getDelayMinutes(order)) === 'in_time' ? '#00D27A' : getStatusClassName(getDelayMinutes(order)) === 'at_risk' ? '#FFC700' : getStatusClassName(getDelayMinutes(order)) === 'delayed' ? '#E63757' : '' }} />
183
- )}
181
+ {allowColumns?.slaBar && (
182
+ <Timestatus style={{ backgroundColor: getStatusClassName(getDelayMinutes(order)) === 'in_time' ? '#00D27A' : getStatusClassName(getDelayMinutes(order)) === 'at_risk' ? '#FFC700' : getStatusClassName(getDelayMinutes(order)) === 'delayed' ? '#E63757' : '' }} />
183
+ )}
184
184
  {
185
185
  order.business?.logo && (
186
186
  <Logo style={styles.logo}>
@@ -28,6 +28,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
28
28
  getProductMax,
29
29
  onDeleteProduct,
30
30
  onEditProduct,
31
+ currency
31
32
  } = props;
32
33
 
33
34
  const [, t] = useLanguage();
@@ -147,13 +148,13 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
147
148
  }}>
148
149
  <View style={{ flexDirection: 'row' }}>
149
150
  <OText size={12} color={theme.colors.textGray}>
150
- {parsePrice(getProductPrice(product))}
151
+ {parsePrice(getProductPrice(product), { currency })}
151
152
  </OText>
152
153
 
153
154
  {(
154
155
  productInfo?.()?.ingredients?.length > 0 ||
155
156
  productInfo?.()?.options?.length > 0 ||
156
- product.comment
157
+ !!product.comment
157
158
  ) && !isClickableEvent && (
158
159
  <MaterialCommunityIcon name="chevron-down" size={12} />
159
160
  )}
@@ -268,7 +269,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
268
269
  suboption.position,
269
270
  )
270
271
  : '',
271
- price: parsePrice(suboption.price),
272
+ price: parsePrice(suboption.price, { currency }),
272
273
  })}
273
274
  </OText>
274
275
  </ProductSubOption>
@@ -278,7 +279,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
278
279
  </ProductOptionsList>
279
280
  )}
280
281
 
281
- {product.comment && (
282
+ {!!product.comment && (
282
283
  <ProductComment>
283
284
  <OText
284
285
  size={12}
@@ -0,0 +1,53 @@
1
+ import React from 'react'
2
+ import { Dimensions, View } from 'react-native'
3
+ import { OButton, OIcon, OText } from '../shared'
4
+ import { useLanguage, useSession } from 'ordering-components/native'
5
+ import { useTheme } from 'styled-components/native'
6
+
7
+ export const ScheduleBlocked = (props : any) => {
8
+ const { nextSchedule } = props
9
+ const [, t] = useLanguage()
10
+ const [, {logout}] = useSession()
11
+ const theme = useTheme()
12
+ const deviceWidth = Dimensions.get('screen').width
13
+
14
+ const daysOfWeek = [
15
+ t('SUNDAY', 'Sunday'),
16
+ t('MONDAY', 'Monday'),
17
+ t('TUESDAY', 'Tuesday'),
18
+ t('WEDNESDAY', 'Wednesday'),
19
+ t('THURSDAY', 'Thurday'),
20
+ t('FRIDAY', 'Friday'),
21
+ t('SATURDAY', 'Saturday'),
22
+ ]
23
+
24
+ const scheduleFormatted = ({ hour, minute }: any) => {
25
+ const checkTime = (val: number) => val < 10 ? `0${val}` : val
26
+ return `${checkTime(hour)}:${checkTime(minute)}`
27
+ }
28
+
29
+ const goBack = () => {
30
+ logout()
31
+ }
32
+
33
+ return (
34
+ <View style={{ alignItems: 'center', padding: 40 }}>
35
+ <OText size={20}>{t('YOU_CANT_LOGIN', 'You can\'t login')}</OText>
36
+ <OIcon
37
+ src={theme.images?.general?.deliveryWaiting}
38
+ width={(deviceWidth - 80) * 0.9}
39
+ height={(deviceWidth - 80) * 0.8}
40
+ />
41
+ <OText>{t('OUTSIDE_ESTABLISHED_SCHEDULE', 'You are outside the established schedule')}</OText>
42
+ <View style={{ flexDirection: 'row', marginBottom: 20 }}>
43
+ <OText color={theme.colors.primary}>{t('NEXT_TIME', 'Next time')}: </OText>
44
+ <OText>{daysOfWeek[nextSchedule?.day]} {scheduleFormatted(nextSchedule?.schedule?.open)}</OText>
45
+ </View>
46
+ <OButton
47
+ text={t('GO_BACK', 'Go back')}
48
+ textStyle={{ color: theme.colors.white }}
49
+ onClick={goBack}
50
+ />
51
+ </View>
52
+ )
53
+ }
@@ -36,6 +36,7 @@ export const UserFormDetailsUI = (props: any) => {
36
36
  handleCancelEdit,
37
37
  toggleIsEdit,
38
38
  isCheckout,
39
+ isAlsea
39
40
  } = props;
40
41
 
41
42
  const theme = useTheme();
@@ -265,7 +266,9 @@ export const UserFormDetailsUI = (props: any) => {
265
266
  }).map(
266
267
  (field: any) =>
267
268
  showField &&
268
- showField(field.code) && (
269
+ showField(field.code) &&
270
+ !isAlsea
271
+ && (
269
272
  <React.Fragment key={field.id}>
270
273
  <OText style={styles.label}>
271
274
  {t(field?.code.toUpperCase(), field?.name)}
@@ -442,7 +445,7 @@ export const UserFormDetailsUI = (props: any) => {
442
445
  </OText>
443
446
  )}
444
447
 
445
- {!!showInputPhoneNumber && (
448
+ {!!showInputPhoneNumber && !isAlsea && (
446
449
  <WrapperPhone>
447
450
  <PhoneInputNumber
448
451
  data={phoneInputData}
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { View, StyleSheet, ScrollView, ActivityIndicator } from 'react-native';
2
+ import { View, StyleSheet, ScrollView, ActivityIndicator, Pressable } from 'react-native';
3
3
  import { useForm } from 'react-hook-form';
4
4
  import { launchImageLibrary } from 'react-native-image-picker';
5
5
  import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
@@ -22,6 +22,7 @@ import {
22
22
  import { LogoutButton } from '../LogoutButton';
23
23
  import { LanguageSelector } from '../LanguageSelector';
24
24
  import { UserFormDetailsUI } from '../UserFormDetails';
25
+ import { DriverSchedule } from '../DriverSchedule'
25
26
  import ToggleSwitch from 'toggle-switch-react-native';
26
27
  import { UDWrapper } from '../UserFormDetails/styles';
27
28
  import {
@@ -30,11 +31,12 @@ import {
30
31
  OText,
31
32
  OButton,
32
33
  OInput,
34
+ OModal,
33
35
  } from '../../components/shared';
34
36
  import { sortInputFields, getTraduction } from '../../utils';
35
37
  import { ProfileParams } from '../../types';
36
38
  import { NotFoundSource } from '../NotFoundSource';
37
-
39
+ import AntDesignIcon from 'react-native-vector-icons/AntDesign'
38
40
  const ProfileUI = (props: ProfileParams) => {
39
41
  const {
40
42
  navigation,
@@ -47,6 +49,7 @@ const ProfileUI = (props: ProfileParams) => {
47
49
  handleToggleAvalaibleStatusDriver,
48
50
  userState,
49
51
  isAvailableLoading,
52
+ isAlsea
50
53
  } = props;
51
54
 
52
55
  const [{ user }] = useSession();
@@ -66,6 +69,7 @@ const ProfileUI = (props: ProfileParams) => {
66
69
  const [phoneUpdate, setPhoneUpdate] = useState(false);
67
70
  const [userPhoneNumber, setUserPhoneNumber] = useState<any>(null);
68
71
  const [phoneToShow, setPhoneToShow] = useState('');
72
+ const [openModal, setOpenModal] = useState(false)
69
73
 
70
74
  useEffect(() => {
71
75
  if (phoneInputData.phone.cellphone) {
@@ -456,10 +460,10 @@ const ProfileUI = (props: ProfileParams) => {
456
460
  hideUpdateButton
457
461
  handleCancelEdit={handleCancelEdit}
458
462
  toggleIsEdit={toggleIsEdit}
463
+ isAlsea={isAlsea}
459
464
  />
460
465
  </View>
461
466
  )}
462
-
463
467
  {!validationFields.loading && !isEdit && (
464
468
  <EditButton>
465
469
  <OButton
@@ -474,12 +478,32 @@ const ProfileUI = (props: ProfileParams) => {
474
478
  />
475
479
  </EditButton>
476
480
  )}
477
-
481
+ {!!user?.schedule && (
482
+ <Pressable style={{ marginBottom: 10 }} onPress={() => setOpenModal(true)}>
483
+ <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
484
+ <OText size={16}>{t('SCHEDULE', 'Schedule')}</OText>
485
+ <AntDesignIcon size={18} name='right' />
486
+ </View>
487
+ <View style={{
488
+ borderBottomColor: theme.colors.tabBar,
489
+ borderBottomWidth: 1,
490
+ marginTop: 10
491
+ }} />
492
+ </Pressable>
493
+ )}
478
494
  <Actions>
479
495
  <LanguageSelector />
480
496
 
481
497
  <LogoutButton />
482
498
  </Actions>
499
+ <OModal
500
+ open={openModal}
501
+ onClose={() => setOpenModal(false)}
502
+ entireModal
503
+ hideIcons
504
+ >
505
+ <DriverSchedule schedule={user?.schedule} />
506
+ </OModal>
483
507
  </ScrollView>
484
508
  )}
485
509
  </>
@@ -26,6 +26,7 @@ interface Props {
26
26
  isNotDecoration?: boolean;
27
27
  styleCloseButton?: any;
28
28
  order?: any;
29
+ hideIcons?: boolean
29
30
  }
30
31
 
31
32
  const OModal = (props: Props): React.ReactElement => {
@@ -47,6 +48,7 @@ const OModal = (props: Props): React.ReactElement => {
47
48
  style,
48
49
  styleCloseButton,
49
50
  order,
51
+ hideIcons
50
52
  } = props;
51
53
 
52
54
  const theme = useTheme();
@@ -70,8 +72,8 @@ const OModal = (props: Props): React.ReactElement => {
70
72
  alignItems: 'center',
71
73
  paddingHorizontal: 30,
72
74
  paddingTop: 30,
73
- paddingBottom: 25,
74
- borderBottomWidth: 2,
75
+ paddingBottom: !hideIcons ? 25 : 15,
76
+ borderBottomWidth: !hideIcons ? 2 : 0,
75
77
  borderBottomColor: '#e6e6e6',
76
78
  },
77
79
  titleGroups: {
@@ -165,7 +167,7 @@ const OModal = (props: Props): React.ReactElement => {
165
167
  transparent={isTransparent}
166
168
  visible={open}
167
169
  onRequestClose={() => {
168
- onClose();
170
+ onClose && onClose();
169
171
  }}
170
172
  style={{
171
173
  height: '100%',
@@ -218,50 +220,51 @@ const OModal = (props: Props): React.ReactElement => {
218
220
  {title}
219
221
  </OText>
220
222
  </View>
223
+ {!hideIcons && (
224
+ <View style={styles.titleGroups}>
225
+ <View style={styles.shadow}>
226
+ {order?.business?.logo ? (
227
+ <OIcon
228
+ url={optimizeImage(
229
+ order?.business?.logo,
230
+ 'h_300,c_limit',
231
+ )}
232
+ style={styles.titleIcons}
233
+ />
234
+ ) : (
235
+ <OIcon
236
+ src={theme.images.dummies.businessLogo}
237
+ style={styles.titleIcons}
238
+ />
239
+ )}
240
+ </View>
221
241
 
222
- <View style={styles.titleGroups}>
223
- <View style={styles.shadow}>
224
- {order?.business?.logo ? (
242
+ <View style={styles.shadow}>
225
243
  <OIcon
226
244
  url={optimizeImage(
227
- order?.business?.logo,
245
+ order?.customer?.photo ||
246
+ theme?.images?.dummies?.customerPhoto,
228
247
  'h_300,c_limit',
229
248
  )}
230
249
  style={styles.titleIcons}
231
250
  />
232
- ) : (
233
- <OIcon
234
- src={theme.images.dummies.businessLogo}
235
- style={styles.titleIcons}
236
- />
237
- )}
238
- </View>
251
+ </View>
239
252
 
240
- <View style={styles.shadow}>
241
- <OIcon
242
- url={optimizeImage(
243
- order?.customer?.photo ||
244
- theme?.images?.dummies?.customerPhoto,
245
- 'h_300,c_limit',
246
- )}
247
- style={styles.titleIcons}
248
- />
253
+ {order?.driver && (
254
+ <View style={styles.shadow}>
255
+ <OIcon
256
+ url={
257
+ optimizeImage(
258
+ order?.driver?.photo,
259
+ 'h_300,c_limit',
260
+ ) || theme?.images?.dummies?.driverPhoto
261
+ }
262
+ style={styles.titleIcons}
263
+ />
264
+ </View>
265
+ )}
249
266
  </View>
250
-
251
- {order?.driver && (
252
- <View style={styles.shadow}>
253
- <OIcon
254
- url={
255
- optimizeImage(
256
- order?.driver?.photo,
257
- 'h_300,c_limit',
258
- ) || theme?.images?.dummies?.driverPhoto
259
- }
260
- style={styles.titleIcons}
261
- />
262
- </View>
263
- )}
264
- </View>
267
+ )}
265
268
  </View>
266
269
  )}
267
270
  {children}
@@ -20,6 +20,9 @@ export interface LoginParams {
20
20
  passwordInputIcon?: any;
21
21
  allowedLevels?: any;
22
22
  useRootPoint?: any;
23
+ notificationState?: any;
24
+ handleReCaptcha?: any;
25
+ enableReCaptcha?: any;
23
26
  }
24
27
  export interface ProfileParams {
25
28
  navigation?: any;
@@ -38,6 +41,7 @@ export interface ProfileParams {
38
41
  validationFields?: any;
39
42
  showField?: any;
40
43
  isRequiredField?: any;
44
+ isAlsea?: boolean;
41
45
  }
42
46
 
43
47
  export interface AddressListParams {
@@ -262,7 +266,7 @@ export interface OrdersOptionParams {
262
266
  titleContent?: string;
263
267
  customArray?: Array<any>;
264
268
  loadMoreOrders?: () => {};
265
- loadOrders?: ({}: any) => {};
269
+ loadOrders?: ({ }: any) => {};
266
270
  messages?: any;
267
271
  setMessages?: () => {};
268
272
  loadMessages?: () => {};
@@ -276,7 +280,7 @@ export interface OrdersOptionParams {
276
280
  ordersGroup?: any;
277
281
  setOrdersGroup?: any;
278
282
  setCurrentFilters?: any;
279
- onFiltered?: ({}: any) => {};
283
+ onFiltered?: ({ }: any) => {};
280
284
  filtered?: any;
281
285
  handleClickOrder?: any;
282
286
  orderGroupStatusCustom?: {
@@ -287,9 +291,11 @@ export interface OrdersOptionParams {
287
291
  };
288
292
  isBusinessApp?: boolean;
289
293
  handleClickLogisticOrder: (status: number, orderId: number) => void,
290
- logisticOrders: {orders: Array<any>, loading: boolean, error: Array<string> | string},
294
+ logisticOrders: { orders: Array<any>, loading: boolean, error: Array<string> | string },
291
295
  loadLogisticOrders: () => void;
292
- isLogisticActivated?: boolean
296
+ isLogisticActivated?: boolean;
297
+ isAlsea?: boolean;
298
+ checkNotification?: boolean;
293
299
  }
294
300
  export interface ActiveOrdersParams {
295
301
  orders?: any;
@@ -387,6 +393,7 @@ export interface ProductItemAccordionParams {
387
393
  offsetDisabled?: any;
388
394
  isFromCheckout?: any;
389
395
  isClickableEvent?: any;
396
+ currency?: any;
390
397
  }
391
398
  export interface ReviewOrderParams {
392
399
  order?: { orderId: number; businessId: number; logo: string };
@@ -558,13 +565,13 @@ export interface AcceptOrRejectOrderParams {
558
565
  }
559
566
 
560
567
  export interface MapViewParams {
561
- onNavigationRedirect: (page : string, params ?: any) => void,
568
+ onNavigationRedirect: (page: string, params?: any) => void,
562
569
  getBusinessLocations: () => void,
563
570
  isLoadingBusinessMarkers?: boolean,
564
571
  markerGroups: Array<any>,
565
572
  customerMarkerGroups: Array<any>,
566
573
  alertState: { open: boolean, content: Array<string>, key?: string | null },
567
- setAlertState: ({open, content, key} : { open: boolean, content: Array<string>, key?: string | null }) => void
574
+ setAlertState: ({ open, content, key }: { open: boolean, content: Array<string>, key?: string | null }) => void
568
575
  }
569
576
 
570
577
  export interface ReviewCustomerParams {
@@ -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}>
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
- import { PanResponder, TouchableOpacity, View } from 'react-native';
2
+ import { PanResponder, Platform, TouchableOpacity, View } from 'react-native';
3
3
  import {
4
4
  useLanguage,
5
5
  useOrder,
@@ -120,32 +120,31 @@ const BusinessMenu = (props:any): React.ReactElement => {
120
120
  }}
121
121
  >
122
122
  <Container nopadding nestedScrollEnabled>
123
- <View style={{ paddingTop: 20 }}>
124
- <NavBar
125
- title={t('MENU_V21', 'Menu')}
126
- onActionLeft={goToBack}
127
- includeOrderTypeSelector
128
- onClickTypes={handleRedirect}
129
- rightComponent={cart && (
130
- <TouchableOpacity
131
- style={{ paddingHorizontal: 20, flexDirection: 'row', alignItems: 'center' }}
132
- onPress={onToggleCart}
123
+ {Platform.OS === 'android' && (<View style={{ paddingTop: 20 }} />)}
124
+ <NavBar
125
+ title={t('MENU_V21', 'Menu')}
126
+ onActionLeft={goToBack}
127
+ includeOrderTypeSelector
128
+ onClickTypes={handleRedirect}
129
+ rightComponent={cart && (
130
+ <TouchableOpacity
131
+ style={{ flexDirection: 'row', alignItems: 'center' }}
132
+ onPress={onToggleCart}
133
+ >
134
+ <OText
135
+ color={theme.colors.mediumGray}
133
136
  >
134
- <OText
135
- color={theme.colors.mediumGray}
136
- >
137
- {`${cart?.products?.length || 0} ${t('ITEMS', 'items')}`} {parsePrice(cart?.total || 0)} {' '}
138
- </OText>
139
-
140
- <MaterialIcon
141
- name={bottomSheetVisibility ? "cart-off" : "cart-outline"}
142
- color={theme.colors.primary}
143
- size={30}
144
- />
145
- </TouchableOpacity>
146
- )}
147
- />
148
- </View>
137
+ {`${cart?.products?.length || 0} ${t('ITEMS', 'items')}`} {parsePrice(cart?.total || 0)} {' '}
138
+ </OText>
139
+
140
+ <MaterialIcon
141
+ name={bottomSheetVisibility ? "cart-off" : "cart-outline"}
142
+ color={theme.colors.primary}
143
+ size={30}
144
+ />
145
+ </TouchableOpacity>
146
+ )}
147
+ />
149
148
 
150
149
  <BusinessProductsListing
151
150
  { ...businessProductsListingProps }
@@ -1,5 +1,5 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
1
+ import React from 'react';
2
+ import { PlaceholderLine } from 'rn-placeholder';
3
3
  import { View, ScrollView, Platform } from 'react-native';
4
4
  import { useTheme } from 'styled-components/native';
5
5
  import { useDeviceOrientation } from '../../../../../src/hooks/DeviceOrientation';
@@ -21,7 +21,6 @@ const BusinessesListingUI = (props: any) => {
21
21
  navigation,
22
22
  businessesList,
23
23
  handleBusinessClick,
24
- paginationProps,
25
24
  } = props;
26
25
 
27
26
  const theme = useTheme();