ordering-ui-react-native 0.16.30 → 0.16.31-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 (205) hide show
  1. package/package.json +8 -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/AddressForm/index.tsx +4 -1
  6. package/src/components/BusinessBasicInformation/index.tsx +11 -19
  7. package/src/components/BusinessInformation/index.tsx +33 -4
  8. package/src/components/BusinessInformation/styles.tsx +2 -2
  9. package/src/components/BusinessProductsList/index.tsx +10 -10
  10. package/src/components/BusinessesListing/index.tsx +1 -1
  11. package/src/components/Checkout/index.tsx +2 -1
  12. package/src/components/LanguageSelector/index.tsx +21 -16
  13. package/src/components/LoginForm/index.tsx +15 -0
  14. package/src/components/Messages/index.tsx +2 -2
  15. package/src/components/NotificationSetting/index.tsx +85 -0
  16. package/src/components/OrderDetails/index.tsx +2 -20
  17. package/src/components/OrdersOption/index.tsx +54 -56
  18. package/src/components/PaymentOptions/index.tsx +335 -365
  19. package/src/components/PaymentOptionsWebView/index.tsx +120 -121
  20. package/src/components/ReviewDriver/index.tsx +1 -1
  21. package/src/components/ReviewOrder/index.tsx +2 -1
  22. package/src/components/ReviewProducts/index.tsx +11 -0
  23. package/src/components/SignupForm/index.tsx +15 -0
  24. package/src/components/SingleProductReview/index.tsx +8 -5
  25. package/src/components/StripeElementsForm/index.tsx +25 -16
  26. package/src/components/VerifyPhone/styles.tsx +1 -2
  27. package/src/components/shared/OBottomPopup.tsx +6 -2
  28. package/src/index.tsx +2 -0
  29. package/src/pages/BusinessesListing.tsx +7 -6
  30. package/src/pages/OrderDetails.tsx +1 -1
  31. package/src/pages/ReviewDriver.tsx +2 -2
  32. package/src/pages/ReviewOrder.tsx +2 -2
  33. package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
  34. package/src/utils/index.tsx +2 -1
  35. package/themes/business/index.tsx +4 -0
  36. package/themes/business/src/components/BusinessController/index.tsx +2 -2
  37. package/themes/business/src/components/Chat/index.tsx +42 -34
  38. package/themes/business/src/components/DriverMap/index.tsx +7 -5
  39. package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
  40. package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
  41. package/themes/business/src/components/LoginForm/index.tsx +111 -74
  42. package/themes/business/src/components/MapView/index.tsx +12 -1
  43. package/themes/business/src/components/MessagesOption/index.tsx +11 -1
  44. package/themes/business/src/components/NewOrderNotification/index.tsx +26 -41
  45. package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
  46. package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
  47. package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
  48. package/themes/business/src/components/OrdersOption/index.tsx +65 -21
  49. package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
  50. package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
  51. package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
  52. package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
  53. package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
  54. package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
  55. package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
  56. package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
  57. package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
  58. package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
  59. package/themes/business/src/components/ProductItemAccordion/index.tsx +3 -2
  60. package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
  61. package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
  62. package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
  63. package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
  64. package/themes/business/src/components/shared/ODropDown.tsx +42 -8
  65. package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
  66. package/themes/business/src/components/shared/OModal.tsx +40 -37
  67. package/themes/business/src/types/index.tsx +15 -9
  68. package/themes/business/src/utils/index.tsx +10 -0
  69. package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
  70. package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
  71. package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
  72. package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -1
  73. package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
  74. package/themes/kiosk/src/components/LoginForm/index.tsx +121 -10
  75. package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -0
  76. package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
  77. package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
  78. package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
  79. package/themes/kiosk/src/components/ProductForm/index.tsx +1 -14
  80. package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
  81. package/themes/kiosk/src/types/index.d.ts +2 -0
  82. package/themes/original/index.tsx +12 -0
  83. package/themes/original/src/components/AddressDetails/index.tsx +1 -1
  84. package/themes/original/src/components/AddressForm/index.tsx +139 -135
  85. package/themes/original/src/components/AddressList/index.tsx +1 -1
  86. package/themes/original/src/components/AppleLogin/index.tsx +4 -4
  87. package/themes/original/src/components/BusinessBasicInformation/index.tsx +311 -161
  88. package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
  89. package/themes/original/src/components/BusinessController/index.tsx +190 -113
  90. package/themes/original/src/components/BusinessController/styles.tsx +0 -7
  91. package/themes/original/src/components/BusinessItemAccordion/index.tsx +4 -4
  92. package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
  93. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
  94. package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
  95. package/themes/original/src/components/BusinessListingSearch/index.tsx +80 -128
  96. package/themes/original/src/components/BusinessListingSearch/styles.tsx +10 -12
  97. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
  98. package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
  99. package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
  100. package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
  101. package/themes/original/src/components/BusinessProductsListing/index.tsx +293 -177
  102. package/themes/original/src/components/BusinessProductsListing/styles.tsx +23 -11
  103. package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
  104. package/themes/original/src/components/BusinessTypeFilter/index.tsx +109 -40
  105. package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
  106. package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
  107. package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -10
  108. package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +676 -0
  109. package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
  110. package/themes/original/src/components/BusinessesListing/index.tsx +105 -519
  111. package/themes/original/src/components/Cart/index.tsx +44 -12
  112. package/themes/original/src/components/Cart/styles.tsx +4 -0
  113. package/themes/original/src/components/CartContent/index.tsx +22 -16
  114. package/themes/original/src/components/Checkout/index.tsx +101 -61
  115. package/themes/original/src/components/Checkout/styles.tsx +0 -1
  116. package/themes/original/src/components/DriverTips/index.tsx +4 -4
  117. package/themes/original/src/components/DriverTips/styles.tsx +2 -1
  118. package/themes/original/src/components/Favorite/index.tsx +1 -0
  119. package/themes/original/src/components/FavoriteList/index.tsx +32 -2
  120. package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
  121. package/themes/original/src/components/GPSButton/index.tsx +20 -19
  122. package/themes/original/src/components/GoogleMap/index.tsx +20 -12
  123. package/themes/original/src/components/HelpAccountAndPayment/index.tsx +25 -10
  124. package/themes/original/src/components/HelpAccountAndPayment/styles.tsx +4 -0
  125. package/themes/original/src/components/HelpGuide/index.tsx +9 -8
  126. package/themes/original/src/components/HelpOrder/index.tsx +9 -8
  127. package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
  128. package/themes/original/src/components/LoginForm/Otp/index.tsx +95 -72
  129. package/themes/original/src/components/LoginForm/index.tsx +83 -45
  130. package/themes/original/src/components/LottieAnimation/index.tsx +69 -0
  131. package/themes/original/src/components/Messages/index.tsx +17 -17
  132. package/themes/original/src/components/MomentOption/index.tsx +1 -1
  133. package/themes/original/src/components/MomentSelector/index.tsx +197 -0
  134. package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
  135. package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
  136. package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
  137. package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
  138. package/themes/original/src/components/MyOrders/index.tsx +70 -6
  139. package/themes/original/src/components/NavBar/index.tsx +15 -9
  140. package/themes/original/src/components/NetworkError/index.tsx +5 -3
  141. package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
  142. package/themes/original/src/components/Notifications/index.tsx +148 -0
  143. package/themes/original/src/components/Notifications/styles.tsx +17 -0
  144. package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
  145. package/themes/original/src/components/OrderDetails/index.tsx +190 -35
  146. package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
  147. package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
  148. package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
  149. package/themes/original/src/components/OrderProgress/index.tsx +8 -2
  150. package/themes/original/src/components/OrderSummary/index.tsx +3 -36
  151. package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
  152. package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
  153. package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +97 -106
  154. package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +3 -0
  155. package/themes/original/src/components/OrdersOption/index.tsx +71 -55
  156. package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
  157. package/themes/original/src/components/PaymentOptions/index.tsx +41 -23
  158. package/themes/original/src/components/PhoneInputNumber/index.tsx +5 -11
  159. package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
  160. package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
  161. package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
  162. package/themes/original/src/components/ProductForm/index.tsx +633 -664
  163. package/themes/original/src/components/ProductForm/styles.tsx +9 -8
  164. package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
  165. package/themes/original/src/components/ProductOption/index.tsx +1 -1
  166. package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
  167. package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
  168. package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
  169. package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
  170. package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
  171. package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
  172. package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
  173. package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
  174. package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
  175. package/themes/original/src/components/SearchBar/index.tsx +5 -3
  176. package/themes/original/src/components/ServiceForm/index.tsx +637 -0
  177. package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
  178. package/themes/original/src/components/SignupForm/index.tsx +350 -206
  179. package/themes/original/src/components/SingleOrderCard/index.tsx +229 -181
  180. package/themes/original/src/components/SingleOrderCard/styles.tsx +0 -7
  181. package/themes/original/src/components/SingleProductCard/index.tsx +199 -110
  182. package/themes/original/src/components/SingleProductCard/styles.tsx +1 -10
  183. package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
  184. package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
  185. package/themes/original/src/components/StripeElementsForm/index.tsx +15 -7
  186. package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
  187. package/themes/original/src/components/UserDetails/index.tsx +31 -17
  188. package/themes/original/src/components/UserFormDetails/index.tsx +74 -81
  189. package/themes/original/src/components/UserProfile/index.tsx +54 -29
  190. package/themes/original/src/components/UserProfile/styles.ts +17 -0
  191. package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
  192. package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
  193. package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
  194. package/themes/original/src/components/Wallets/index.tsx +176 -164
  195. package/themes/original/src/components/Wallets/styles.tsx +12 -8
  196. package/themes/original/src/components/shared/CardAnimation.tsx +47 -0
  197. package/themes/original/src/components/shared/OBottomPopup.tsx +48 -15
  198. package/themes/original/src/components/shared/OButton.tsx +10 -3
  199. package/themes/original/src/components/shared/OIcon.tsx +8 -1
  200. package/themes/original/src/components/shared/OInput.tsx +3 -2
  201. package/themes/original/src/layouts/Container.tsx +13 -9
  202. package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
  203. package/themes/original/src/types/index.tsx +121 -30
  204. package/themes/original/src/utils/index.tsx +77 -0
  205. package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
@@ -8,7 +8,9 @@ import { Platform } from 'react-native'
8
8
  export const OrdersOptionDelivery = (props: any) => {
9
9
  const {
10
10
  search,
11
- onSearch
11
+ onSearch,
12
+ setOpenedSelect,
13
+ openedSelect
12
14
  } = props
13
15
 
14
16
  const theme = useTheme();
@@ -18,6 +20,14 @@ export const OrdersOptionDelivery = (props: any) => {
18
20
  { value: '2', content: t('PICKUP', 'Pickup') }
19
21
  ]
20
22
 
23
+ const handleClear = () => {
24
+ onSearch({ ...search, delivery_type: '' })
25
+ }
26
+
27
+ const handleOpenSelect = () => {
28
+ setOpenedSelect('delivery_type')
29
+ }
30
+
21
31
  return (
22
32
  <Container isIos={Platform.OS === 'ios'}>
23
33
  <ODropDown
@@ -29,6 +39,10 @@ export const OrdersOptionDelivery = (props: any) => {
29
39
  textcolor={theme.colors.unselectText}
30
40
  placeholder={t('SELECT_DELIVERY_TYPE', 'Select Delivery type')}
31
41
  dropViewMaxHeight={200}
42
+ handleClear={handleClear}
43
+ handleOpenSelect={handleOpenSelect}
44
+ openedSelect={openedSelect}
45
+ selectType='delivery_type'
32
46
  />
33
47
  </Container>
34
48
  );
@@ -9,7 +9,9 @@ export const OrdersOptionDriverUI = (props: any) => {
9
9
  const {
10
10
  search,
11
11
  onSearch,
12
- driverList
12
+ driverList,
13
+ setOpenedSelect,
14
+ openedSelect
13
15
  } = props
14
16
 
15
17
  const theme = useTheme();
@@ -24,6 +26,14 @@ export const OrdersOptionDriverUI = (props: any) => {
24
26
  setOptionsList(drivers)
25
27
  }, [driverList?.drivers])
26
28
 
29
+ const handleClear = () => {
30
+ onSearch({ ...search, driver: '' })
31
+ }
32
+
33
+ const handleOpenSelect = () => {
34
+ setOpenedSelect('driver')
35
+ }
36
+
27
37
  return (
28
38
  <Container isIos={Platform.OS === 'ios'}>
29
39
  <ODropDown
@@ -35,6 +45,10 @@ export const OrdersOptionDriverUI = (props: any) => {
35
45
  textcolor={theme.colors.unselectText}
36
46
  placeholder={t('SELECT_DRIVER', 'Select Driver')}
37
47
  dropViewMaxHeight={165}
48
+ handleClear={handleClear}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='driver'
38
52
  />
39
53
  </Container>
40
54
  );
@@ -9,7 +9,9 @@ export const OrdersOptionPaymethodUI = (props: any) => {
9
9
  const {
10
10
  search,
11
11
  onSearch,
12
- paymethodList
12
+ paymethodList,
13
+ setOpenedSelect,
14
+ openedSelect
13
15
  } = props
14
16
 
15
17
  const theme = useTheme();
@@ -24,6 +26,14 @@ export const OrdersOptionPaymethodUI = (props: any) => {
24
26
  setOptionsList(paymethods)
25
27
  }, [paymethodList?.paymethods])
26
28
 
29
+ const handleClear = () => {
30
+ onSearch({ ...search, paymethod: '' })
31
+ }
32
+
33
+ const handleOpenSelect = () => {
34
+ setOpenedSelect('paymethod')
35
+ }
36
+
27
37
  return (
28
38
  <Container isIos={Platform.OS === 'ios'}>
29
39
  <ODropDown
@@ -35,6 +45,10 @@ export const OrdersOptionPaymethodUI = (props: any) => {
35
45
  textcolor={theme.colors.unselectText}
36
46
  placeholder={t('SELECT_PAYMETHOD', 'Select Paymethod')}
37
47
  dropViewMaxHeight={200}
48
+ handleClear={handleClear}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='paymethod'
38
52
  />
39
53
  </Container>
40
54
  );
@@ -11,7 +11,9 @@ export const OrdersOptionStatus = (props: any) => {
11
11
  tabs,
12
12
  orderStatus,
13
13
  search,
14
- onSearch
14
+ onSearch,
15
+ setOpenedSelect,
16
+ openedSelect
15
17
  } = props
16
18
 
17
19
  const theme = useTheme();
@@ -29,6 +31,10 @@ export const OrdersOptionStatus = (props: any) => {
29
31
  setOptionsList(_optionList)
30
32
  }, [currentTabSelected, tabs, orderStatus])
31
33
 
34
+ const handleOpenSelect = () => {
35
+ setOpenedSelect('state')
36
+ }
37
+
32
38
  return (
33
39
  <Container isIos={Platform.OS === 'ios'}>
34
40
  <ODropDown
@@ -40,6 +46,9 @@ export const OrdersOptionStatus = (props: any) => {
40
46
  textcolor={theme.colors.unselectText}
41
47
  placeholder={t('SELECT_STATUS', 'Select Status')}
42
48
  dropViewMaxHeight={200}
49
+ handleOpenSelect={handleOpenSelect}
50
+ openedSelect={openedSelect}
51
+ selectType='state'
43
52
  />
44
53
  </Container>
45
54
  );
@@ -176,17 +176,17 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
176
176
  slug: 'ORDER_CUSTOMER_ARRIVED_BUSINESS',
177
177
  percentage: 95,
178
178
  },
179
- {
180
- key: 22,
181
- value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
182
- slug: 'ORDER_LOOKING_FOR_DRIVER',
179
+ {
180
+ key: 22,
181
+ value: t('ORDER_LOOKING_FOR_DRIVER', 'Looking for driver'),
182
+ slug: 'ORDER_LOOKING_FOR_DRIVER',
183
183
  percentage: 35
184
184
  },
185
- {
186
- key: 23,
187
- value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
188
- slug: 'ORDER_DRIVER_ON_WAY',
189
- percentage: 45
185
+ {
186
+ key: 23,
187
+ value: t('ORDER_DRIVER_ON_WAY', 'Driver on way'),
188
+ slug: 'ORDER_DRIVER_ON_WAY',
189
+ percentage: 45
190
190
  }
191
191
  ];
192
192
 
@@ -230,6 +230,7 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
230
230
  fontWeight: '600',
231
231
  fontSize: 16,
232
232
  color: theme.colors.textGray,
233
+ width: '85%'
233
234
  },
234
235
  badge: {
235
236
  marginBottom: 6,
@@ -265,15 +266,13 @@ export const PreviousMessages = (props: PreviousMessagesParams) => {
265
266
  style={styles.cardButton}
266
267
  activeOpacity={1}>
267
268
  <Card key={order?.id}>
268
- {!!order?.business?.logo && (
269
- <Logo style={styles.logo}>
270
- <OIcon
271
- url={optimizeImage(order?.business?.logo, 'h_300,c_limit')}
272
- style={styles.icon}
273
- />
274
- </Logo>
275
- )}
276
-
269
+ <Logo style={styles.logo}>
270
+ <OIcon
271
+ url={optimizeImage(order?.business?.logo, 'h_300,c_limit')}
272
+ src={!order?.business?.logo && theme?.images?.dummies?.businessLogo}
273
+ style={styles.icon}
274
+ />
275
+ </Logo>
277
276
  <Information>
278
277
  <Header>
279
278
  <OText numberOfLines={1} style={styles.title}>
@@ -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,33 +178,31 @@ 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
- )}
184
- {
185
- order.business?.logo && (
186
- <Logo style={styles.logo}>
187
- <OIcon
188
- url={optimizeImage(
189
- order.business?.logo,
190
- 'h_300,c_limit',
191
- )}
192
- style={styles.icon}
193
- />
194
- </Logo>
195
- )}
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
+ <Logo style={styles.logo}>
185
+ <OIcon
186
+ url={optimizeImage(
187
+ order.business?.logo,
188
+ 'h_300,c_limit',
189
+ )}
190
+ src={!order?.business?.logo && theme?.images?.dummies?.businessLogo}
191
+ style={styles.icon}
192
+ />
193
+ </Logo>
196
194
  <Information>
197
- {order?.order_group_id && (
195
+ {!!order?.order_group_id && (
198
196
  <OText>
199
197
  <OText>{(t('INVOICE_GROUP_NO', 'Group No.') + order?.order_group_id)}</OText>
200
198
  </OText>
201
199
  )}
202
- {order.business?.name && (
200
+ {!!order.business?.name && (
203
201
  <OText numberOfLines={1} style={styles.title}>
204
202
  {order.business?.name}
205
203
  </OText>
206
204
  )}
207
- {order?.showNotification && (
205
+ {!!order?.showNotification && (
208
206
  <NotificationIcon>
209
207
  <EntypoIcon
210
208
  name="dot-single"
@@ -258,7 +256,7 @@ export const PreviousOrders = (props: any) => {
258
256
  </TouchableOpacity>
259
257
  {isLogisticOrder && (
260
258
  <AcceptOrRejectOrder>
261
- {order?.order_group_id && order?.order_group ? (
259
+ {!!order?.order_group_id && !!order?.order_group ? (
262
260
  <OButton
263
261
  text={t('VIEW_ORDER', 'View order')}
264
262
  onClick={() => handlePressOrder({ ...order, logistic_order_id: _order?.id })}
@@ -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,7 +148,7 @@ 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
  {(
@@ -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>
@@ -270,7 +270,7 @@ const ReviewCustomerUI = (props: ReviewCustomerParams) => {
270
270
  }}
271
271
  style={{ height: 35, paddingLeft: 5, paddingRight: 5, marginHorizontal: 3, marginVertical: 10 }}
272
272
  imgRightSrc={isSelectedComment(commentItem.key) ? theme.images.general.close : null}
273
- imgRightStyle={{ tintColor: theme.colors.white, right: 5, margin: 5 }}
273
+ imgRightStyle={{ right: 5, margin: 5 }}
274
274
  onClick={() => handleChangeComment(commentItem) }
275
275
  />
276
276
  ))}
@@ -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
  </>
@@ -4,6 +4,7 @@ import { ScrollView, TouchableOpacity } from 'react-native-gesture-handler'
4
4
  import { ScrollView as CustomScrollView, TouchableOpacity as CustomTouchableOpacity, View } from 'react-native'
5
5
  import FeatherIcon from 'react-native-vector-icons/Feather';
6
6
  import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
7
+ import AntDesign from 'react-native-vector-icons/AntDesign';
7
8
  import { Text } from 'react-native-paper';
8
9
 
9
10
  interface Props {
@@ -16,7 +17,11 @@ interface Props {
16
17
  dropViewMaxHeight?: any,
17
18
  isModal?: any,
18
19
  bgcolor?: string,
19
- textcolor?: string
20
+ textcolor?: string,
21
+ handleClear?: any,
22
+ handleOpenSelect?: any,
23
+ openedSelect?: string,
24
+ selectType?: string
20
25
  }
21
26
 
22
27
  const Wrapper = styled.View`
@@ -70,7 +75,11 @@ const ODropDown = (props: Props) => {
70
75
  placeholder,
71
76
  onSelect,
72
77
  dropViewMaxHeight,
73
- isModal
78
+ isModal,
79
+ handleClear,
80
+ handleOpenSelect,
81
+ openedSelect,
82
+ selectType
74
83
  } = props
75
84
 
76
85
  const theme = useTheme();
@@ -82,6 +91,7 @@ const ODropDown = (props: Props) => {
82
91
 
83
92
  const onToggle = () => {
84
93
  setIsOpen(!isOpen)
94
+ if (!isOpen) handleOpenSelect?.()
85
95
  }
86
96
 
87
97
  const onSelectOption = (option: any) => {
@@ -91,12 +101,25 @@ const ODropDown = (props: Props) => {
91
101
  setIsOpen(false)
92
102
  }
93
103
 
104
+ const handleClearSearch = () => {
105
+ handleClear()
106
+ if (isOpen) {
107
+ onToggle()
108
+ }
109
+ }
110
+
94
111
  useEffect(() => {
95
112
  const _defaultOption = options?.find((option: any) => option.value === defaultValue)
96
113
  setSelectedOption(_defaultOption)
97
114
  setValue(defaultValue)
98
115
  }, [defaultValue, options])
99
116
 
117
+ useEffect(() => {
118
+ if (openedSelect !== selectType && typeof openedSelect === 'string') {
119
+ setIsOpen(false)
120
+ }
121
+ }, [openedSelect])
122
+
100
123
  return (
101
124
  <Wrapper style={props.style}>
102
125
  <Selected
@@ -110,11 +133,22 @@ const ODropDown = (props: Props) => {
110
133
  >
111
134
  {selectedOption?.content || selectedOption?.name || placeholder}
112
135
  </SelectedLabel>
113
- <FeatherIcon
114
- name='chevron-down'
115
- color={props.textcolor}
116
- size={24}
117
- />
136
+ {selectedOption && handleClear ? (
137
+ <AntDesign
138
+ name={'close'}
139
+ size={20}
140
+ onPress={() => handleClearSearch()}
141
+ style={{ position: 'absolute', right: 12, top: 13 }}
142
+ />
143
+ ) : (
144
+ <FeatherIcon
145
+ name='chevron-down'
146
+ color={props.textcolor}
147
+ size={24}
148
+ style={{ position: 'absolute', right: 12, top: 13 }}
149
+
150
+ />
151
+ )}
118
152
  </Selected>
119
153
  {isOpen && options && (
120
154
  <DropView
@@ -154,7 +188,7 @@ const ODropDown = (props: Props) => {
154
188
  maxHeight: dropViewMaxHeight || null,
155
189
  paddingBottom: 15
156
190
  }}
157
- nestedScrollEnabled={true}
191
+ nestedScrollEnabled={true}
158
192
  >
159
193
  {options.map((option: any, index: number) => (
160
194
  <CustomTouchableOpacity