ordering-ui-react-native 0.15.56 → 0.15.58-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 +5 -3
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessController/index.tsx +16 -8
- package/src/components/BusinessTypeFilter/index.tsx +3 -1
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +23 -2
- package/src/components/DriverTips/index.tsx +11 -6
- package/src/components/LanguageSelector/index.tsx +7 -2
- package/src/components/LoginForm/index.tsx +120 -30
- package/src/components/LoginForm/styles.tsx +6 -0
- package/src/components/OrderDetails/index.tsx +7 -21
- package/src/components/PaymentOptions/index.tsx +67 -50
- package/src/components/PaymentOptionsWebView/index.tsx +123 -124
- package/src/components/SignupForm/index.tsx +145 -61
- package/src/components/SingleProductCard/index.tsx +16 -4
- package/src/components/StripeMethodForm/index.tsx +1 -2
- package/src/components/UpsellingProducts/index.tsx +1 -1
- package/src/components/UserProfileForm/index.tsx +63 -6
- package/src/components/UserProfileForm/styles.tsx +8 -0
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OModal.tsx +1 -1
- package/src/hooks/useCountdownTimer.tsx +26 -0
- package/src/navigators/CheckoutNavigator.tsx +6 -0
- package/src/navigators/HomeNavigator.tsx +12 -0
- package/src/pages/BusinessesListing.tsx +1 -1
- package/src/pages/MultiCheckout.tsx +31 -0
- package/src/pages/MultiOrdersDetails.tsx +27 -0
- package/src/pages/Sessions.tsx +22 -0
- package/src/theme.json +0 -1
- package/src/types/index.tsx +18 -11
- package/src/utils/index.tsx +68 -1
- package/themes/business/src/components/AcceptOrRejectOrder/index.tsx +103 -15
- package/themes/business/src/components/AcceptOrRejectOrder/styles.tsx +6 -0
- package/themes/business/src/components/Chat/index.tsx +42 -90
- package/themes/business/src/components/DriverMap/index.tsx +6 -5
- package/themes/business/src/components/LoginForm/index.tsx +89 -2
- package/themes/business/src/components/LoginForm/styles.tsx +6 -0
- package/themes/business/src/components/LogoutButton/index.tsx +1 -1
- package/themes/business/src/components/NewOrderNotification/index.tsx +79 -105
- package/themes/business/src/components/OrderDetails/Business.tsx +2 -2
- package/themes/business/src/components/OrderDetails/Delivery.tsx +28 -11
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +41 -7
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +6 -0
- package/themes/business/src/components/OrdersListManager/index.tsx +1 -1
- package/themes/business/src/components/OrdersOption/index.tsx +5 -2
- package/themes/business/src/components/PreviousOrders/index.tsx +2 -2
- package/themes/business/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +2 -0
- package/themes/business/src/components/shared/OModal.tsx +1 -1
- package/themes/business/src/types/index.tsx +6 -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/BusinessMenu/index.tsx +39 -28
- package/themes/kiosk/src/components/BusinessesListing/index.tsx +2 -3
- package/themes/kiosk/src/components/Cart/index.tsx +11 -12
- package/themes/kiosk/src/components/CartBottomSheet/index.tsx +9 -2
- package/themes/kiosk/src/components/CartContent/index.tsx +0 -11
- package/themes/kiosk/src/components/CartItem/index.tsx +4 -3
- package/themes/kiosk/src/components/CategoriesMenu/index.tsx +107 -62
- package/themes/kiosk/src/components/Checkout/index.tsx +40 -22
- package/themes/kiosk/src/components/CustomerName/index.tsx +0 -6
- package/themes/kiosk/src/components/DrawerView/index.tsx +1 -0
- package/themes/kiosk/src/components/DrawerView/styles.tsx +2 -2
- package/themes/kiosk/src/components/NavBar/index.tsx +29 -20
- package/themes/kiosk/src/components/OptionCard/index.tsx +1 -1
- package/themes/kiosk/src/components/OrderDetails/index.tsx +32 -27
- package/themes/kiosk/src/components/OrderTypeCardSelector/index.tsx +9 -11
- package/themes/kiosk/src/components/PaymentOptions/index.tsx +56 -54
- package/themes/kiosk/src/components/ProductForm/index.tsx +7 -8
- package/themes/kiosk/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/kiosk/src/components/ProductOption/index.tsx +1 -1
- package/themes/kiosk/src/components/ProductOptionSubOption/index.tsx +3 -1
- package/themes/kiosk/src/components/UpsellingProducts/index.tsx +16 -5
- package/themes/kiosk/src/components/shared/OButton.tsx +5 -18
- package/themes/kiosk/src/types/index.d.ts +1 -0
- package/themes/original/index.tsx +169 -4
- package/themes/original/src/components/ActiveOrders/index.tsx +15 -132
- package/themes/original/src/components/ActiveOrders/styles.tsx +0 -54
- package/themes/original/src/components/AddressForm/index.tsx +7 -6
- package/themes/original/src/components/AddressList/index.tsx +30 -18
- package/themes/original/src/components/AppleLogin/index.tsx +9 -13
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +136 -45
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +4 -0
- package/themes/original/src/components/BusinessController/index.tsx +48 -11
- package/themes/original/src/components/BusinessController/styles.tsx +27 -0
- package/themes/original/src/components/BusinessFeaturedController/index.tsx +20 -1
- package/themes/original/src/components/BusinessFeaturedController/styles.tsx +23 -0
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -5
- package/themes/original/src/components/BusinessItemAccordion/styles.tsx +3 -1
- package/themes/original/src/components/BusinessListingSearch/index.tsx +196 -58
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +22 -2
- package/themes/original/src/components/BusinessPreorder/index.tsx +1 -1
- package/themes/original/src/components/BusinessProductsCategories/index.tsx +2 -2
- package/themes/original/src/components/BusinessProductsList/CategoryDescription/index.tsx +44 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +119 -35
- package/themes/original/src/components/BusinessProductsList/styles.tsx +12 -4
- package/themes/original/src/components/BusinessProductsListing/index.tsx +109 -21
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -0
- package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +1 -2
- package/themes/original/src/components/BusinessesListing/index.tsx +127 -66
- package/themes/original/src/components/BusinessesListing/styles.tsx +11 -3
- package/themes/original/src/components/Cart/index.tsx +60 -41
- package/themes/original/src/components/Checkout/index.tsx +48 -32
- package/themes/original/src/components/DriverTips/index.tsx +17 -12
- package/themes/original/src/components/Favorite/index.tsx +92 -0
- package/themes/original/src/components/Favorite/styles.tsx +22 -0
- package/themes/original/src/components/FavoriteList/index.tsx +298 -0
- package/themes/original/src/components/FavoriteList/styles.tsx +5 -0
- package/themes/original/src/components/ForgotPasswordForm/index.tsx +84 -4
- package/themes/original/src/components/GPSButton/index.tsx +15 -8
- package/themes/original/src/components/GoogleMap/index.tsx +11 -11
- package/themes/original/src/components/Help/index.tsx +21 -4
- package/themes/original/src/components/HighestRatedBusinesses/index.tsx +18 -1
- package/themes/original/src/components/Home/index.tsx +1 -1
- package/themes/original/src/components/LastOrders/index.tsx +12 -1
- package/themes/original/src/components/LoginForm/Otp/index.tsx +91 -0
- package/themes/original/src/components/LoginForm/Otp/styles.tsx +7 -0
- package/themes/original/src/components/LoginForm/index.tsx +332 -164
- package/themes/original/src/components/LoginForm/styles.tsx +1 -3
- package/themes/original/src/components/MessageListing/index.tsx +10 -1
- package/themes/original/src/components/Messages/index.tsx +1 -1
- package/themes/original/src/components/MomentOption/index.tsx +10 -1
- package/themes/original/src/components/MomentOption/styles.tsx +1 -1
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +243 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/styles.tsx +46 -0
- package/themes/original/src/components/MultiCheckout/index.tsx +298 -0
- package/themes/original/src/components/MultiCheckout/styles.tsx +59 -0
- package/themes/original/src/components/MultiOrdersDetails/SingleOrderCard.tsx +372 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +258 -0
- package/themes/original/src/components/MultiOrdersDetails/styles.tsx +50 -0
- package/themes/original/src/components/MyOrders/index.tsx +120 -32
- package/themes/original/src/components/MyOrders/styles.tsx +8 -1
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +135 -49
- package/themes/original/src/components/OrderDetails/styles.tsx +1 -2
- package/themes/original/src/components/OrderSummary/index.tsx +2 -2
- package/themes/original/src/components/OrderTypeSelector/index.tsx +4 -2
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +153 -0
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +53 -0
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/styles.tsx +6 -0
- package/themes/original/src/components/OrdersOption/index.tsx +130 -38
- package/themes/original/src/components/OrdersOption/styles.tsx +4 -1
- package/themes/original/src/components/PaymentOptionCash/index.tsx +2 -2
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +17 -23
- package/themes/original/src/components/PaymentOptionWallet/styles.tsx +1 -1
- package/themes/original/src/components/PaymentOptions/index.tsx +57 -36
- package/themes/original/src/components/PhoneInputNumber/index.tsx +1 -1
- package/themes/original/src/components/PreviousOrders/index.tsx +18 -147
- package/themes/original/src/components/ProductForm/index.tsx +70 -62
- package/themes/original/src/components/ProductForm/styles.tsx +0 -1
- package/themes/original/src/components/ProductItemAccordion/index.tsx +2 -2
- package/themes/original/src/components/ProductOptionSubOption/index.tsx +18 -12
- package/themes/original/src/components/Promotions/index.tsx +151 -133
- package/themes/original/src/components/Promotions/styles.tsx +3 -23
- package/themes/original/src/components/SearchBar/index.tsx +10 -4
- package/themes/original/src/components/Sessions/index.tsx +160 -0
- package/themes/original/src/components/Sessions/styles.tsx +15 -0
- package/themes/original/src/components/SignupForm/index.tsx +269 -130
- package/themes/original/src/components/SingleOrderCard/index.tsx +282 -0
- package/themes/original/src/components/SingleOrderCard/styles.tsx +54 -0
- package/themes/original/src/components/SingleProductCard/index.tsx +59 -17
- package/themes/original/src/components/StripeElementsForm/index.tsx +16 -8
- package/themes/original/src/components/StripeElementsForm/naked.tsx +2 -2
- package/themes/original/src/components/UpsellingProducts/index.tsx +86 -74
- package/themes/original/src/components/UserDetails/index.tsx +5 -96
- package/themes/original/src/components/UserFormDetails/index.tsx +34 -24
- package/themes/original/src/components/UserProfile/index.tsx +53 -6
- package/themes/original/src/components/UserProfileForm/index.tsx +20 -18
- package/themes/original/src/components/UserVerification/index.tsx +178 -192
- package/themes/original/src/components/VerifyPhone/index.tsx +10 -7
- package/themes/original/src/components/VerifyPhone/styles.tsx +2 -1
- package/themes/original/src/components/Wallets/index.tsx +76 -9
- package/themes/original/src/components/Wallets/styles.tsx +21 -0
- package/themes/original/src/components/shared/OModal.tsx +4 -2
- package/themes/original/src/config/constants.tsx +6 -6
- package/themes/original/src/types/index.tsx +192 -33
- package/themes/original/src/utils/index.tsx +85 -2
- package/themes/single-business/src/components/AddressList/index.tsx +1 -1
- package/themes/single-business/src/components/OrderTypeSelector/index.tsx +1 -1
- package/themes/single-business/src/components/UserProfile/index.tsx +1 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -268,6 +268,12 @@ export const OrderHeaderComponent = (props: OrderHeader) => {
|
|
|
268
268
|
<OText size={13} weight='bold'>{`${t('ORDER_TYPE', 'Order Type')}: `}</OText>
|
|
269
269
|
{orderTypes(order.delivery_type)}
|
|
270
270
|
</OText>
|
|
271
|
+
{order?.delivery_option && (
|
|
272
|
+
<OText size={13}>
|
|
273
|
+
<OText size={13} weight='bold'>{`${t('DELIVERY_PREFERENCE', 'Delivery Preference')}: `}</OText>
|
|
274
|
+
{order?.delivery_option?.name}
|
|
275
|
+
</OText>
|
|
276
|
+
)}
|
|
271
277
|
{order?.payment_events?.length > 0 && (
|
|
272
278
|
<View>
|
|
273
279
|
<OText size={13}>
|
|
@@ -617,7 +617,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
617
617
|
</RightSide>
|
|
618
618
|
</Sides>
|
|
619
619
|
|
|
620
|
-
<NewOrderNotification />
|
|
620
|
+
<NewOrderNotification isBusinessApp={isBusinessApp} />
|
|
621
621
|
{(openSearchModal || openSLASettingModal) && (
|
|
622
622
|
<OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
|
|
623
623
|
<ModalContainer
|
|
@@ -725,8 +725,11 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
725
725
|
</ScrollView>
|
|
726
726
|
</View>
|
|
727
727
|
{/* </GestureRecognizer> */}
|
|
728
|
-
|
|
729
|
-
|
|
728
|
+
|
|
729
|
+
{isBusinessApp && (
|
|
730
|
+
<NewOrderNotification isBusinessApp={isBusinessApp} />
|
|
731
|
+
)}
|
|
732
|
+
|
|
730
733
|
{(openSearchModal || openSLASettingModal) && (
|
|
731
734
|
<OModal open={openSearchModal || openSLASettingModal} entireModal customClose>
|
|
732
735
|
<ModalContainer
|
|
@@ -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:
|
|
35
|
-
slaBar:
|
|
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();
|
|
@@ -153,7 +153,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
153
153
|
{(
|
|
154
154
|
productInfo?.()?.ingredients?.length > 0 ||
|
|
155
155
|
productInfo?.()?.options?.length > 0 ||
|
|
156
|
-
product.comment
|
|
156
|
+
!!product.comment
|
|
157
157
|
) && !isClickableEvent && (
|
|
158
158
|
<MaterialCommunityIcon name="chevron-down" size={12} />
|
|
159
159
|
)}
|
|
@@ -278,7 +278,7 @@ export const ProductItemAccordion = (props: ProductItemAccordionParams) => {
|
|
|
278
278
|
</ProductOptionsList>
|
|
279
279
|
)}
|
|
280
280
|
|
|
281
|
-
{product.comment && (
|
|
281
|
+
{!!product.comment && (
|
|
282
282
|
<ProductComment>
|
|
283
283
|
<OText
|
|
284
284
|
size={12}
|
|
@@ -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}
|
|
@@ -47,6 +47,7 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
47
47
|
handleToggleAvalaibleStatusDriver,
|
|
48
48
|
userState,
|
|
49
49
|
isAvailableLoading,
|
|
50
|
+
isAlsea
|
|
50
51
|
} = props;
|
|
51
52
|
|
|
52
53
|
const [{ user }] = useSession();
|
|
@@ -456,6 +457,7 @@ const ProfileUI = (props: ProfileParams) => {
|
|
|
456
457
|
hideUpdateButton
|
|
457
458
|
handleCancelEdit={handleCancelEdit}
|
|
458
459
|
toggleIsEdit={toggleIsEdit}
|
|
460
|
+
isAlsea={isAlsea}
|
|
459
461
|
/>
|
|
460
462
|
</View>
|
|
461
463
|
)}
|
|
@@ -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 {
|
|
@@ -373,6 +377,7 @@ export interface OrderDetailsParams {
|
|
|
373
377
|
handleClickLogisticOrder?: (status: number, orderId: number) => void;
|
|
374
378
|
orderTitle?: any;
|
|
375
379
|
forceUpdate?: number;
|
|
380
|
+
getPermissions?: any
|
|
376
381
|
}
|
|
377
382
|
export interface ProductItemAccordionParams {
|
|
378
383
|
isCartPending?: boolean;
|
|
@@ -578,4 +583,4 @@ export interface ReviewCustomerParams {
|
|
|
578
583
|
|
|
579
584
|
export interface NoNetworkParams {
|
|
580
585
|
image?: any;
|
|
581
|
-
}
|
|
586
|
+
}
|
|
@@ -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', '
|
|
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', '
|
|
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,
|
|
@@ -40,7 +40,7 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
40
40
|
const clearCartWhenTimeOut = () => {
|
|
41
41
|
if (cart?.uuid) clearCart(cart?.uuid)
|
|
42
42
|
}
|
|
43
|
-
const timerId = useRef(false);
|
|
43
|
+
const timerId: any = useRef(false);
|
|
44
44
|
|
|
45
45
|
const clearInactivityTimeout = () =>{
|
|
46
46
|
clearTimeout(timerId.current);
|
|
@@ -93,6 +93,17 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
93
93
|
else showCartBottomSheet();
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
const handleRedirect = () => {
|
|
97
|
+
navigation.navigate('DeliveryType', {
|
|
98
|
+
callback: () => {
|
|
99
|
+
navigation.navigate('Business');
|
|
100
|
+
},
|
|
101
|
+
goBack: () => {
|
|
102
|
+
navigation.goBack();
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
96
107
|
return (
|
|
97
108
|
<View style={{
|
|
98
109
|
flex: 1,
|
|
@@ -109,31 +120,31 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
109
120
|
}}
|
|
110
121
|
>
|
|
111
122
|
<Container nopadding nestedScrollEnabled>
|
|
112
|
-
<View style={{ paddingTop: 20 }}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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}
|
|
121
136
|
>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
</TouchableOpacity>
|
|
134
|
-
)}
|
|
135
|
-
/>
|
|
136
|
-
</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
|
+
/>
|
|
137
148
|
|
|
138
149
|
<BusinessProductsListing
|
|
139
150
|
{ ...businessProductsListingProps }
|
|
@@ -144,7 +155,7 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
144
155
|
</Container>
|
|
145
156
|
</View>
|
|
146
157
|
|
|
147
|
-
<View
|
|
158
|
+
{/* <View
|
|
148
159
|
style={{
|
|
149
160
|
flex: bottomSheetVisibility && orientationState?.orientation === PORTRAIT ? 0 : 0.8,
|
|
150
161
|
display: bottomSheetVisibility ? 'flex' : 'none'
|
|
@@ -155,7 +166,7 @@ const BusinessMenu = (props:any): React.ReactElement => {
|
|
|
155
166
|
resetInactivityTimeout={resetInactivityTimeout}
|
|
156
167
|
clearInactivityTimeout={clearInactivityTimeout}
|
|
157
168
|
/>
|
|
158
|
-
</View>
|
|
169
|
+
</View> */}
|
|
159
170
|
</View>
|
|
160
171
|
);
|
|
161
172
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import {
|
|
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();
|
|
@@ -110,7 +110,6 @@ const CartUI = (props: any) => {
|
|
|
110
110
|
<NavBar
|
|
111
111
|
title={t('CONFIRM_YOUR_ORDER', 'Confirm your order')}
|
|
112
112
|
onActionLeft={goToBack}
|
|
113
|
-
style={{ height: orientationState?.dimensions?.height * 0.08 }}
|
|
114
113
|
btnStyle={{ paddingLeft: 0 }}
|
|
115
114
|
rightComponent={(
|
|
116
115
|
<OButton
|
|
@@ -238,8 +237,8 @@ const CartUI = (props: any) => {
|
|
|
238
237
|
</OSTable>
|
|
239
238
|
)}
|
|
240
239
|
{
|
|
241
|
-
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any) => (
|
|
242
|
-
<OSTable key={offer
|
|
240
|
+
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 1)?.map((offer: any, i: number) => (
|
|
241
|
+
<OSTable key={`${offer?.id}_${i}`}>
|
|
243
242
|
<OSRow>
|
|
244
243
|
<OText>{offer.name}</OText>
|
|
245
244
|
{offer.rate_type === 1 && (
|
|
@@ -263,8 +262,8 @@ const CartUI = (props: any) => {
|
|
|
263
262
|
</OSTable>
|
|
264
263
|
)}
|
|
265
264
|
{
|
|
266
|
-
cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0).map((tax: any) => (
|
|
267
|
-
<OSTable key={tax
|
|
265
|
+
cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0).map((tax: any, i: number) => (
|
|
266
|
+
<OSTable key={`${tax?.id}_${i}`}>
|
|
268
267
|
<OSRow>
|
|
269
268
|
<OText>
|
|
270
269
|
{tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
|
|
@@ -276,12 +275,12 @@ const CartUI = (props: any) => {
|
|
|
276
275
|
))
|
|
277
276
|
}
|
|
278
277
|
{
|
|
279
|
-
cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any) => (
|
|
280
|
-
<OSTable key={fee?.id}>
|
|
278
|
+
cart?.fees?.length > 0 && cart?.fees?.filter((fee: any) => !(fee.fixed === 0 && fee.percentage === 0)).map((fee: any, i: number) => (
|
|
279
|
+
<OSTable key={`${fee?.id}_${i}`}>
|
|
281
280
|
<OSRow>
|
|
282
281
|
<OText>
|
|
283
282
|
{fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}{' '}
|
|
284
|
-
({fee?.fixed > 0 && `${parsePrice(fee?.fixed)} + `}{fee.percentage}
|
|
283
|
+
({fee?.fixed > 0 && `${parsePrice(fee?.fixed)}${fee.percentage > 0 ? ' + ' : ''}`}{fee.percentage > 0 && `${fee.percentage}%`}){' '}
|
|
285
284
|
</OText>
|
|
286
285
|
</OSRow>
|
|
287
286
|
<OText>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0)}</OText>
|
|
@@ -289,8 +288,8 @@ const CartUI = (props: any) => {
|
|
|
289
288
|
))
|
|
290
289
|
}
|
|
291
290
|
{
|
|
292
|
-
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any) => (
|
|
293
|
-
<OSTable key={offer
|
|
291
|
+
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 3)?.map((offer: any, i: number) => (
|
|
292
|
+
<OSTable key={`${offer?.id}_${i}`}>
|
|
294
293
|
<OSRow>
|
|
295
294
|
<OText>{offer.name}</OText>
|
|
296
295
|
{offer.rate_type === 1 && (
|
|
@@ -310,8 +309,8 @@ const CartUI = (props: any) => {
|
|
|
310
309
|
</OSTable>
|
|
311
310
|
)}
|
|
312
311
|
{
|
|
313
|
-
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
|
|
314
|
-
<OSTable key={offer
|
|
312
|
+
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any, i: number) => (
|
|
313
|
+
<OSTable key={`${offer?.id}_${i}`}>
|
|
315
314
|
<OSRow>
|
|
316
315
|
<OText>{offer.name}</OText>
|
|
317
316
|
{offer.rate_type === 1 && (
|
|
@@ -62,6 +62,10 @@ const CartBottomSheetUI = (props: CartBottomSheetUIProps): React.ReactElement |
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
const handleEditProduct = (product: any) => {
|
|
65
|
+
if (props.onEditProduct) {
|
|
66
|
+
props.onEditProduct(product)
|
|
67
|
+
return
|
|
68
|
+
}
|
|
65
69
|
setCurProduct(product)
|
|
66
70
|
setModalIsOpen(true)
|
|
67
71
|
}
|
|
@@ -148,7 +152,7 @@ const CartBottomSheetUI = (props: CartBottomSheetUIProps): React.ReactElement |
|
|
|
148
152
|
<StyledBottomContent
|
|
149
153
|
style={{bottom:10}}
|
|
150
154
|
minHeight={props.height * 0.01}
|
|
151
|
-
>
|
|
155
|
+
>
|
|
152
156
|
<OButton
|
|
153
157
|
text={(cart?.subtotal >= cart?.minimum || !cart?.minimum) && cart?.valid_address ? (
|
|
154
158
|
!openUpselling !== canOpenUpselling ? `${t('CHECKOUT', 'Checkout')} ${parsePrice(cart?.total)}`: t('LOADING', 'Loading')
|
|
@@ -198,6 +202,7 @@ const CartBottomSheetUI = (props: CartBottomSheetUIProps): React.ReactElement |
|
|
|
198
202
|
canOpenUpselling={canOpenUpselling}
|
|
199
203
|
setCanOpenUpselling={setCanOpenUpselling}
|
|
200
204
|
onClose={onCloseUpselling}
|
|
205
|
+
onAddProduct={props.onAddProduct}
|
|
201
206
|
resetInactivityTimeout={resetInactivityTimeout}
|
|
202
207
|
/>
|
|
203
208
|
)}
|
|
@@ -231,7 +236,7 @@ const TopBar = (props:any) => {
|
|
|
231
236
|
<OIconButton
|
|
232
237
|
bgColor="transparent"
|
|
233
238
|
borderColor="transparent"
|
|
234
|
-
RenderIcon={() =>
|
|
239
|
+
RenderIcon={() =>
|
|
235
240
|
<EvilIcons
|
|
236
241
|
name={'close'}
|
|
237
242
|
size={40}
|
|
@@ -260,6 +265,8 @@ interface CartBottomSheetUIProps {
|
|
|
260
265
|
onNavigationRedirect: any,
|
|
261
266
|
clearInactivityTimeout: any,
|
|
262
267
|
resetInactivityTimeout: any,
|
|
268
|
+
onEditProduct: any,
|
|
269
|
+
onAddProduct: any,
|
|
263
270
|
}
|
|
264
271
|
|
|
265
272
|
export const CartBottomSheet = (props: any) => {
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { useLanguage } from 'ordering-components/native';
|
|
3
2
|
import { useCartBottomSheet } from '../../providers/CartBottomSheetProvider';
|
|
4
|
-
import { CCNotCarts } from './styles';
|
|
5
3
|
|
|
6
4
|
import { Cart } from '../Cart';
|
|
7
|
-
import { OText } from '../shared';
|
|
8
5
|
import Spinner from 'react-native-loading-spinner-overlay';
|
|
9
6
|
import { Cart as TypeCart } from '../../types';
|
|
10
7
|
|
|
@@ -20,7 +17,6 @@ export const CartContent = (props: any) => {
|
|
|
20
17
|
resetInactivityTimeout,
|
|
21
18
|
}: Props = props
|
|
22
19
|
|
|
23
|
-
const [, t] = useLanguage()
|
|
24
20
|
const [isCartsLoading, setIsCartsLoading] = useState(false)
|
|
25
21
|
const [, { hideCartBottomSheet }] = useCartBottomSheet();
|
|
26
22
|
|
|
@@ -56,13 +52,6 @@ export const CartContent = (props: any) => {
|
|
|
56
52
|
}
|
|
57
53
|
</>
|
|
58
54
|
)}
|
|
59
|
-
{/* {(!cart && showNotFound) && (
|
|
60
|
-
<CCNotCarts>
|
|
61
|
-
<OText size={24} style={{ textAlign: 'center' }}>
|
|
62
|
-
{t('CARTS_NOT_FOUND', 'You don\'t have carts available')}
|
|
63
|
-
</OText>
|
|
64
|
-
</CCNotCarts>
|
|
65
|
-
)} */}
|
|
66
55
|
<Spinner visible={isCartsLoading} />
|
|
67
56
|
</>
|
|
68
57
|
)
|
|
@@ -56,9 +56,10 @@ const CartItem = (props: CartItemProps) => {
|
|
|
56
56
|
return product
|
|
57
57
|
}
|
|
58
58
|
const isProductIngredients = productInfo()?.ingredients.length > 0 || productInfo()?.options.length > 0 || product?.comment
|
|
59
|
-
const getFormattedSubOptionName = ({ quantity, name, position, price }: { quantity: number, name: string, position: string, price:
|
|
59
|
+
const getFormattedSubOptionName = ({ quantity, name, position, price }: { quantity: number, name: string, position: string, price: any }) => {
|
|
60
60
|
const pos = position ? `(${position})` : ''
|
|
61
|
-
|
|
61
|
+
const str = `${quantity} x ${name} ${pos}`
|
|
62
|
+
return price ? `${str} ${price}` : str
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
return (
|
|
@@ -184,7 +185,7 @@ const CartItem = (props: CartItemProps) => {
|
|
|
184
185
|
quantity: suboption.quantity,
|
|
185
186
|
name: suboption.name,
|
|
186
187
|
position: (suboption.position !== 'whole') ? t(suboption.position.toUpperCase(), suboption.position) : '',
|
|
187
|
-
price: parsePrice(suboption.price)
|
|
188
|
+
price: suboption.price > 0 && `+${parsePrice(suboption.price)}`
|
|
188
189
|
})}
|
|
189
190
|
</OText>
|
|
190
191
|
</ProductSubOption>
|