ordering-ui-react-native 0.21.97 → 0.21.98-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/StripeMethodForm/index.tsx +6 -4
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/types/index.tsx +3 -1
- package/themes/business/index.tsx +2 -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 +15 -3
- package/themes/business/src/components/DriverMap/index.tsx +49 -27
- package/themes/business/src/components/FloatingButton/index.tsx +3 -2
- package/themes/business/src/components/GoogleMap/index.tsx +15 -8
- 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 +40 -27
- package/themes/business/src/components/OrderDetails/Business.tsx +74 -9
- package/themes/business/src/components/OrderDetails/Delivery.tsx +138 -55
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +125 -43
- package/themes/business/src/components/OrderDetails/OrderHeaderComponent.tsx +62 -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/OrderDetailsLogistic/index.tsx +3 -2
- package/themes/business/src/components/OrderSummary/index.tsx +210 -65
- package/themes/business/src/components/OrdersListManager/index.tsx +13 -1
- package/themes/business/src/components/OrdersOption/index.tsx +217 -156
- package/themes/business/src/components/PhoneInputNumber/index.tsx +8 -5
- package/themes/business/src/components/PreviousMessages/index.tsx +26 -3
- package/themes/business/src/components/PreviousOrders/OrderItem.tsx +39 -16
- package/themes/business/src/components/PreviousOrders/index.tsx +76 -66
- 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/StoresList/index.tsx +2 -2
- package/themes/business/src/components/UserFormDetails/index.tsx +111 -107
- package/themes/business/src/components/UserProfileForm/index.tsx +43 -25
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/hooks/useLocation.tsx +2 -2
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +15 -5
- package/themes/business/src/utils/index.tsx +25 -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 +11 -0
- 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 +5 -5
- 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 +73 -70
- package/themes/original/src/components/BusinessProductsList/index.tsx +6 -7
- 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 +38 -14
- package/themes/original/src/components/CartContent/index.tsx +2 -4
- package/themes/original/src/components/Checkout/index.tsx +102 -58
- 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/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/VerticalGiftCardOrdersLayout/index.tsx +11 -12
- 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 +3 -11
- 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 +2 -1
- package/themes/original/src/components/Messages/index.tsx +29 -17
- 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 +55 -27
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +1 -0
- package/themes/original/src/components/MyOrders/index.tsx +2 -2
- package/themes/original/src/components/NavBar/index.tsx +7 -4
- 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 +4 -3
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +13 -10
- package/themes/original/src/components/OrderDetails/index.tsx +42 -19
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +14 -7
- package/themes/original/src/components/OrderSummary/index.tsx +29 -10
- package/themes/original/src/components/OrderTypeSelector/index.tsx +7 -6
- package/themes/original/src/components/OrdersOption/index.tsx +3 -6
- 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 +14 -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 +51 -44
- 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 +6 -4
- 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 +76 -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 +154 -130
- package/themes/original/src/components/UserProfile/index.tsx +9 -1
- package/themes/original/src/components/UserVerification/index.tsx +2 -2
- package/themes/original/src/components/Wallets/index.tsx +6 -3
- package/themes/original/src/components/WebsocketStatus/index.tsx +1 -4
- 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/components/shared/OModal.tsx +7 -2
- package/themes/original/src/types/index.tsx +5 -1
- package/themes/original/src/utils/index.tsx +30 -1
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -19,6 +19,7 @@ import { Favorite } from './src/components/Favorite';
|
|
|
19
19
|
import { FavoriteList } from './src/components/FavoriteList';
|
|
20
20
|
import { FloatingButton } from './src/components/FloatingButton';
|
|
21
21
|
import { ForgotPasswordForm } from './src/components/ForgotPasswordForm';
|
|
22
|
+
import { GPSButton } from './src/components/GPSButton';
|
|
22
23
|
import { MomentOption } from './src/components/MomentOption';
|
|
23
24
|
import { OrdersOption } from './src/components/OrdersOption';
|
|
24
25
|
import { OrderDetails } from './src/components/OrderDetails';
|
|
@@ -85,6 +86,7 @@ import { VerifyPhone } from './src/components/VerifyPhone';
|
|
|
85
86
|
import { GoogleLogin } from './src/components/GoogleLogin';
|
|
86
87
|
import { PreviousOrders } from './src/components/PreviousOrders';
|
|
87
88
|
import { PaymentOptionCash } from './src/components/PaymentOptionCash';
|
|
89
|
+
import { SendGiftCard } from './src/components/GiftCard/SendGiftCard';
|
|
88
90
|
import { StripeElementsForm } from './src/components/StripeElementsForm';
|
|
89
91
|
import { StripeCardsList } from './src/components/StripeCardsList';
|
|
90
92
|
import { ProductIngredient } from './src/components/ProductIngredient';
|
|
@@ -106,6 +108,8 @@ import { OSBill, OSTable, OSCoupon, OSTotal, OSRow } from './src/components/Orde
|
|
|
106
108
|
import { FormInput, FormSide, ButtonsWrapper, LoginWith, OTab, OTabs } from './src/components/LoginForm/styles';
|
|
107
109
|
import { OSItem, OSItemContent, OSItemActions } from './src/components/PaymentOptionStripe/styles';
|
|
108
110
|
|
|
111
|
+
import { orderTypeList, getTraduction, verifyDecimals, getOrderStatus, getOrderStatuPickUp } from './src/utils'
|
|
112
|
+
|
|
109
113
|
import Alert from './src/providers/AlertProvider'
|
|
110
114
|
|
|
111
115
|
import {
|
|
@@ -182,6 +186,7 @@ export {
|
|
|
182
186
|
Checkout,
|
|
183
187
|
Favorite,
|
|
184
188
|
FavoriteList,
|
|
189
|
+
GPSButton,
|
|
185
190
|
ForgotPasswordForm,
|
|
186
191
|
MomentOption,
|
|
187
192
|
OrdersOption,
|
|
@@ -256,6 +261,7 @@ export {
|
|
|
256
261
|
ProductIngredient,
|
|
257
262
|
ProductOption,
|
|
258
263
|
ProductOptionSubOption,
|
|
264
|
+
SendGiftCard,
|
|
259
265
|
Sessions,
|
|
260
266
|
SingleProductReview,
|
|
261
267
|
LogoutButton,
|
|
@@ -343,6 +349,11 @@ export {
|
|
|
343
349
|
_setStoreData,
|
|
344
350
|
_removeStoreData,
|
|
345
351
|
_clearStoreData,
|
|
352
|
+
orderTypeList,
|
|
353
|
+
getTraduction,
|
|
354
|
+
verifyDecimals,
|
|
355
|
+
getOrderStatus,
|
|
356
|
+
getOrderStatuPickUp,
|
|
346
357
|
|
|
347
358
|
// Date Picker
|
|
348
359
|
DatePickerUI
|
|
@@ -66,7 +66,9 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
66
66
|
isFromProductsList,
|
|
67
67
|
hasAddressDefault,
|
|
68
68
|
afterSignup,
|
|
69
|
-
businessSlug
|
|
69
|
+
businessSlug,
|
|
70
|
+
isFromCheckout,
|
|
71
|
+
onNavigationRedirect
|
|
70
72
|
} = props;
|
|
71
73
|
|
|
72
74
|
const theme = useTheme();
|
|
@@ -132,6 +134,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
132
134
|
const [configState] = useConfig();
|
|
133
135
|
const [orderState] = useOrder();
|
|
134
136
|
const { handleSubmit, errors, control, setValue } = useForm();
|
|
137
|
+
const [autoCompleteAddress, setAutoCompleteAddress] = useState(false)
|
|
135
138
|
|
|
136
139
|
const [toggleMap, setToggleMap] = useState(false);
|
|
137
140
|
const [alertState, setAlertState] = useState<{
|
|
@@ -172,6 +175,8 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
172
175
|
const isHideMap = theme?.address?.components?.map?.hidden
|
|
173
176
|
const isHideIcons = theme?.address?.components?.icons?.hidden
|
|
174
177
|
const continueAsGuest = () => navigation.navigate(!!businessSlug ? 'Business' : 'BusinessList', { isGuestUser: true });
|
|
178
|
+
const unaddressedTypes = configState?.configs?.unaddressed_order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
179
|
+
const isAllowUnaddressOrderType = unaddressedTypes.includes(orderState?.options?.type)
|
|
175
180
|
const goToBack = () => navigation?.canGoBack() && navigation.goBack();
|
|
176
181
|
|
|
177
182
|
const getAddressFormatted = (address: any) => {
|
|
@@ -351,9 +356,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
351
356
|
map_data: { library: 'google', place_id: data.place_id },
|
|
352
357
|
zip_code: data?.zip_code || null,
|
|
353
358
|
};
|
|
354
|
-
if (googleInput?.current) {
|
|
355
|
-
googleInput?.current?.setAddressText(addressSelected.address);
|
|
356
|
-
}
|
|
357
359
|
updateChanges(addressSelected);
|
|
358
360
|
};
|
|
359
361
|
|
|
@@ -371,6 +373,10 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
371
373
|
setToggleMap(!toggleMap);
|
|
372
374
|
};
|
|
373
375
|
|
|
376
|
+
const showFieldWithTheme = (name) => {
|
|
377
|
+
return !theme?.address?.components?.[name]?.hidden
|
|
378
|
+
}
|
|
379
|
+
|
|
374
380
|
useEffect(() => {
|
|
375
381
|
if (
|
|
376
382
|
orderState.loading &&
|
|
@@ -379,9 +385,11 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
379
385
|
auth &&
|
|
380
386
|
!afterSignup
|
|
381
387
|
) {
|
|
382
|
-
|
|
383
|
-
? navigation.
|
|
384
|
-
:
|
|
388
|
+
isFromCheckout
|
|
389
|
+
? navigation.goBack()
|
|
390
|
+
: !isFromProductsList
|
|
391
|
+
? navigation.navigate('BottomTab')
|
|
392
|
+
: navigation.navigate('Business');
|
|
385
393
|
}
|
|
386
394
|
}, [orderState?.options?.address]);
|
|
387
395
|
|
|
@@ -520,6 +528,12 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
520
528
|
setIsSignUpEffect(true);
|
|
521
529
|
}, [orderState.loading]);
|
|
522
530
|
|
|
531
|
+
useEffect(() => {
|
|
532
|
+
if (isAllowUnaddressOrderType) {
|
|
533
|
+
onNavigationRedirect && onNavigationRedirect(!!businessSlug ? 'Business' : 'BusinessList')
|
|
534
|
+
}
|
|
535
|
+
}, [isAllowUnaddressOrderType])
|
|
536
|
+
|
|
523
537
|
return (
|
|
524
538
|
<ScrollView
|
|
525
539
|
keyboardShouldPersistTaps='always'
|
|
@@ -565,6 +579,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
565
579
|
placeholder={t('ADD_ADDRESS', 'Add a address')}
|
|
566
580
|
onPress={(data, details: any) => {
|
|
567
581
|
handleChangeAddress(data, details);
|
|
582
|
+
setAutoCompleteAddress(true);
|
|
568
583
|
}}
|
|
569
584
|
query={{
|
|
570
585
|
key: googleMapsApiKey,
|
|
@@ -579,6 +594,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
579
594
|
target: { name: 'address', value: text },
|
|
580
595
|
});
|
|
581
596
|
setValue('address', text);
|
|
597
|
+
setAutoCompleteAddress(true)
|
|
582
598
|
}
|
|
583
599
|
setIsFirstTime(false);
|
|
584
600
|
setAddressEditing(text.length == 0);
|
|
@@ -666,13 +682,15 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
666
682
|
setSaveLocation={setSaveMapLocation}
|
|
667
683
|
handleToggleMap={handleToggleMap}
|
|
668
684
|
isIntGeoCoder
|
|
685
|
+
setAutoCompleteAddress={setAutoCompleteAddress}
|
|
686
|
+
autoCompleteAddress={autoCompleteAddress}
|
|
669
687
|
/>
|
|
670
688
|
</GoogleMapContainer>
|
|
671
689
|
</View>
|
|
672
690
|
)}
|
|
673
691
|
|
|
674
692
|
<View style={{ flexDirection: 'row', flexBasis: '50%' }}>
|
|
675
|
-
{
|
|
693
|
+
{((isRequiredField && isRequiredField('internal_number')) || showFieldWithTheme('internal_number')) && (
|
|
676
694
|
<Controller
|
|
677
695
|
control={control}
|
|
678
696
|
name="internal_number"
|
|
@@ -708,7 +726,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
708
726
|
isFocusHighlight
|
|
709
727
|
style={{
|
|
710
728
|
...styles.inputsStyle,
|
|
711
|
-
marginRight: showField('internal_number') && showField('zipcode') ? 24 : 0
|
|
729
|
+
marginRight: showField?.('internal_number') && showField?.('zipcode') ? 24 : 0
|
|
712
730
|
}}
|
|
713
731
|
forwardRef={internalNumberRef}
|
|
714
732
|
returnKeyType="next"
|
|
@@ -719,7 +737,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
719
737
|
/>
|
|
720
738
|
)}
|
|
721
739
|
|
|
722
|
-
{
|
|
740
|
+
{((isRequiredField && isRequiredField('zipcode')) || showFieldWithTheme('zipcode')) && (
|
|
723
741
|
<Controller
|
|
724
742
|
control={control}
|
|
725
743
|
name="zipcode"
|
|
@@ -764,7 +782,7 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
764
782
|
)}
|
|
765
783
|
</View>
|
|
766
784
|
|
|
767
|
-
{
|
|
785
|
+
{((isRequiredField && isRequiredField('address_notes')) || showFieldWithTheme('address_notes')) && (
|
|
768
786
|
<Controller
|
|
769
787
|
control={control}
|
|
770
788
|
name="address_notes"
|
|
@@ -845,9 +863,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
845
863
|
: t('LOADING', 'Loading')
|
|
846
864
|
}
|
|
847
865
|
onClick={handleSubmit(onSubmit)}
|
|
848
|
-
bgColor={theme.colors.primary}
|
|
849
|
-
borderColor={theme.colors.primary}
|
|
850
|
-
textStyle={{ color: theme.colors.white }}
|
|
851
866
|
isDisabled={formState.loading}
|
|
852
867
|
style={{ borderRadius: 7.6, shadowOpacity: 0 }}
|
|
853
868
|
showNextIcon
|
|
@@ -855,8 +870,9 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
855
870
|
) : (
|
|
856
871
|
<OButton
|
|
857
872
|
text={t('CANCEL', 'Cancel')}
|
|
858
|
-
bgColor={theme.colors.
|
|
859
|
-
borderColor={theme.colors.
|
|
873
|
+
bgColor={theme.colors.secundary}
|
|
874
|
+
borderColor={theme.colors.secundary}
|
|
875
|
+
textStyle={{ color: theme.colors.textNormal }}
|
|
860
876
|
style={{ borderRadius: 7.6, borderWidth: 1, shadowOpacity: 0 }}
|
|
861
877
|
onClick={() => navigation?.canGoBack() && navigation.goBack()}
|
|
862
878
|
/>
|
|
@@ -882,7 +898,6 @@ const AddressFormUI = (props: AddressFormParams) => {
|
|
|
882
898
|
)}
|
|
883
899
|
<OButton
|
|
884
900
|
text={t('SAVE', 'Save')}
|
|
885
|
-
textStyle={{ color: theme.colors.white }}
|
|
886
901
|
imgRightSrc={null}
|
|
887
902
|
style={{ marginHorizontal: 30, marginBottom: 10 }}
|
|
888
903
|
onClick={() => setSaveMapLocation(true)}
|
|
@@ -217,7 +217,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
217
217
|
onSaveAddress: handleSaveAddress,
|
|
218
218
|
isSelectedAfterAdd: true,
|
|
219
219
|
isFromProductsList: isFromProductsList,
|
|
220
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
220
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
221
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
221
222
|
}
|
|
222
223
|
) : onNavigationRedirect(
|
|
223
224
|
'AddressFormInitial',
|
|
@@ -228,7 +229,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
228
229
|
onSaveAddress: handleSaveAddress,
|
|
229
230
|
isSelectedAfterAdd: true,
|
|
230
231
|
isFromProductsList: isFromProductsList,
|
|
231
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
232
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
233
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
232
234
|
})}
|
|
233
235
|
>
|
|
234
236
|
<OIcon src={theme.images.general.pencil} width={16} style={{ marginHorizontal: 4 }} />
|
|
@@ -293,10 +295,7 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
293
295
|
<OButton
|
|
294
296
|
text={t('ADD_NEW_ADDRESS', 'Add new Address')}
|
|
295
297
|
imgRightSrc=''
|
|
296
|
-
bgColor={theme.colors.primary}
|
|
297
|
-
textStyle={{ color: theme.colors.white }}
|
|
298
298
|
style={styles.button}
|
|
299
|
-
borderColor={theme.colors.primary}
|
|
300
299
|
onClick={() => !afterSignup ? onNavigationRedirect(
|
|
301
300
|
'AddressForm',
|
|
302
301
|
{
|
|
@@ -305,7 +304,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
305
304
|
addressesList: addressList?.addresses,
|
|
306
305
|
nopadding: true,
|
|
307
306
|
isSelectedAfterAdd: true,
|
|
308
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
307
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
308
|
+
isFromCheckout: route?.params?.isFromCheckout
|
|
309
309
|
}) : onNavigationRedirect(
|
|
310
310
|
'AddressFormInitial',
|
|
311
311
|
{
|
|
@@ -314,7 +314,8 @@ const AddressListUI = (props: AddressListParams) => {
|
|
|
314
314
|
addressesList: addressList?.addresses,
|
|
315
315
|
nopadding: true,
|
|
316
316
|
isSelectedAfterAdd: true,
|
|
317
|
-
hasAddressDefault: !!orderState.options?.address?.location
|
|
317
|
+
hasAddressDefault: !!orderState.options?.address?.location,
|
|
318
|
+
isFormCheckout: route?.params?.isFromCheckout
|
|
318
319
|
})}
|
|
319
320
|
/>
|
|
320
321
|
</>
|
|
@@ -23,8 +23,7 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
23
23
|
segmentClient.track('Product List Viewed', {
|
|
24
24
|
business_id: category?.business_id,
|
|
25
25
|
category_id: category?.id,
|
|
26
|
-
category: category?.name
|
|
27
|
-
products: category?.products
|
|
26
|
+
category: category?.name
|
|
28
27
|
})
|
|
29
28
|
}
|
|
30
29
|
|
|
@@ -62,11 +61,12 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
62
61
|
})
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
const handleProductAdded = (product: any) => {
|
|
64
|
+
const handleProductAdded = (product: any, result: any) => {
|
|
66
65
|
segmentClient.track('Product Added', {
|
|
67
|
-
|
|
66
|
+
cart_id: result.uuid,
|
|
67
|
+
product_id: product.id,
|
|
68
68
|
name: product.name,
|
|
69
|
-
category: product.category_id,
|
|
69
|
+
category: product.category_id || product?.categoryId,
|
|
70
70
|
price: product.price,
|
|
71
71
|
quantity: product.quantity
|
|
72
72
|
})
|
|
@@ -101,7 +101,7 @@ export const AnalyticsSegment = (props: any) => {
|
|
|
101
101
|
|
|
102
102
|
const handleOrderPlaced = (order: any) => {
|
|
103
103
|
segmentClient.track('Order Placed', {
|
|
104
|
-
|
|
104
|
+
order_id: order.id,
|
|
105
105
|
affiliation: order.business?.name,
|
|
106
106
|
revenue: order.total,
|
|
107
107
|
tax: order.tax_total,
|
|
@@ -21,7 +21,7 @@ export const AppleLogin = (props: any) => {
|
|
|
21
21
|
const [{ configs }] = useConfig();
|
|
22
22
|
const [credentialStateForUser, updateCredentialStateForUser] = useState<any>(-1);
|
|
23
23
|
|
|
24
|
-
let user
|
|
24
|
+
let user: any = null
|
|
25
25
|
|
|
26
26
|
const buttonText = auth
|
|
27
27
|
? t('CONTINUE_WITH_APPLE', 'Logout with Apple')
|
|
@@ -53,7 +53,7 @@ export const AppleLogin = (props: any) => {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser
|
|
56
|
+
const fetchAndUpdateCredentialState = async (updateCredentialStateForUser: any) => {
|
|
57
57
|
if (user === null) {
|
|
58
58
|
updateCredentialStateForUser('N/A');
|
|
59
59
|
} else {
|
|
@@ -66,7 +66,7 @@ export const AppleLogin = (props: any) => {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
const onIOSButtonPress = async (updateCredentialStateForUser
|
|
69
|
+
const onIOSButtonPress = async (updateCredentialStateForUser: any) => {
|
|
70
70
|
try {
|
|
71
71
|
const appleAuthRequestResponse = await appleAuth.performRequest({
|
|
72
72
|
requestedOperation: appleAuth.Operation.LOGIN,
|
|
@@ -79,7 +79,7 @@ export const AppleLogin = (props: any) => {
|
|
|
79
79
|
identityToken,
|
|
80
80
|
authorizationCode
|
|
81
81
|
} = appleAuthRequestResponse;
|
|
82
|
-
|
|
82
|
+
|
|
83
83
|
user = newUser;
|
|
84
84
|
|
|
85
85
|
fetchAndUpdateCredentialState(updateCredentialStateForUser).catch(error =>
|
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
SocialListWrapper
|
|
27
27
|
} from './styles';
|
|
28
28
|
import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
|
|
29
|
-
const types = ['food', 'laundry', 'alcohol', 'groceries'];
|
|
30
29
|
|
|
31
30
|
let BusinessInformation: null | React.ElementType = null
|
|
32
31
|
let BusinessReviews: null | React.ElementType = null
|
|
@@ -36,6 +35,7 @@ export const BusinessBasicInformation = (
|
|
|
36
35
|
) => {
|
|
37
36
|
const { navigation, businessState, isBusinessInfoShow, logo, header, isPreOrder } = props;
|
|
38
37
|
const { business, loading } = businessState;
|
|
38
|
+
const types = business?.types && business?.types?.filter(({ enabled }) => (enabled)).map(({ name }) => (name))
|
|
39
39
|
|
|
40
40
|
const theme = useTheme();
|
|
41
41
|
const [orderState] = useOrder();
|
|
@@ -146,14 +146,11 @@ export const BusinessBasicInformation = (
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
const getBusinessType = () => {
|
|
149
|
-
if (
|
|
149
|
+
if (!types) return t('GENERAL', 'General');
|
|
150
150
|
const _types: any = [];
|
|
151
151
|
types.forEach(
|
|
152
|
-
(type) =>
|
|
153
|
-
|
|
154
|
-
_types.push(
|
|
155
|
-
t(`BUSINESS_TYPE_${type?.replace(/\s/g, '_')?.toUpperCase()}`, type),
|
|
156
|
-
),
|
|
152
|
+
(type: any) =>
|
|
153
|
+
_types.push(type)
|
|
157
154
|
);
|
|
158
155
|
return _types.join(', ');
|
|
159
156
|
};
|
|
@@ -455,7 +452,7 @@ export const BusinessBasicInformation = (
|
|
|
455
452
|
</BusinessInfoItem>
|
|
456
453
|
</View>
|
|
457
454
|
<WrapReviews>
|
|
458
|
-
{!isBusinessInfoShow && (
|
|
455
|
+
{!isBusinessInfoShow && !loading && (
|
|
459
456
|
<>
|
|
460
457
|
{isPreOrder && (!business?.professionals || business?.professionals?.length === 0) && (
|
|
461
458
|
<>
|
|
@@ -35,9 +35,9 @@ import FastImage from 'react-native-fast-image'
|
|
|
35
35
|
import { LottieAnimation } from '../LottieAnimation';
|
|
36
36
|
import { CardAnimation } from '../shared/CardAnimation';
|
|
37
37
|
|
|
38
|
-
function BusinessControllerPropsAreEqual
|
|
38
|
+
function BusinessControllerPropsAreEqual(prevProps: any, nextProps: any) {
|
|
39
39
|
return JSON.stringify(prevProps.business) === JSON.stringify(nextProps.business) &&
|
|
40
|
-
|
|
40
|
+
prevProps.isBusinessOpen === nextProps.isBusinessOpen
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export const BusinessControllerUI = React.memo((props: BusinessControllerParams) => {
|
|
@@ -232,7 +232,7 @@ export const BusinessControllerUI = React.memo((props: BusinessControllerParams)
|
|
|
232
232
|
</View>
|
|
233
233
|
)}
|
|
234
234
|
{!hideBusinessOffer && (
|
|
235
|
-
getBusinessOffer((business?.offers)) &&
|
|
235
|
+
!!getBusinessOffer((business?.offers)) &&
|
|
236
236
|
<OfferBox
|
|
237
237
|
isClosed={!isBusinessOpen && (configState?.configs?.preorder_status_enabled?.value === '1')}
|
|
238
238
|
isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}
|
|
@@ -244,7 +244,7 @@ export const BusinessControllerUI = React.memo((props: BusinessControllerParams)
|
|
|
244
244
|
numberOfLines={2}
|
|
245
245
|
ellipsizeMode='tail'
|
|
246
246
|
lineHeight={13}
|
|
247
|
-
>{getBusinessOffer((business?.offers))
|
|
247
|
+
>{t('DISCOUNT', 'Discount')}{' '}{getBusinessOffer((business?.offers))}</OText>
|
|
248
248
|
</OfferBox>
|
|
249
249
|
)}
|
|
250
250
|
<BusinessState isRibbon={business?.ribbon?.enabled && !!business?.ribbon?.text}>
|
|
@@ -309,7 +309,7 @@ export const BusinessControllerUI = React.memo((props: BusinessControllerParams)
|
|
|
309
309
|
</ReviewAndFavorite>
|
|
310
310
|
)}
|
|
311
311
|
</View>
|
|
312
|
-
<OText size={textSize} style={{ lineHeight: 15, marginBottom: 3 }} numberOfLines={
|
|
312
|
+
<OText size={textSize} style={{ lineHeight: 15, marginBottom: 3, fontFamily: undefined }} numberOfLines={1}>
|
|
313
313
|
{business?.address}
|
|
314
314
|
</OText>
|
|
315
315
|
<Metadata>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect } from 'react';
|
|
2
|
-
import { TouchableOpacity, View } from 'react-native';
|
|
2
|
+
import { TouchableOpacity, View, Vibration } from 'react-native';
|
|
3
3
|
import { useOrder, useLanguage, useUtils, useConfig, useEvent } from 'ordering-components/native';
|
|
4
4
|
import { useTheme } from 'styled-components/native';
|
|
5
5
|
import {
|
|
@@ -57,6 +57,9 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
57
57
|
return acc = acc
|
|
58
58
|
}, cart?.subtotal)
|
|
59
59
|
|
|
60
|
+
const bgStyle = (subtotalWithTaxes < cart?.minimum || !cart?.valid_address) ? theme.colors.secundary : theme.colors.primary
|
|
61
|
+
const textStyles = (subtotalWithTaxes < cart?.minimum || !cart?.valid_address) ? theme.colors.black : theme.colors.white
|
|
62
|
+
|
|
60
63
|
useEffect(() => {
|
|
61
64
|
if (isActive && !isFromUpselling) {
|
|
62
65
|
if (cart?.uuid !== viewedCart?.uuid) {
|
|
@@ -66,6 +69,11 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
66
69
|
}
|
|
67
70
|
}, [isActive, viewedCart])
|
|
68
71
|
|
|
72
|
+
const handleGoToStore = () => {
|
|
73
|
+
Vibration.vibrate(100)
|
|
74
|
+
props.onNavigationRedirect('Business', { store: cart?.business?.slug })
|
|
75
|
+
}
|
|
76
|
+
|
|
69
77
|
return (
|
|
70
78
|
<BIContainer isClosed={isClosed} isMultiCheckout={isMultiCheckout} checkoutVisible={!isActive && !isClosed && !!isProducts && !checkoutButtonDisabled}>
|
|
71
79
|
<BIHeader
|
|
@@ -79,7 +87,7 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
79
87
|
<View style={{ flexDirection: 'row' }}>
|
|
80
88
|
{props.onNavigationRedirect && !isClosed && !isGiftCart && (
|
|
81
89
|
<>
|
|
82
|
-
<TouchableOpacity onPress={() =>
|
|
90
|
+
<TouchableOpacity onPress={() => handleGoToStore()}>
|
|
83
91
|
<OText color={theme.colors.primary} size={12} lineHeight={18} style={{ textDecorationLine: 'underline' }}>{t('GO_TO_STORE', 'Go to store')}</OText>
|
|
84
92
|
</TouchableOpacity>
|
|
85
93
|
</>
|
|
@@ -153,11 +161,11 @@ export const BusinessItemAccordion = (props: any) => {
|
|
|
153
161
|
{cart?.valid_products && (
|
|
154
162
|
<OButton
|
|
155
163
|
onClick={handleClickCheckout}
|
|
156
|
-
textStyle={{ color:
|
|
164
|
+
textStyle={{ color: textStyles, textAlign: 'center', flex: 1 }}
|
|
157
165
|
style={{ width: 180, flexDirection: 'row', justifyContent: 'center', borderRadius: 7.6, shadowOpacity: 0 }}
|
|
158
166
|
text={t('CHECKOUT', 'Checkout')}
|
|
159
|
-
bgColor={
|
|
160
|
-
borderColor={
|
|
167
|
+
bgColor={bgStyle}
|
|
168
|
+
borderColor={bgStyle}
|
|
161
169
|
isDisabled={checkoutButtonDisabled}
|
|
162
170
|
/>
|
|
163
171
|
)}
|
|
@@ -243,7 +243,7 @@ export const BusinessSearchFooter = (props: any) => {
|
|
|
243
243
|
onClick={() => handleChangePriceRange(price?.level)}
|
|
244
244
|
text={`${price.content} ${(filters?.price_level === price?.level) ? ' X' : ''}`}
|
|
245
245
|
style={styles.priceItem}
|
|
246
|
-
textStyle={{ fontSize: 10, color: (filters?.price_level === price?.level) ? theme.colors.
|
|
246
|
+
textStyle={{ fontSize: 10, color: (filters?.price_level === price?.level) ? theme.colors.white : theme.colors.textNormal }}
|
|
247
247
|
/>
|
|
248
248
|
))}
|
|
249
249
|
</View>
|
|
@@ -284,7 +284,7 @@ export const BusinessSearchFooter = (props: any) => {
|
|
|
284
284
|
onClick={() => handleChangeActiveBusinessType(type)}
|
|
285
285
|
text={`${t(`BUSINESS_TYPE_${type.name.replace(/\s/g, '_').toUpperCase()}`, type.name)} ${filters?.business_types?.includes(type?.id) ? 'X' : ''}`}
|
|
286
286
|
style={styles.categoryStyle}
|
|
287
|
-
textStyle={{ fontSize: 10, color: (filters?.business_types?.includes(type?.id) || (type?.id === null && filters?.business_types?.length === 0)) ?
|
|
287
|
+
textStyle={{ fontSize: 10, color: (filters?.business_types?.includes(type?.id) || (type?.id === null && filters?.business_types?.length === 0)) ? theme.colors.white : theme.colors.textNormal }}
|
|
288
288
|
/>
|
|
289
289
|
))}
|
|
290
290
|
</View>
|
|
@@ -296,7 +296,6 @@ export const BusinessSearchFooter = (props: any) => {
|
|
|
296
296
|
<OButton
|
|
297
297
|
text={t('APPLY', 'Apply')}
|
|
298
298
|
parentStyle={styles.applyButton}
|
|
299
|
-
textStyle={{ color: '#fff' }}
|
|
300
299
|
onClick={() => handleApplyFilters()}
|
|
301
300
|
/>
|
|
302
301
|
</View>
|
|
@@ -47,13 +47,11 @@ export const BusinessSearchHeader = (props: any) => {
|
|
|
47
47
|
borderWidth: 0,
|
|
48
48
|
width: 26,
|
|
49
49
|
height: 26,
|
|
50
|
-
backgroundColor: '#FFF',
|
|
51
|
-
borderColor: '#FFF',
|
|
52
|
-
shadowColor: '#FFF',
|
|
53
50
|
paddingLeft: 0,
|
|
54
51
|
paddingRight: 0,
|
|
55
52
|
marginTop: 50,
|
|
56
53
|
}}
|
|
54
|
+
useArrow
|
|
57
55
|
onClick={() => props.navigation.goBack()}
|
|
58
56
|
icon={AntDesignIcon}
|
|
59
57
|
iconProps={{
|
|
@@ -230,7 +230,7 @@ export const BusinessListingSearchUI = (props: BusinessSearchParams) => {
|
|
|
230
230
|
</BusinessInfoItem>
|
|
231
231
|
<OButton
|
|
232
232
|
onClick={() => onBusinessClick(business)}
|
|
233
|
-
textStyle={{
|
|
233
|
+
textStyle={{ fontSize: 10 }}
|
|
234
234
|
text={t('GO_TO_STORE', 'Go to store')}
|
|
235
235
|
style={{
|
|
236
236
|
borderRadius: 23,
|
|
@@ -238,7 +238,6 @@ export const BusinessListingSearchUI = (props: BusinessSearchParams) => {
|
|
|
238
238
|
paddingRight: 10,
|
|
239
239
|
height: 23,
|
|
240
240
|
shadowOpacity: 0,
|
|
241
|
-
backgroundColor: theme.colors.primaryContrast,
|
|
242
241
|
borderWidth: 0
|
|
243
242
|
}}
|
|
244
243
|
/>
|
|
@@ -11,6 +11,8 @@ import { BusinessMenuList } from '../BusinessMenuList'
|
|
|
11
11
|
import Spinner from 'react-native-loading-spinner-overlay'
|
|
12
12
|
import { BusinessPreorderParams } from '../../types'
|
|
13
13
|
import moment from 'moment'
|
|
14
|
+
import { setLocalMoment } from '../../utils';
|
|
15
|
+
|
|
14
16
|
import SelectDropdown from 'react-native-select-dropdown'
|
|
15
17
|
import {
|
|
16
18
|
PreOrderContainer,
|
|
@@ -311,6 +313,10 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
311
313
|
}
|
|
312
314
|
}, [dateSelected])
|
|
313
315
|
|
|
316
|
+
useEffect(() => {
|
|
317
|
+
setLocalMoment(moment, t)
|
|
318
|
+
}, [])
|
|
319
|
+
|
|
314
320
|
useFocusEffect(
|
|
315
321
|
React.useCallback(() => {
|
|
316
322
|
handleAsap && handleAsap()
|
|
@@ -527,7 +533,6 @@ const BusinessPreorderUI = (props: BusinessPreorderParams) => {
|
|
|
527
533
|
)}
|
|
528
534
|
<OButton
|
|
529
535
|
text={t('GO_TO_MENU', 'Go to menu')}
|
|
530
|
-
textStyle={{ color: 'white' }}
|
|
531
536
|
style={{ borderRadius: 7.6, marginBottom: 20, marginTop: 30 }}
|
|
532
537
|
onClick={() => handleClickBusiness()}
|
|
533
538
|
isDisabled={isAsap || !(dateSelected && timeSelected)}
|
|
@@ -553,21 +558,21 @@ export const BusinessPreorder = (props: any) => {
|
|
|
553
558
|
currentDate.setMinutes(59)
|
|
554
559
|
|
|
555
560
|
const cateringTypeString = orderState?.options?.type === 7
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
561
|
+
? 'catering_delivery'
|
|
562
|
+
: orderState?.options?.type === 8
|
|
563
|
+
? 'catering_pickup'
|
|
564
|
+
: null
|
|
560
565
|
|
|
561
|
-
const splitCateringValue = (configName
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
const preorderSlotInterval = parseInt(splitCateringValue('preorder_slot_interval'))
|
|
567
|
-
const preorderLeadTime = parseInt(splitCateringValue('preorder_lead_time'))
|
|
568
|
-
const preorderTimeRange = parseInt(splitCateringValue('preorder_time_range'))
|
|
569
|
-
const preorderMaximumDays = parseInt(splitCateringValue('preorder_maximum_days'))
|
|
570
|
-
const preorderMinimumDays = parseInt(splitCateringValue('preorder_minimum_days'))
|
|
566
|
+
const splitCateringValue = (configName: string) =>
|
|
567
|
+
Object.values(props?.business?.configs || {})
|
|
568
|
+
?.find(config => config?.key === configName)
|
|
569
|
+
?.value?.split('|')
|
|
570
|
+
?.find(val => val.includes(cateringTypeString || ''))?.split(',')[1]
|
|
571
|
+
const preorderSlotInterval = parseInt(splitCateringValue('preorder_slot_interval'))
|
|
572
|
+
const preorderLeadTime = parseInt(splitCateringValue('preorder_lead_time'))
|
|
573
|
+
const preorderTimeRange = parseInt(splitCateringValue('preorder_time_range'))
|
|
574
|
+
const preorderMaximumDays = parseInt(splitCateringValue('preorder_maximum_days'))
|
|
575
|
+
const preorderMinimumDays = parseInt(splitCateringValue('preorder_minimum_days'))
|
|
571
576
|
|
|
572
577
|
const businessPreorderProps = {
|
|
573
578
|
...props,
|