ordering-ui-react-native 0.21.83 → 0.21.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.
- package/package.json +6 -7
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/PaymentOptionsWebView/index.tsx +1 -0
- package/src/components/StripeMethodForm/index.tsx +6 -4
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/types/index.tsx +3 -1
- package/themes/business/index.tsx +4 -0
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +9 -6
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +1 -0
- package/themes/business/src/components/BusinessController/index.tsx +8 -3
- package/themes/business/src/components/BusinessProductList/index.tsx +2 -1
- package/themes/business/src/components/Chat/index.tsx +3 -1
- package/themes/business/src/components/DriverMap/index.tsx +44 -27
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- package/themes/business/src/components/Home/index.tsx +5 -1
- package/themes/business/src/components/LanguageSelector/index.tsx +2 -3
- package/themes/business/src/components/LanguageSelector/lang_country.json +515 -70
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/MapView/index.tsx +36 -17
- package/themes/business/src/components/NewOrderNotification/index.tsx +64 -28
- package/themes/business/src/components/OrderDetails/Business.tsx +65 -7
- package/themes/business/src/components/OrderDetails/Delivery.tsx +35 -20
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +110 -40
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +50 -24
- package/themes/business/src/components/OrderDetails/styles.tsx +39 -3
- package/themes/business/src/components/OrderDetails/usePrinterCommands.tsx +221 -0
- package/themes/business/src/components/OrderSummary/index.tsx +223 -73
- package/themes/business/src/components/OrdersListManager/index.tsx +9 -1
- package/themes/business/src/components/OrdersOption/index.tsx +247 -159
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousMessages/index.tsx +20 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +27 -16
- package/themes/business/src/components/PreviousOrders/index.tsx +5 -3
- package/themes/business/src/components/PrinterEdition/MessageAlert.tsx +33 -0
- package/themes/business/src/components/PrinterEdition/index.tsx +431 -0
- package/themes/business/src/components/PrinterEdition/printerList.tsx +23 -0
- package/themes/business/src/components/PrinterEdition/styles.tsx +61 -0
- package/themes/business/src/components/PrinterSettings/index.tsx +267 -0
- package/themes/business/src/components/PrinterSettings/styles.tsx +30 -0
- package/themes/business/src/components/ReviewCustomer/index.tsx +2 -0
- package/themes/business/src/components/Sessions/index.tsx +187 -0
- package/themes/business/src/components/Sessions/styles.tsx +20 -0
- package/themes/business/src/components/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
- package/themes/business/src/components/UserProfileForm/index.tsx +63 -30
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OInput.tsx +2 -0
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/hooks/useLocation.tsx +5 -4
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +23 -5
- package/themes/business/src/utils/index.tsx +19 -1
- package/themes/doordash/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/doordash/src/components/LoginForm/index.tsx +1 -2
- package/themes/instacart/src/components/BusinessesListing/index.tsx +1 -1
- package/themes/kiosk/src/components/Checkout/index.tsx +6 -0
- package/themes/kiosk/src/components/NavBar/index.tsx +14 -14
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +8 -10
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/original/index.tsx +13 -1
- package/themes/original/src/components/AddressDetails/index.tsx +20 -10
- package/themes/original/src/components/AddressForm/index.tsx +32 -17
- package/themes/original/src/components/AddressList/index.tsx +8 -7
- package/themes/original/src/components/AnalyticsSegment/index.tsx +6 -6
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +5 -8
- package/themes/original/src/components/BusinessController/index.tsx +12 -7
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +13 -5
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchFooter.tsx +2 -3
- package/themes/original/src/components/BusinessListingSearch/BusinessSearchHeader.tsx +1 -3
- package/themes/original/src/components/BusinessListingSearch/index.tsx +1 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +20 -15
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +5 -5
- package/themes/original/src/components/BusinessProductsList/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +18 -6
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +9 -8
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +2 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +1 -1
- package/themes/original/src/components/BusinessesListing/index.tsx +0 -1
- package/themes/original/src/components/Cart/index.tsx +43 -15
- package/themes/original/src/components/CartContent/index.tsx +21 -8
- package/themes/original/src/components/Checkout/index.tsx +108 -60
- package/themes/original/src/components/CitiesControl/index.tsx +0 -3
- package/themes/original/src/components/CouponControl/index.tsx +1 -3
- package/themes/original/src/components/DriverTips/index.tsx +1 -3
- package/themes/original/src/components/Favorite/index.tsx +1 -5
- package/themes/original/src/components/FavoriteList/index.tsx +0 -1
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +5 -7
- package/themes/original/src/components/GiftCard/GiftCardOrdersList/index.tsx +64 -0
- package/themes/original/src/components/GiftCard/GiftCardOrdersList/styles.tsx +8 -0
- package/themes/original/src/components/GiftCard/GiftCardUI/index.tsx +15 -17
- package/themes/original/src/components/GiftCard/PurchaseGiftCard/index.tsx +3 -7
- package/themes/original/src/components/GiftCard/RedeemGiftCard/index.tsx +24 -32
- package/themes/original/src/components/GiftCard/SendGiftCard/index.tsx +7 -9
- package/themes/original/src/components/GiftCard/SingleGiftCard/index.tsx +101 -0
- package/themes/original/src/components/GiftCard/SingleGiftCard/styles.tsx +4 -0
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/index.tsx +82 -0
- package/themes/original/src/components/GiftCard/VerticalGiftCardOrdersLayout/styles.tsx +9 -0
- package/themes/original/src/components/GoogleMap/index.tsx +39 -18
- package/themes/original/src/components/Help/index.tsx +2 -0
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +1 -1
- package/themes/original/src/components/Home/index.tsx +2 -10
- package/themes/original/src/components/LoginForm/Otp/index.tsx +0 -3
- package/themes/original/src/components/LoginForm/index.tsx +4 -7
- package/themes/original/src/components/MessageListing/index.tsx +1 -0
- package/themes/original/src/components/Messages/index.tsx +8 -7
- package/themes/original/src/components/MomentOption/index.tsx +13 -2
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +7 -3
- package/themes/original/src/components/MultiCheckout/index.tsx +139 -87
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +2 -1
- package/themes/original/src/components/MyOrders/index.tsx +21 -26
- package/themes/original/src/components/NavBar/index.tsx +4 -2
- package/themes/original/src/components/NetworkError/index.tsx +0 -5
- package/themes/original/src/components/NotFoundSource/index.tsx +0 -3
- package/themes/original/src/components/OrderDetails/OrderEta.tsx +1 -1
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +9 -9
- package/themes/original/src/components/OrderDetails/index.tsx +32 -13
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +22 -3
- package/themes/original/src/components/OrderSummary/index.tsx +28 -9
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
- package/themes/original/src/components/OrdersOption/index.tsx +2 -4
- package/themes/original/src/components/PaymentOptionStripe/index.tsx +0 -5
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +17 -9
- package/themes/original/src/components/PlaceSpot/index.tsx +1 -3
- package/themes/original/src/components/PreviousOrders/index.tsx +1 -2
- package/themes/original/src/components/ProductForm/ActionButton.tsx +17 -20
- package/themes/original/src/components/ProductForm/index.tsx +107 -102
- package/themes/original/src/components/ProductItemAccordion/index.tsx +55 -49
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +3 -4
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +16 -8
- package/themes/original/src/components/ProfessionalProfile/index.tsx +4 -5
- package/themes/original/src/components/Promotions/index.tsx +6 -9
- package/themes/original/src/components/ReviewDriver/index.tsx +1 -1
- package/themes/original/src/components/ReviewOrder/index.tsx +2 -2
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +2 -2
- package/themes/original/src/components/ServiceForm/index.tsx +52 -54
- package/themes/original/src/components/Sessions/index.tsx +3 -3
- package/themes/original/src/components/SignupForm/index.tsx +86 -78
- package/themes/original/src/components/SingleOrderCard/index.tsx +7 -5
- package/themes/original/src/components/SingleProductCard/index.tsx +3 -4
- package/themes/original/src/components/SingleProductCard/styles.tsx +0 -3
- package/themes/original/src/components/StripeCardForm/index.tsx +0 -3
- package/themes/original/src/components/StripeCardsList/index.tsx +10 -3
- package/themes/original/src/components/StripeElementsForm/index.tsx +77 -60
- package/themes/original/src/components/StripeElementsForm/naked.tsx +48 -1
- package/themes/original/src/components/StripeRedirectForm/index.tsx +0 -3
- package/themes/original/src/components/TaxInformation/index.tsx +3 -2
- package/themes/original/src/components/UpsellingProducts/UpsellingContent.tsx +10 -7
- package/themes/original/src/components/UpsellingProducts/UpsellingLayout.tsx +8 -3
- package/themes/original/src/components/UserDetails/index.tsx +3 -2
- package/themes/original/src/components/UserFormDetails/index.tsx +155 -131
- package/themes/original/src/components/UserProfile/index.tsx +11 -2
- package/themes/original/src/components/Wallets/index.tsx +6 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +169 -0
- package/themes/original/src/components/WebsocketStatus/styles.tsx +28 -0
- package/themes/original/src/components/shared/OAlert.tsx +2 -1
- package/themes/original/src/components/shared/OButton.tsx +5 -4
- package/themes/original/src/components/shared/OInput.tsx +4 -8
- package/themes/original/src/types/index.tsx +5 -1
- package/themes/original/src/utils/index.tsx +12 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -13,6 +13,8 @@ import {
|
|
|
13
13
|
OrderBill,
|
|
14
14
|
Total,
|
|
15
15
|
OSRow,
|
|
16
|
+
OrderVehicle,
|
|
17
|
+
OrderSpot,
|
|
16
18
|
} from './styles';
|
|
17
19
|
|
|
18
20
|
import { ProductItemAccordion } from '../ProductItemAccordion';
|
|
@@ -97,19 +99,21 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
97
99
|
}
|
|
98
100
|
})
|
|
99
101
|
|
|
100
|
-
const getIncludedTaxes = () => {
|
|
102
|
+
const getIncludedTaxes = (isDeliveryFee?: boolean) => {
|
|
101
103
|
if (!order?.taxes) return 0
|
|
102
104
|
if (order?.taxes?.length === 0) {
|
|
103
105
|
return order.tax_type === 1 ? order?.summary?.tax ?? 0 : 0
|
|
104
106
|
} else {
|
|
105
107
|
return order?.taxes.reduce((taxIncluded: number, tax: any) => {
|
|
106
|
-
return taxIncluded +
|
|
108
|
+
return taxIncluded +
|
|
109
|
+
(((!isDeliveryFee && tax.type === 1 && tax.target === 'product') ||
|
|
110
|
+
(isDeliveryFee && tax.type === 1 && tax.target === 'delivery_fee')) ? tax.summary?.tax : 0)
|
|
107
111
|
}, 0)
|
|
108
112
|
}
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
const getIncludedTaxesDiscounts = () => {
|
|
112
|
-
return order?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
116
|
+
return order?.taxes?.filter((tax: any) => tax?.type === 1 && tax?.target === 'product')?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
113
117
|
}
|
|
114
118
|
|
|
115
119
|
const containsOnlyNumbers = (str: string) => {
|
|
@@ -219,8 +223,8 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
219
223
|
<OLink
|
|
220
224
|
PressStyle={styles.linkWithIcons}
|
|
221
225
|
url={Platform.select({
|
|
222
|
-
ios: `maps:0,0?q=${order?.business?.address}`,
|
|
223
|
-
android: `geo:0,0?q=${order?.business?.address}`,
|
|
226
|
+
ios: `maps:0,0?q=${order?.business?.address}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
|
|
227
|
+
android: `geo:0,0?q=${order?.business?.address}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
|
|
224
228
|
})}
|
|
225
229
|
numberOfLines={2}
|
|
226
230
|
shorcut={order?.business?.address}
|
|
@@ -230,7 +234,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
230
234
|
)}
|
|
231
235
|
{!!order?.business?.location && order?.customer?.location && (
|
|
232
236
|
<OText>
|
|
233
|
-
{t('DISTANCE_TO_THE_BUSINESS', 'Distance to the business')}: {transformDistance(calculateDistance(order?.business?.location, { latitude: order?.customer?.location?.lat, longitude: order?.customer?.location?.lng }), distanceUnit)} {t(distanceUnit
|
|
237
|
+
{t('DISTANCE_TO_THE_BUSINESS', 'Distance to the business')}: {transformDistance(calculateDistance(order?.business?.location, { latitude: order?.customer?.location?.lat, longitude: order?.customer?.location?.lng }), distanceUnit)} {t(distanceUnit?.toUpperCase?.(), distanceUnit)}
|
|
234
238
|
</OText>
|
|
235
239
|
)}
|
|
236
240
|
{!!order?.business?.address_notes && (
|
|
@@ -239,8 +243,8 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
239
243
|
<OLink
|
|
240
244
|
PressStyle={styles.linkWithIcons}
|
|
241
245
|
url={Platform.select({
|
|
242
|
-
ios: `maps:0,0?q=${order?.business?.address_notes}`,
|
|
243
|
-
android: `geo:0,0?q=${order?.business?.address_notes}`,
|
|
246
|
+
ios: `maps:0,0?q=${order?.business?.address_notes}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
|
|
247
|
+
android: `geo:0,0?q=${order?.business?.address_notes}@${order?.business?.location?.lat},${order?.business?.location?.lng}`,
|
|
244
248
|
})}
|
|
245
249
|
shorcut={order?.business?.address_notes}
|
|
246
250
|
TextStyle={styles.textLink}
|
|
@@ -360,8 +364,8 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
360
364
|
<OLink
|
|
361
365
|
PressStyle={{ ...styles.linkWithIcons, marginBottom: 0 }}
|
|
362
366
|
url={Platform.select({
|
|
363
|
-
ios: `maps:0,0?q=${order?.customer?.address}`,
|
|
364
|
-
android: `geo:0,0?q=${order?.customer?.address}`,
|
|
367
|
+
ios: `maps:0,0?q=${order?.customer?.address}@${order?.customer?.location?.lat},${order?.customer?.location?.lng}`,
|
|
368
|
+
android: `geo:0,0?q=${order?.customer?.address}@${order?.customer?.location?.lat},${order?.customer?.location?.lng}`,
|
|
365
369
|
})}
|
|
366
370
|
onTextLayout={e => onTextLayout(e, 'customerAddress')}
|
|
367
371
|
numberOfLines={isReadMore.customerAddress ? 20 : 2}
|
|
@@ -408,26 +412,16 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
408
412
|
{t('ON_BEHALF_OF', 'On behalf of')}{': '} {order?.on_behalf_of}
|
|
409
413
|
</OText>
|
|
410
414
|
)}
|
|
411
|
-
{(
|
|
415
|
+
{(order?.delivery_option !== undefined && order?.delivery_type === 1) && (
|
|
412
416
|
<View style={{ marginTop: 10 }}>
|
|
413
417
|
{order?.delivery_option !== undefined && order?.delivery_type === 1 && (
|
|
414
418
|
<OText>
|
|
415
|
-
{t(order?.delivery_option?.name?.toUpperCase()?.replace(/ /g, '_'), order?.delivery_option?.name)}
|
|
419
|
+
{t(order?.delivery_option?.name?.toUpperCase?.()?.replace(/ /g, '_'), order?.delivery_option?.name)}
|
|
416
420
|
</OText>
|
|
417
421
|
)}
|
|
418
|
-
{!!order?.comment && (
|
|
419
|
-
<>
|
|
420
|
-
<OText weight='500' style={{ marginBottom: 5 }}>
|
|
421
|
-
{t('ORDER_COMMENT', 'Order Comment')}
|
|
422
|
-
</OText>
|
|
423
|
-
<OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 20 }}>
|
|
424
|
-
{order?.comment}
|
|
425
|
-
</OText>
|
|
426
|
-
</>
|
|
427
|
-
)}
|
|
428
422
|
</View>
|
|
429
423
|
)}
|
|
430
|
-
{!order?.user_review && pastOrderStatuses.includes(order?.status) && (
|
|
424
|
+
{!order?.user_review && pastOrderStatuses.includes(order?.status) && order?.customer_id && (
|
|
431
425
|
<OButton
|
|
432
426
|
style={styles.btnReview}
|
|
433
427
|
textStyle={{ color: theme.colors.white }}
|
|
@@ -439,10 +433,16 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
439
433
|
</OrderCustomer>
|
|
440
434
|
|
|
441
435
|
<OrderProducts>
|
|
442
|
-
<OText style={{ marginBottom:
|
|
436
|
+
<OText style={{ marginBottom: 10 }} size={16} weight="600">
|
|
443
437
|
{t('ORDER_DETAILS', 'Order Details')}
|
|
444
438
|
</OText>
|
|
445
439
|
|
|
440
|
+
{!!order?.comment && (
|
|
441
|
+
<OText>
|
|
442
|
+
{`${t('ORDER_COMMENT', 'Order Comment')}: ${order?.comment}`}
|
|
443
|
+
</OText>
|
|
444
|
+
)}
|
|
445
|
+
|
|
446
446
|
{order?.products?.length > 0 &&
|
|
447
447
|
order?.products.map((product: any, i: number) => (
|
|
448
448
|
<ProductItemAccordion
|
|
@@ -453,7 +453,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
453
453
|
))}
|
|
454
454
|
</OrderProducts>
|
|
455
455
|
|
|
456
|
-
<OrderBill>
|
|
456
|
+
<OrderBill vehicleExists={!!order?.vehicle}>
|
|
457
457
|
<Table>
|
|
458
458
|
<OText mBottom={4}>{t('SUBTOTAL', 'Subtotal')}</OText>
|
|
459
459
|
<OText mBottom={4}>
|
|
@@ -478,7 +478,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
478
478
|
<Table key={offer.id}>
|
|
479
479
|
<OSRow>
|
|
480
480
|
<OText mBottom={4}>
|
|
481
|
-
{t(offer.name?.toUpperCase()?.replace(/ /g, '_'), offer.name)}
|
|
481
|
+
{t(offer.name?.toUpperCase?.()?.replace(/ /g, '_'), offer.name)}
|
|
482
482
|
{offer.rate_type === 1 && (
|
|
483
483
|
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
484
484
|
)}
|
|
@@ -520,11 +520,11 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
520
520
|
)
|
|
521
521
|
}
|
|
522
522
|
{
|
|
523
|
-
order?.taxes?.length > 0 && order?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0).map((tax: any) => (
|
|
523
|
+
order?.taxes?.length > 0 && order?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0 && tax?.target === 'product').map((tax: any) => (
|
|
524
524
|
<Table key={tax.id}>
|
|
525
525
|
<OSRow>
|
|
526
526
|
<OText mBottom={4}>
|
|
527
|
-
{t(tax?.name?.toUpperCase()?.replace(/ /g, '_'), tax?.name) || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
527
|
+
{t(tax?.name?.toUpperCase?.()?.replace(/ /g, '_'), tax?.name) || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
528
528
|
{`(${verifyDecimals(tax?.rate, parseNumber)}%)`}{' '}
|
|
529
529
|
</OText>
|
|
530
530
|
</OSRow>
|
|
@@ -537,7 +537,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
537
537
|
<Table key={fee.id}>
|
|
538
538
|
<OSRow>
|
|
539
539
|
<OText mBottom={4}>
|
|
540
|
-
{t(fee?.name?.toUpperCase()?.replace(/ /g, '_'), fee?.name) || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
540
|
+
{t(fee?.name?.toUpperCase?.()?.replace(/ /g, '_'), fee?.name) || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
541
541
|
({fee?.fixed > 0 && `${parsePrice(fee?.fixed, { currency: order?.currency })} + `}{fee.percentage}%){' '}
|
|
542
542
|
</OText>
|
|
543
543
|
</OSRow>
|
|
@@ -550,7 +550,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
550
550
|
<Table key={offer.id}>
|
|
551
551
|
<OSRow>
|
|
552
552
|
<OText mBottom={4}>
|
|
553
|
-
{t(offer.name?.toUpperCase()?.replace(/ /g, '_'), offer.name)}
|
|
553
|
+
{t(offer.name?.toUpperCase?.()?.replace(/ /g, '_'), offer.name)}
|
|
554
554
|
{offer.rate_type === 1 && (
|
|
555
555
|
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
556
556
|
)}
|
|
@@ -561,24 +561,37 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
561
561
|
))
|
|
562
562
|
}
|
|
563
563
|
{
|
|
564
|
-
typeof order?.summary?.delivery_price === 'number' && (
|
|
564
|
+
typeof order?.summary?.delivery_price === 'number' && order.delivery_type !== 2 && (
|
|
565
565
|
<Table>
|
|
566
566
|
<OText mBottom={4}>
|
|
567
567
|
{t('DELIVERY_FEE', 'Delivery Fee')}
|
|
568
568
|
</OText>
|
|
569
569
|
|
|
570
570
|
<OText mBottom={4}>
|
|
571
|
-
{parsePrice(order?.summary?.delivery_price, { currency: order?.currency })}
|
|
571
|
+
{parsePrice(order?.summary?.delivery_price + getIncludedTaxes(true), { currency: order?.currency })}
|
|
572
572
|
</OText>
|
|
573
573
|
</Table>
|
|
574
574
|
)
|
|
575
575
|
}
|
|
576
|
+
{
|
|
577
|
+
order?.taxes?.length > 0 && order?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0 && tax?.target === 'delivery_fee').map((tax: any, i: number) => (
|
|
578
|
+
<Table key={`${tax.description}_${i}`}>
|
|
579
|
+
<OSRow>
|
|
580
|
+
<OText mBottom={4}>
|
|
581
|
+
{tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
582
|
+
{`(${verifyDecimals(tax?.rate, parseNumber)}%)`}
|
|
583
|
+
</OText>
|
|
584
|
+
</OSRow>
|
|
585
|
+
<OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
|
|
586
|
+
</Table>
|
|
587
|
+
))
|
|
588
|
+
}
|
|
576
589
|
{
|
|
577
590
|
order?.offers?.length > 0 && order?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
|
|
578
591
|
<Table key={offer.id}>
|
|
579
592
|
<OSRow>
|
|
580
593
|
<OText mBottom={4}>
|
|
581
|
-
{t(offer.name?.toUpperCase()?.replace(/ /g, '_'), offer.name)}
|
|
594
|
+
{t(offer.name?.toUpperCase?.()?.replace(/ /g, '_'), offer.name)}
|
|
582
595
|
{offer.rate_type === 1 && (
|
|
583
596
|
<OText>{`(${verifyDecimals(offer?.rate, parsePrice)}%)`}</OText>
|
|
584
597
|
)}
|
|
@@ -588,7 +601,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
588
601
|
</Table>
|
|
589
602
|
))
|
|
590
603
|
}
|
|
591
|
-
{(order?.summary?.driver_tip > 0 || order?.driver_tip > 0) && (
|
|
604
|
+
{(order?.summary?.driver_tip > 0 || order?.driver_tip > 0) && order.delivery_type !== 2 && (
|
|
592
605
|
<Table>
|
|
593
606
|
<OText mBottom={4}>
|
|
594
607
|
{t('DRIVER_TIP', 'Driver tip')}
|
|
@@ -646,13 +659,12 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
646
659
|
<OText>
|
|
647
660
|
{event?.wallet_event
|
|
648
661
|
? walletName[event?.wallet_event?.wallet?.type]?.name
|
|
649
|
-
:
|
|
662
|
+
: event?.paymethod?.gateway
|
|
663
|
+
? t(event?.paymethod?.gateway?.toUpperCase?.(), event?.paymethod?.name)
|
|
664
|
+
: order?.paymethod?.id === event?.paymethod_id
|
|
665
|
+
? t(order?.paymethod?.gateway?.toUpperCase?.(), order?.paymethod?.name)
|
|
666
|
+
: ''}
|
|
650
667
|
</OText>
|
|
651
|
-
{/* {event?.data?.charge_id && (
|
|
652
|
-
<OText>
|
|
653
|
-
{`${t('CODE', 'Code')}: ${event?.data?.charge_id}`}
|
|
654
|
-
</OText>
|
|
655
|
-
)} */}
|
|
656
668
|
</View>
|
|
657
669
|
<OText>
|
|
658
670
|
{(event?.paymethod?.gateway === 'cash' && order?.cash)
|
|
@@ -664,7 +676,65 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
664
676
|
</View>
|
|
665
677
|
</View>
|
|
666
678
|
)}
|
|
679
|
+
|
|
667
680
|
</OrderBill >
|
|
681
|
+
|
|
682
|
+
{!!order?.spot_number && (
|
|
683
|
+
<OrderSpot vehicleExists={!!order?.vehicle}>
|
|
684
|
+
<Table>
|
|
685
|
+
<OText style={{ marginBottom: 5 }}>
|
|
686
|
+
{t('SPOT_NUMBER', 'Spot number')}
|
|
687
|
+
</OText>
|
|
688
|
+
<OText style={{ marginBottom: 5 }}>
|
|
689
|
+
{order?.spot_number}
|
|
690
|
+
</OText>
|
|
691
|
+
</Table>
|
|
692
|
+
</OrderSpot>
|
|
693
|
+
)}
|
|
694
|
+
|
|
695
|
+
{!!order?.vehicle && (
|
|
696
|
+
<OrderVehicle>
|
|
697
|
+
<OText
|
|
698
|
+
style={{ marginBottom: 5 }}
|
|
699
|
+
size={16}
|
|
700
|
+
weight="600"
|
|
701
|
+
color={theme.colors.textGray}>
|
|
702
|
+
{t('VEHICLE', 'Vehicle')}
|
|
703
|
+
</OText>
|
|
704
|
+
<Table>
|
|
705
|
+
<OText style={{ marginBottom: 5 }}>
|
|
706
|
+
{t('CAR_REGISTRATION', 'Car registration')}
|
|
707
|
+
</OText>
|
|
708
|
+
<OText style={{ marginBottom: 5 }}>
|
|
709
|
+
{order?.vehicle?.car_registration}
|
|
710
|
+
</OText>
|
|
711
|
+
</Table>
|
|
712
|
+
<Table>
|
|
713
|
+
<OText style={{ marginBottom: 5 }}>
|
|
714
|
+
{t('COLOR', 'Color')}
|
|
715
|
+
</OText>
|
|
716
|
+
<OText style={{ marginBottom: 5 }}>
|
|
717
|
+
{order?.vehicle?.color}
|
|
718
|
+
</OText>
|
|
719
|
+
</Table>
|
|
720
|
+
<Table>
|
|
721
|
+
<OText style={{ marginBottom: 5 }}>
|
|
722
|
+
{t('MODEL', 'Model')}
|
|
723
|
+
</OText>
|
|
724
|
+
<OText style={{ marginBottom: 5 }}>
|
|
725
|
+
{order?.vehicle?.model}
|
|
726
|
+
</OText>
|
|
727
|
+
</Table>
|
|
728
|
+
<Table>
|
|
729
|
+
<OText style={{ marginBottom: 5 }}>
|
|
730
|
+
{t('TYPE', 'Type')}
|
|
731
|
+
</OText>
|
|
732
|
+
<OText style={{ marginBottom: 5 }}>
|
|
733
|
+
{order?.vehicle?.type}
|
|
734
|
+
</OText>
|
|
735
|
+
</Table>
|
|
736
|
+
</OrderVehicle>
|
|
737
|
+
)}
|
|
668
738
|
<OModal
|
|
669
739
|
open={openReviewModal}
|
|
670
740
|
onClose={() => setOpenReviewModal(false)}
|
|
@@ -3,7 +3,9 @@ import React from 'react';
|
|
|
3
3
|
//Styles
|
|
4
4
|
import {
|
|
5
5
|
Actions,
|
|
6
|
+
Dot,
|
|
6
7
|
Header,
|
|
8
|
+
Messages,
|
|
7
9
|
OrderHeader,
|
|
8
10
|
} from './styles';
|
|
9
11
|
|
|
@@ -22,6 +24,8 @@ import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityI
|
|
|
22
24
|
import {
|
|
23
25
|
useLanguage,
|
|
24
26
|
useUtils,
|
|
27
|
+
useConfig,
|
|
28
|
+
useSession
|
|
25
29
|
} from 'ordering-components/native';
|
|
26
30
|
|
|
27
31
|
interface OrderHeader {
|
|
@@ -34,6 +38,8 @@ interface OrderHeader {
|
|
|
34
38
|
handleViewSummaryOrder?: any;
|
|
35
39
|
handleCopyClipboard?: any
|
|
36
40
|
isCustomView?: any
|
|
41
|
+
messages?: any
|
|
42
|
+
messagesReadList?: any
|
|
37
43
|
}
|
|
38
44
|
|
|
39
45
|
export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
@@ -45,12 +51,20 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
45
51
|
getOrderStatus,
|
|
46
52
|
logisticOrderStatus,
|
|
47
53
|
handleViewSummaryOrder,
|
|
48
|
-
handleCopyClipboard
|
|
54
|
+
handleCopyClipboard,
|
|
55
|
+
messages,
|
|
56
|
+
messagesReadList
|
|
49
57
|
} = props
|
|
50
58
|
const theme = useTheme();
|
|
51
59
|
const [, t] = useLanguage();
|
|
52
|
-
const [
|
|
60
|
+
const [configState] = useConfig()
|
|
61
|
+
const [{ user }] = useSession()
|
|
62
|
+
const [{ parseDate, parsePrice }] = useUtils();
|
|
53
63
|
const paymethodsLength = order?.payment_events?.filter((item: any) => item.event === 'payment')?.length
|
|
64
|
+
const showExternalId = configState?.configs?.change_order_id?.value === '1'
|
|
65
|
+
const messagesReadIds = messagesReadList?.map((message: any) => message?.order_message_id)
|
|
66
|
+
|
|
67
|
+
const filteredMessages = messagesReadList?.length > 0 ? messages?.messages?.filter((message: any) => !messagesReadIds?.includes(message?.id)) : messages?.messages
|
|
54
68
|
|
|
55
69
|
const styles = StyleSheet.create({
|
|
56
70
|
icons: {
|
|
@@ -125,11 +139,26 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
125
139
|
const paymethodsList = order?.payment_events?.filter((item: any) => item.event === 'payment').map((paymethod: any) => {
|
|
126
140
|
return paymethod?.wallet_event
|
|
127
141
|
? walletName[paymethod?.wallet_event?.wallet?.type]?.name
|
|
128
|
-
:
|
|
142
|
+
: paymethod?.paymethod?.gateway && paymethod?.paymethod?.gateway === 'cash' && order?.cash > 0
|
|
143
|
+
? `${t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)} (${t('CASH_CHANGE_OF', 'Change of :amount:').replace(':amount:', parsePrice(order?.cash))})`
|
|
144
|
+
: paymethod?.paymethod?.gateway
|
|
145
|
+
? t(paymethod?.paymethod?.gateway?.toUpperCase(), paymethod?.paymethod?.name)
|
|
146
|
+
: t(order?.paymethod?.gateway?.toUpperCase(), order?.paymethod?.name)
|
|
129
147
|
})
|
|
130
148
|
return paymethodsList.join(', ')
|
|
131
149
|
}
|
|
132
150
|
|
|
151
|
+
const deliveryDate = () => {
|
|
152
|
+
const dateString = order?.delivery_datetime_utc ?? order?.delivery_datetime
|
|
153
|
+
const currentDate = new Date();
|
|
154
|
+
const receivedDate: any = new Date(order?.delivery_datetime);
|
|
155
|
+
|
|
156
|
+
const formattedDate = receivedDate <= currentDate
|
|
157
|
+
? `${t('ASAP_ABBREVIATION', 'ASAP')}(${parseDate(dateString, { utc: !!order?.delivery_datetime_utc })})`
|
|
158
|
+
: parseDate(dateString, { utc: !!order?.delivery_datetime_utc })
|
|
159
|
+
return formattedDate
|
|
160
|
+
}
|
|
161
|
+
|
|
133
162
|
return (
|
|
134
163
|
<>
|
|
135
164
|
{!props.isCustomView && (
|
|
@@ -173,18 +202,20 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
173
202
|
style={styles.icons}
|
|
174
203
|
onClick={() => handleOpenMapView()}
|
|
175
204
|
/>
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
205
|
+
<Messages>
|
|
206
|
+
{filteredMessages?.filter((message: any) => message?.author_id !== user?.id && !message?.read)?.length > 0 && <Dot />}
|
|
207
|
+
<OIconButton
|
|
208
|
+
icon={theme.images.general.messages}
|
|
209
|
+
iconStyle={{
|
|
210
|
+
width: 20,
|
|
211
|
+
height: 20,
|
|
212
|
+
tintColor: theme.colors.textGray,
|
|
213
|
+
}}
|
|
214
|
+
borderColor={theme.colors.clear}
|
|
215
|
+
style={styles.icons}
|
|
216
|
+
onClick={() => handleOpenMessagesForBusiness()}
|
|
217
|
+
/>
|
|
218
|
+
</Messages>
|
|
188
219
|
</Actions>
|
|
189
220
|
)}
|
|
190
221
|
</Header>
|
|
@@ -192,16 +223,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
192
223
|
<OrderHeader>
|
|
193
224
|
{!props.isCustomView ? (
|
|
194
225
|
<OText size={13} style={{ marginBottom: 5 }}>
|
|
195
|
-
{
|
|
196
|
-
? parseDate(order?.delivery_datetime_utc)
|
|
197
|
-
: parseDate(order?.delivery_datetime, { utc: false })}
|
|
226
|
+
{deliveryDate()}
|
|
198
227
|
</OText>
|
|
199
228
|
) : (
|
|
200
229
|
<Header style={{ alignItems: 'center' }}>
|
|
201
230
|
<OText size={13} style={{ marginBottom: 5 }}>
|
|
202
|
-
{
|
|
203
|
-
? parseDate(order?.delivery_datetime_utc)
|
|
204
|
-
: parseDate(order?.delivery_datetime, { utc: false })}
|
|
231
|
+
{deliveryDate()}
|
|
205
232
|
</OText>
|
|
206
233
|
|
|
207
234
|
{(!order?.isLogistic || (!logisticOrderStatus?.includes(order?.status) && !order?.order_group)) && (
|
|
@@ -240,7 +267,6 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
240
267
|
style={styles.icons}
|
|
241
268
|
onClick={() => handleOpenMapView()}
|
|
242
269
|
/>
|
|
243
|
-
|
|
244
270
|
<OIconButton
|
|
245
271
|
icon={theme.images.general.messages}
|
|
246
272
|
iconStyle={{
|
|
@@ -259,7 +285,7 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
259
285
|
|
|
260
286
|
<OText numberOfLines={2} size={20} weight="600">
|
|
261
287
|
<>
|
|
262
|
-
{`${t('INVOICE_ORDER_NO', 'Order No.')} ${order?.id} `}
|
|
288
|
+
{`${t('INVOICE_ORDER_NO', 'Order No.')} ${showExternalId ? order?.external_id || order?.id : order?.id} `}
|
|
263
289
|
{!order?.isLogistic && (!order?.order_group_id || !logisticOrderStatus?.includes(order?.status)) && (
|
|
264
290
|
<>
|
|
265
291
|
{t('IS', 'is')}{' '}
|
|
@@ -273,7 +299,7 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
273
299
|
)}
|
|
274
300
|
</>
|
|
275
301
|
</OText>
|
|
276
|
-
{order?.external_id && (
|
|
302
|
+
{order?.external_id && !showExternalId && (
|
|
277
303
|
<OText size={13}>
|
|
278
304
|
<OText size={13} weight='bold'>{`${t('EXTERNAL_ID', 'External ID :')} `}</OText>
|
|
279
305
|
{order?.external_id}
|
|
@@ -25,13 +25,13 @@ export const Logo = styled.View`
|
|
|
25
25
|
|
|
26
26
|
export const OrderContent = styled.View`
|
|
27
27
|
flex: 1;
|
|
28
|
-
${(props
|
|
28
|
+
${(props: any) => props.isOrderGroup && css`
|
|
29
29
|
border-color: rgba(0, 0, 0, 0.2);
|
|
30
30
|
border-width: 1px;
|
|
31
31
|
padding: 10px;
|
|
32
32
|
`
|
|
33
33
|
}
|
|
34
|
-
${(props
|
|
34
|
+
${(props: any) => props.lastOrder && css`
|
|
35
35
|
margin-bottom: 50px;
|
|
36
36
|
`}
|
|
37
37
|
`;
|
|
@@ -68,7 +68,28 @@ export const Table = styled.View`
|
|
|
68
68
|
|
|
69
69
|
export const OrderBill = styled.View`
|
|
70
70
|
padding-vertical: 20px;
|
|
71
|
-
|
|
71
|
+
${(props: any) => !props.vehicleExists && css`
|
|
72
|
+
padding-bottom: 50px;
|
|
73
|
+
`
|
|
74
|
+
}
|
|
75
|
+
flex: 1;
|
|
76
|
+
`;
|
|
77
|
+
|
|
78
|
+
export const OrderVehicle = styled.View`
|
|
79
|
+
border-top-width: 1px;
|
|
80
|
+
border-top-color: ${(props: any) => props.theme.colors.borderTops};
|
|
81
|
+
padding-vertical: 20px;
|
|
82
|
+
padding-bottom: 50px;
|
|
83
|
+
flex: 1;
|
|
84
|
+
`;
|
|
85
|
+
|
|
86
|
+
export const OrderSpot = styled.View`
|
|
87
|
+
border-top-width: 1px;
|
|
88
|
+
border-top-color: ${(props: any) => props.theme.colors.borderTops};
|
|
89
|
+
padding-vertical: 20px;
|
|
90
|
+
${(props: any) => !props.vehicleExists && css`
|
|
91
|
+
padding-bottom: 50px;
|
|
92
|
+
`}
|
|
72
93
|
flex: 1;
|
|
73
94
|
`;
|
|
74
95
|
|
|
@@ -98,3 +119,18 @@ export const OSRow = styled.View`
|
|
|
98
119
|
width: 70%;
|
|
99
120
|
flex-wrap: wrap;
|
|
100
121
|
`
|
|
122
|
+
|
|
123
|
+
export const Messages = styled.View`
|
|
124
|
+
position: relative;
|
|
125
|
+
`;
|
|
126
|
+
|
|
127
|
+
export const Dot = styled.View`
|
|
128
|
+
position: absolute;
|
|
129
|
+
width: 8px;
|
|
130
|
+
height: 8px;
|
|
131
|
+
border-radius: 4px;
|
|
132
|
+
background-color: ${(props: any) => props.theme.colors.red};
|
|
133
|
+
top: 10px;
|
|
134
|
+
right: 10px;
|
|
135
|
+
z-index: 99;
|
|
136
|
+
`;
|