ordering-ui-react-native 0.16.23 → 0.16.24-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 +7 -4
- package/src/DeliveryApp.tsx +43 -1
- package/src/components/ActiveOrders/index.tsx +61 -63
- package/src/components/ActiveOrders/styles.tsx +8 -14
- package/src/components/AddressForm/index.tsx +18 -2
- package/src/components/BusinessBasicInformation/index.tsx +11 -19
- package/src/components/BusinessController/index.tsx +10 -8
- package/src/components/BusinessInformation/index.tsx +33 -4
- package/src/components/BusinessInformation/styles.tsx +2 -2
- package/src/components/BusinessProductsList/index.tsx +10 -10
- package/src/components/BusinessesListing/index.tsx +1 -1
- package/src/components/Checkout/index.tsx +2 -1
- package/src/components/LanguageSelector/index.tsx +21 -16
- package/src/components/LoginForm/index.tsx +118 -30
- package/src/components/LoginForm/styles.tsx +6 -0
- package/src/components/Messages/index.tsx +2 -2
- package/src/components/NotificationSetting/index.tsx +85 -0
- package/src/components/OrderDetails/index.tsx +2 -20
- package/src/components/OrdersOption/index.tsx +54 -56
- package/src/components/PaymentOptions/index.tsx +335 -365
- package/src/components/PaymentOptionsWebView/index.tsx +120 -121
- package/src/components/ReviewDriver/index.tsx +1 -1
- package/src/components/ReviewOrder/index.tsx +2 -1
- package/src/components/ReviewProducts/index.tsx +11 -0
- package/src/components/SignupForm/index.tsx +143 -61
- package/src/components/SingleProductReview/index.tsx +8 -5
- package/src/components/StripeElementsForm/index.tsx +25 -16
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/components/shared/OBottomPopup.tsx +6 -2
- package/src/index.tsx +2 -0
- package/src/pages/BusinessesListing.tsx +7 -6
- package/src/pages/OrderDetails.tsx +1 -1
- package/src/pages/ReviewDriver.tsx +2 -2
- package/src/pages/ReviewOrder.tsx +2 -2
- package/src/theme.json +0 -1
- package/src/types/@fatnlazycat/react-native-recaptcha-v3/index.d.ts +1 -0
- package/src/types/index.tsx +13 -9
- package/src/utils/index.tsx +0 -1
- package/themes/business/index.tsx +4 -0
- package/themes/business/src/components/BusinessController/index.tsx +2 -2
- package/themes/business/src/components/Chat/index.tsx +42 -34
- package/themes/business/src/components/DriverMap/index.tsx +7 -5
- package/themes/business/src/components/DriverSchedule/index.tsx +71 -0
- package/themes/business/src/components/DriverSchedule/styles.tsx +6 -0
- package/themes/business/src/components/LoginForm/index.tsx +111 -74
- package/themes/business/src/components/MapView/index.tsx +12 -1
- package/themes/business/src/components/MessagesOption/index.tsx +11 -1
- package/themes/business/src/components/OrderDetails/Business.tsx +1 -1
- package/themes/business/src/components/OrderDetails/OrderContentComponent.tsx +25 -19
- package/themes/business/src/components/OrdersListManager/index.tsx +10 -3
- package/themes/business/src/components/OrdersOption/index.tsx +65 -21
- package/themes/business/src/components/OrdersOption/styles.tsx +5 -1
- package/themes/business/src/components/OrdersOptionBusiness/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionCity/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDate/index.tsx +19 -6
- package/themes/business/src/components/OrdersOptionDelivery/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionDriver/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionPaymethod/index.tsx +15 -1
- package/themes/business/src/components/OrdersOptionStatus/index.tsx +10 -1
- package/themes/business/src/components/PreviousMessages/index.tsx +17 -18
- package/themes/business/src/components/PreviousOrders/index.tsx +21 -23
- package/themes/business/src/components/ProductItemAccordion/index.tsx +5 -4
- package/themes/business/src/components/ReviewCustomer/index.tsx +1 -1
- package/themes/business/src/components/ScheduleBlocked/index.tsx +53 -0
- package/themes/business/src/components/UserFormDetails/index.tsx +5 -2
- package/themes/business/src/components/UserProfileForm/index.tsx +28 -4
- package/themes/business/src/components/shared/ODropDown.tsx +42 -8
- package/themes/business/src/components/shared/ODropDownCalendar.tsx +36 -7
- package/themes/business/src/components/shared/OModal.tsx +40 -37
- package/themes/business/src/types/index.tsx +15 -9
- package/themes/business/src/utils/index.tsx +10 -0
- 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/LoginForm/index.tsx +121 -10
- package/themes/kiosk/src/components/LoginForm/styles.tsx +5 -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/kiosk/src/types/index.d.ts +2 -0
- package/themes/original/index.tsx +12 -0
- package/themes/original/src/components/AddressForm/index.tsx +139 -135
- package/themes/original/src/components/AddressList/index.tsx +1 -1
- package/themes/original/src/components/AppleLogin/index.tsx +4 -4
- package/themes/original/src/components/BusinessBasicInformation/index.tsx +311 -161
- package/themes/original/src/components/BusinessBasicInformation/styles.tsx +6 -2
- package/themes/original/src/components/BusinessController/index.tsx +175 -110
- package/themes/original/src/components/BusinessItemAccordion/index.tsx +8 -6
- package/themes/original/src/components/BusinessListingSearch/BusinessControllerSkeletons/index.tsx +57 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/index.tsx +59 -0
- package/themes/original/src/components/BusinessListingSearch/MaxSectionItem/styles.tsx +13 -0
- package/themes/original/src/components/BusinessListingSearch/index.tsx +101 -125
- package/themes/original/src/components/BusinessListingSearch/styles.tsx +18 -13
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/index.tsx +87 -0
- package/themes/original/src/components/BusinessProductsList/SubcategoriesComponent/styles.tsx +12 -0
- package/themes/original/src/components/BusinessProductsList/index.tsx +49 -52
- package/themes/original/src/components/BusinessProductsList/styles.tsx +0 -3
- package/themes/original/src/components/BusinessProductsListing/index.tsx +287 -175
- package/themes/original/src/components/BusinessProductsListing/styles.tsx +22 -8
- package/themes/original/src/components/BusinessReviews/index.tsx +6 -1
- package/themes/original/src/components/BusinessTypeFilter/index.tsx +109 -40
- package/themes/original/src/components/BusinessTypeFilter/styles.tsx +2 -0
- package/themes/original/src/components/BusinessesListing/Layout/Appointment/index.tsx +561 -0
- package/themes/original/src/components/BusinessesListing/{styles.tsx → Layout/Appointment/styles.tsx} +24 -10
- package/themes/original/src/components/BusinessesListing/Layout/Original/index.tsx +676 -0
- package/themes/original/src/components/BusinessesListing/Layout/Original/styles.tsx +137 -0
- package/themes/original/src/components/BusinessesListing/index.tsx +105 -519
- package/themes/original/src/components/Cart/index.tsx +42 -10
- package/themes/original/src/components/Cart/styles.tsx +4 -0
- package/themes/original/src/components/CartContent/index.tsx +22 -16
- package/themes/original/src/components/Checkout/index.tsx +105 -65
- package/themes/original/src/components/Checkout/styles.tsx +0 -1
- package/themes/original/src/components/DriverTips/index.tsx +4 -4
- package/themes/original/src/components/DriverTips/styles.tsx +2 -1
- package/themes/original/src/components/Favorite/index.tsx +1 -0
- package/themes/original/src/components/FavoriteList/index.tsx +32 -2
- package/themes/original/src/components/FloatingButton/styles.tsx +1 -1
- package/themes/original/src/components/GPSButton/index.tsx +20 -19
- package/themes/original/src/components/GoogleMap/index.tsx +20 -12
- package/themes/original/src/components/HelpAccountAndPayment/index.tsx +8 -3
- package/themes/original/src/components/HelpGuide/index.tsx +8 -3
- package/themes/original/src/components/HelpOrder/index.tsx +8 -3
- package/themes/original/src/components/LanguageSelector/index.tsx +19 -14
- package/themes/original/src/components/LoginForm/Otp/index.tsx +3 -2
- package/themes/original/src/components/LoginForm/index.tsx +82 -44
- package/themes/original/src/components/Messages/index.tsx +17 -17
- package/themes/original/src/components/MomentSelector/index.tsx +197 -0
- package/themes/original/src/components/MomentSelector/styles.tsx +6 -0
- package/themes/original/src/components/MultiCartsPaymethodsAndWallets/index.tsx +92 -92
- package/themes/original/src/components/MultiCheckout/index.tsx +6 -0
- package/themes/original/src/components/MultiOrdersDetails/index.tsx +20 -16
- package/themes/original/src/components/MyOrders/index.tsx +70 -6
- package/themes/original/src/components/NavBar/index.tsx +15 -9
- package/themes/original/src/components/NetworkError/index.tsx +5 -3
- package/themes/original/src/components/NotFoundSource/index.tsx +2 -1
- package/themes/original/src/components/Notifications/index.tsx +148 -0
- package/themes/original/src/components/Notifications/styles.tsx +17 -0
- package/themes/original/src/components/OrderDetails/OrderHistory.tsx +167 -0
- package/themes/original/src/components/OrderDetails/index.tsx +190 -35
- package/themes/original/src/components/OrderDetails/styles.tsx +15 -2
- package/themes/original/src/components/OrderItAgain/index.tsx +75 -0
- package/themes/original/src/components/OrderItAgain/styles.tsx +10 -0
- package/themes/original/src/components/OrderProgress/index.tsx +8 -2
- package/themes/original/src/components/OrderSummary/index.tsx +1 -34
- package/themes/original/src/components/OrderTypeSelector/index.tsx +85 -36
- package/themes/original/src/components/OrderTypeSelector/styles.tsx +19 -1
- package/themes/original/src/components/OrdersOption/PreviousBusinessOrdered/index.tsx +100 -106
- package/themes/original/src/components/OrdersOption/PreviousProductsOrdered/index.tsx +17 -12
- package/themes/original/src/components/OrdersOption/index.tsx +71 -55
- package/themes/original/src/components/PaymentOptionWallet/index.tsx +56 -56
- package/themes/original/src/components/PaymentOptions/index.tsx +42 -24
- package/themes/original/src/components/PhoneInputNumber/index.tsx +4 -10
- package/themes/original/src/components/PlaceSpot/index.tsx +243 -47
- package/themes/original/src/components/PlaceSpot/styles.tsx +0 -2
- package/themes/original/src/components/PreviousOrders/index.tsx +3 -2
- package/themes/original/src/components/ProductForm/index.tsx +710 -653
- package/themes/original/src/components/ProductForm/styles.tsx +9 -7
- package/themes/original/src/components/ProductItemAccordion/index.tsx +199 -128
- package/themes/original/src/components/ProductOption/index.tsx +1 -1
- package/themes/original/src/components/ProfessionalFilter/index.tsx +129 -0
- package/themes/original/src/components/ProfessionalFilter/styles.tsx +0 -0
- package/themes/original/src/components/ProfessionalProfile/index.tsx +309 -0
- package/themes/original/src/components/ProfessionalProfile/styles.tsx +46 -0
- package/themes/original/src/components/ReviewDriver/index.tsx +6 -6
- package/themes/original/src/components/ReviewOrder/index.tsx +18 -3
- package/themes/original/src/components/ReviewProducts/index.tsx +1 -1
- package/themes/original/src/components/ReviewTrigger/index.tsx +118 -0
- package/themes/original/src/components/ReviewTrigger/styles.tsx +34 -0
- package/themes/original/src/components/SearchBar/index.tsx +5 -3
- package/themes/original/src/components/ServiceForm/index.tsx +631 -0
- package/themes/original/src/components/ServiceForm/styles.tsx +50 -0
- package/themes/original/src/components/SignupForm/index.tsx +350 -206
- package/themes/original/src/components/SingleOrderCard/index.tsx +214 -179
- package/themes/original/src/components/SingleProductCard/index.tsx +198 -104
- package/themes/original/src/components/SingleProductCard/styles.tsx +2 -2
- package/themes/original/src/components/SingleProductReview/index.tsx +38 -5
- package/themes/original/src/components/SingleProductReview/styles.tsx +12 -0
- package/themes/original/src/components/StripeElementsForm/index.tsx +15 -7
- package/themes/original/src/components/UpsellingProducts/index.tsx +15 -5
- package/themes/original/src/components/UserDetails/index.tsx +31 -17
- package/themes/original/src/components/UserFormDetails/index.tsx +74 -81
- package/themes/original/src/components/UserProfile/index.tsx +54 -29
- package/themes/original/src/components/UserProfile/styles.ts +17 -0
- package/themes/original/src/components/UserProfileForm/index.tsx +15 -10
- package/themes/original/src/components/WalletTransactions/index.tsx +76 -0
- package/themes/original/src/components/WalletTransactions/styles.tsx +13 -0
- package/themes/original/src/components/Wallets/index.tsx +174 -162
- package/themes/original/src/components/Wallets/styles.tsx +10 -8
- package/themes/original/src/components/shared/OBottomPopup.tsx +47 -14
- package/themes/original/src/components/shared/OButton.tsx +10 -3
- package/themes/original/src/components/shared/OIcon.tsx +8 -1
- package/themes/original/src/components/shared/OInput.tsx +3 -2
- package/themes/original/src/layouts/FloatingBottomContainer.tsx +5 -1
- package/themes/original/src/types/index.tsx +122 -30
- package/themes/original/src/utils/index.tsx +77 -0
- package/themes/uber-eats/src/components/BusinessesListing/index.tsx +1 -1
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from 'react-native';
|
|
10
10
|
import { useForm, Controller } from 'react-hook-form';
|
|
11
11
|
import Recaptcha from 'react-native-recaptcha-that-works'
|
|
12
|
+
import ReCaptcha from '@fatnlazycat/react-native-recaptcha-v3'
|
|
12
13
|
import { TouchableOpacity } from 'react-native-gesture-handler';
|
|
13
14
|
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
|
|
14
15
|
import {
|
|
@@ -52,8 +53,8 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
52
53
|
allowedLevels,
|
|
53
54
|
useRootPoint,
|
|
54
55
|
notificationState,
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
handleReCaptcha,
|
|
57
|
+
enableReCaptcha
|
|
57
58
|
} = props;
|
|
58
59
|
|
|
59
60
|
const [ordering, { setOrdering }] = useApi();
|
|
@@ -67,7 +68,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
67
68
|
const inputRef = useRef<any>(null);
|
|
68
69
|
const inputMailRef = useRef<any>(null);
|
|
69
70
|
|
|
70
|
-
const [projectName, setProjectName] = useState({name: '', isFocued: false});
|
|
71
|
+
const [projectName, setProjectName] = useState({ name: '', isFocued: false });
|
|
71
72
|
const [passwordSee, setPasswordSee] = useState(false);
|
|
72
73
|
const [isLoadingVerifyModal, setIsLoadingVerifyModal] = useState(false);
|
|
73
74
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
@@ -92,36 +93,50 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
92
93
|
const [formValues, setFormValues] = useState(null);
|
|
93
94
|
|
|
94
95
|
const [recaptchaConfig, setRecaptchaConfig] = useState<any>({})
|
|
95
|
-
|
|
96
|
+
const [recaptchaVerified, setRecaptchaVerified] = useState(false)
|
|
96
97
|
|
|
97
98
|
const recaptchaRef = useRef<any>({});
|
|
98
99
|
|
|
99
100
|
const handleOpenRecaptcha = () => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
101
|
+
setRecaptchaVerified(false)
|
|
102
|
+
if (!recaptchaConfig?.siteKey) {
|
|
103
|
+
showToast(ToastType.Error, t('NO_RECAPTCHA_SITE_KEY', 'The config doesn\'t have recaptcha site key'));
|
|
104
|
+
return
|
|
105
|
+
}
|
|
106
|
+
if (!recaptchaConfig?.baseUrl) {
|
|
107
|
+
showToast(ToastType.Error, t('NO_RECAPTCHA_BASE_URL', 'The config doesn\'t have recaptcha base url'));
|
|
108
|
+
return
|
|
109
|
+
}
|
|
110
|
+
recaptchaRef.current.open()
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const onRecaptchaVerify = (token: any) => {
|
|
114
|
+
setRecaptchaVerified(true)
|
|
115
|
+
handleReCaptcha({ code: token, version: recaptchaConfig?.version })
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
useEffect(() => {
|
|
119
|
+
if (configs && Object.keys(configs).length > 0 && enableReCaptcha) {
|
|
120
|
+
if (configs?.security_recaptcha_type?.value === 'v3' &&
|
|
121
|
+
configs?.security_recaptcha_score_v3?.value > 0 &&
|
|
122
|
+
configs?.security_recaptcha_site_key_v3?.value
|
|
123
|
+
) {
|
|
124
|
+
setRecaptchaConfig({
|
|
125
|
+
version: 'v3',
|
|
126
|
+
siteKey: configs?.security_recaptcha_site_key_v3?.value || null,
|
|
127
|
+
baseUrl: configs?.security_recaptcha_base_url?.value || null
|
|
128
|
+
})
|
|
129
|
+
return
|
|
130
|
+
}
|
|
131
|
+
if (configs?.security_recaptcha_site_key?.value) {
|
|
132
|
+
setRecaptchaConfig({
|
|
133
|
+
version: 'v2',
|
|
134
|
+
siteKey: configs?.security_recaptcha_site_key?.value || null,
|
|
135
|
+
baseUrl: configs?.security_recaptcha_base_url?.value || null
|
|
136
|
+
})
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}, [configs, enableReCaptcha])
|
|
125
140
|
|
|
126
141
|
useEffect(() => {
|
|
127
142
|
const projectInputInterval = setInterval(() => {
|
|
@@ -164,6 +179,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
164
179
|
'An error occurred while trying to pay by PayPal',
|
|
165
180
|
ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY:
|
|
166
181
|
'Error adding product, very far for delivery',
|
|
182
|
+
ERROR_AUTH_DRIVER_LOGIN_VALIDATION: 'Error auth driver login validation'
|
|
167
183
|
};
|
|
168
184
|
|
|
169
185
|
return keyList[key] ? t(key, keyList[key]) : t(key);
|
|
@@ -245,6 +261,17 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
245
261
|
|
|
246
262
|
useEffect(() => {
|
|
247
263
|
if (!formState?.loading && formState?.result?.error) {
|
|
264
|
+
if (formState.result?.result?.[0] === 'ERROR_AUTH_VERIFICATION_CODE') {
|
|
265
|
+
setRecaptchaVerified(false)
|
|
266
|
+
setSubmitted(false)
|
|
267
|
+
setRecaptchaConfig({
|
|
268
|
+
version: 'v2',
|
|
269
|
+
siteKey: configs?.security_recaptcha_site_key?.value || null,
|
|
270
|
+
baseUrl: configs?.security_recaptcha_base_url?.value || null
|
|
271
|
+
})
|
|
272
|
+
showToast(ToastType.Info, t('TRY_AGAIN', 'Please try again'))
|
|
273
|
+
return
|
|
274
|
+
}
|
|
248
275
|
formState?.result?.result &&
|
|
249
276
|
showToast(
|
|
250
277
|
ToastType.Error,
|
|
@@ -252,17 +279,17 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
252
279
|
? getTraduction(formState.result?.result)
|
|
253
280
|
: loginTab === 'email' &&
|
|
254
281
|
typeof formState.result?.result !== 'string'
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
282
|
+
? getTraduction(formState.result?.result[0])
|
|
283
|
+
: loginTab === 'cellphone' &&
|
|
284
|
+
typeof formState.result?.result === 'string'
|
|
285
|
+
? getTraduction(formState.result?.result).replace(
|
|
286
|
+
t('USER', 'user').toLowerCase(),
|
|
287
|
+
t('PHONE_NUMER', 'Phone number'),
|
|
288
|
+
)
|
|
289
|
+
: getTraduction(formState.result?.result[0]).replace(
|
|
290
|
+
t('USER', 'user').toLowerCase(),
|
|
291
|
+
t('PHONE_NUMER', 'Phone number'),
|
|
292
|
+
),
|
|
266
293
|
);
|
|
267
294
|
setSubmitted(false)
|
|
268
295
|
}
|
|
@@ -516,7 +543,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
516
543
|
icon={theme.images.general.project}
|
|
517
544
|
iconColor={theme.colors.arrowColor}
|
|
518
545
|
onChange={(e: any) => {
|
|
519
|
-
setProjectName({name: e?.target?.value, isFocued: true})
|
|
546
|
+
setProjectName({ name: e?.target?.value, isFocued: true })
|
|
520
547
|
onChange(e?.target?.value);
|
|
521
548
|
setSubmitted(false);
|
|
522
549
|
}}
|
|
@@ -545,7 +572,7 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
545
572
|
icon={theme.images.logos.emailInputIcon}
|
|
546
573
|
iconColor={theme.colors.arrowColor}
|
|
547
574
|
onChange={(e: any) => {
|
|
548
|
-
setProjectName({...projectName, isFocued: false})
|
|
575
|
+
setProjectName({ ...projectName, isFocued: false })
|
|
549
576
|
handleChangeInputEmail(e, onChange);
|
|
550
577
|
}}
|
|
551
578
|
selectionColor={theme.colors.primary}
|
|
@@ -650,40 +677,50 @@ const LoginFormUI = (props: LoginParams) => {
|
|
|
650
677
|
</OText>
|
|
651
678
|
</Pressable>
|
|
652
679
|
)}
|
|
653
|
-
|
|
654
|
-
{enableReCaptcha && (
|
|
680
|
+
{(enableReCaptcha && recaptchaConfig?.version) && (
|
|
655
681
|
<>
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
{
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
682
|
+
{recaptchaConfig?.version === 'v3' ? (
|
|
683
|
+
<ReCaptcha
|
|
684
|
+
url={recaptchaConfig?.baseUrl}
|
|
685
|
+
siteKey={recaptchaConfig?.siteKey}
|
|
686
|
+
containerStyle={{ height: 40 }}
|
|
687
|
+
onExecute={onRecaptchaVerify}
|
|
688
|
+
reCaptchaType={1}
|
|
689
|
+
/>
|
|
690
|
+
) : (
|
|
691
|
+
<>
|
|
692
|
+
<TouchableOpacity
|
|
693
|
+
style={{ marginBottom: 15 }}
|
|
694
|
+
onPress={handleOpenRecaptcha}
|
|
695
|
+
>
|
|
696
|
+
<RecaptchaButton>
|
|
697
|
+
{recaptchaVerified ? (
|
|
698
|
+
<MaterialCommunityIcons
|
|
699
|
+
name="checkbox-marked"
|
|
700
|
+
size={26}
|
|
701
|
+
color={theme.colors.primary}
|
|
702
|
+
/>
|
|
703
|
+
) : (
|
|
704
|
+
<MaterialCommunityIcons
|
|
705
|
+
name="checkbox-blank-outline"
|
|
706
|
+
size={26}
|
|
707
|
+
color={theme.colors.mediumGray}
|
|
708
|
+
/>
|
|
709
|
+
)}
|
|
710
|
+
<OText size={14} mLeft={8}>{t('VERIFY_ReCAPTCHA', 'Verify reCAPTCHA')}</OText>
|
|
711
|
+
</RecaptchaButton>
|
|
712
|
+
</TouchableOpacity>
|
|
713
|
+
<Recaptcha
|
|
714
|
+
ref={recaptchaRef}
|
|
715
|
+
siteKey={recaptchaConfig?.siteKey}
|
|
716
|
+
baseUrl={recaptchaConfig?.baseUrl}
|
|
717
|
+
onVerify={onRecaptchaVerify}
|
|
718
|
+
onExpire={() => setRecaptchaVerified(false)}
|
|
719
|
+
/>
|
|
720
|
+
</>)
|
|
721
|
+
}
|
|
684
722
|
</>
|
|
685
|
-
|
|
686
|
-
|
|
723
|
+
)}
|
|
687
724
|
<OButton
|
|
688
725
|
onClick={handleLogin}
|
|
689
726
|
text={t('LOGIN', 'Login')}
|
|
@@ -21,6 +21,7 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
21
21
|
customerMarkerGroups,
|
|
22
22
|
alertState,
|
|
23
23
|
setAlertState,
|
|
24
|
+
setDriverLocation,
|
|
24
25
|
onNavigationRedirect,
|
|
25
26
|
getBusinessLocations,
|
|
26
27
|
} = props;
|
|
@@ -191,7 +192,7 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
191
192
|
{((customer && marker?.business?.zipcode) || (!customer && marker?.business?.zipcode)) && (
|
|
192
193
|
<OText>{customer ? marker?.customer?.zipcode : marker?.business?.zipcode}</OText>
|
|
193
194
|
)}
|
|
194
|
-
{customer && marker?.customer?.internal_number && (
|
|
195
|
+
{customer && !!marker?.customer?.internal_number && (
|
|
195
196
|
<OText>{marker?.customer?.internal_number}</OText>
|
|
196
197
|
)}
|
|
197
198
|
<OText textDecorationLine='underline' color={theme.colors.primary}>
|
|
@@ -211,6 +212,16 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
211
212
|
)
|
|
212
213
|
}
|
|
213
214
|
|
|
215
|
+
useEffect(() => {
|
|
216
|
+
if (userLocation.latitude !== 0 && userLocation.longitude !== 0) {
|
|
217
|
+
const location = {
|
|
218
|
+
lat: userLocation.latitude,
|
|
219
|
+
lng: userLocation.longitude
|
|
220
|
+
}
|
|
221
|
+
setDriverLocation({ location })
|
|
222
|
+
}
|
|
223
|
+
}, [userLocation])
|
|
224
|
+
|
|
214
225
|
return (
|
|
215
226
|
<SafeAreaView style={{ flex: 1 }}>
|
|
216
227
|
<View style={{ flex: 1 }}>
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
StyleSheet,
|
|
6
6
|
Dimensions,
|
|
7
7
|
ScrollView,
|
|
8
|
+
RefreshControl,
|
|
8
9
|
} from 'react-native';
|
|
9
10
|
import { Contacts, useLanguage } from 'ordering-components/native';
|
|
10
11
|
import { useTheme } from 'styled-components/native';
|
|
@@ -24,6 +25,7 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
|
|
|
24
25
|
messages,
|
|
25
26
|
onNavigationRedirect,
|
|
26
27
|
setSortBy,
|
|
28
|
+
getOrders
|
|
27
29
|
} = props;
|
|
28
30
|
|
|
29
31
|
const theme = useTheme();
|
|
@@ -55,6 +57,7 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
|
|
|
55
57
|
const [tabsFilter, setTabsFilter] = useState(tabs[0].tags);
|
|
56
58
|
const [activeTag, setActiveTag] = useState(tags[0].key);
|
|
57
59
|
const [reload, setReload] = useState(false);
|
|
60
|
+
const [refreshing] = useState(false);
|
|
58
61
|
const [unreadMessages, setUnreadMessages] = useState(
|
|
59
62
|
values?.reduce(
|
|
60
63
|
(total: number, order: any) => total + order.unread_count,
|
|
@@ -247,7 +250,14 @@ const MessagesOptionUI = (props: MessagesOptionParams) => {
|
|
|
247
250
|
/>
|
|
248
251
|
)}
|
|
249
252
|
|
|
250
|
-
<ScrollView
|
|
253
|
+
<ScrollView
|
|
254
|
+
showsVerticalScrollIndicator={false}
|
|
255
|
+
style={{ flex: 1 }}
|
|
256
|
+
refreshControl={<RefreshControl
|
|
257
|
+
refreshing={refreshing}
|
|
258
|
+
onRefresh={() => getOrders?.()}
|
|
259
|
+
/>}
|
|
260
|
+
>
|
|
251
261
|
{!reload &&
|
|
252
262
|
!error &&
|
|
253
263
|
values.length > 0 &&
|
|
@@ -439,7 +439,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
439
439
|
<>
|
|
440
440
|
<OrderContentComponent order={order} />
|
|
441
441
|
{(order?.status === 7 || order?.status === 4) &&
|
|
442
|
-
order?.delivery_type === 1 && (
|
|
442
|
+
order?.delivery_type === 1 && configs?.assign_driver_enabled?.value === '1' && (
|
|
443
443
|
<AssignDriver>
|
|
444
444
|
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
445
445
|
{t('ASSIGN_DRIVER', 'Assign driver')}
|
|
@@ -337,9 +337,14 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
337
337
|
</OText>
|
|
338
338
|
)}
|
|
339
339
|
{!!order?.comment && (
|
|
340
|
-
|
|
341
|
-
{
|
|
342
|
-
|
|
340
|
+
<>
|
|
341
|
+
<OText weight='500' style={{ marginBottom: 5 }}>
|
|
342
|
+
{t('ORDER_COMMENT', 'Order Comment')}
|
|
343
|
+
</OText>
|
|
344
|
+
<OText style={{ fontStyle: 'italic', opacity: 0.6, marginBottom: 20 }}>
|
|
345
|
+
{order?.comment}
|
|
346
|
+
</OText>
|
|
347
|
+
</>
|
|
343
348
|
)}
|
|
344
349
|
</View>
|
|
345
350
|
)}
|
|
@@ -364,6 +369,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
364
369
|
<ProductItemAccordion
|
|
365
370
|
key={product?.id || i}
|
|
366
371
|
product={product}
|
|
372
|
+
currency={order?.currency}
|
|
367
373
|
/>
|
|
368
374
|
))}
|
|
369
375
|
</OrderProducts>
|
|
@@ -372,7 +378,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
372
378
|
<Table>
|
|
373
379
|
<OText mBottom={4}>{t('SUBTOTAL', 'Subtotal')}</OText>
|
|
374
380
|
<OText mBottom={4}>
|
|
375
|
-
{parsePrice(((order?.summary?.subtotal ?? order?.subtotal) + getIncludedTaxes()))}
|
|
381
|
+
{parsePrice(((order?.summary?.subtotal ?? order?.subtotal) + getIncludedTaxes()), { currency: order?.currency})}
|
|
376
382
|
</OText>
|
|
377
383
|
</Table>
|
|
378
384
|
{(order?.summary?.discount > 0 ?? order?.discount > 0) && order?.offers?.length === 0 && (
|
|
@@ -385,7 +391,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
385
391
|
) : (
|
|
386
392
|
<OText mBottom={4}>{t('DISCOUNT', theme?.defaultLanguages?.DISCOUNT || 'Discount')}</OText>
|
|
387
393
|
)}
|
|
388
|
-
<OText>- {parsePrice(order?.summary?.discount ?? order?.discount)}</OText>
|
|
394
|
+
<OText>- {parsePrice(order?.summary?.discount ?? order?.discount, { currency: order?.currency})}</OText>
|
|
389
395
|
</Table>
|
|
390
396
|
)}
|
|
391
397
|
{
|
|
@@ -399,7 +405,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
399
405
|
)}
|
|
400
406
|
</OText>
|
|
401
407
|
</OSRow>
|
|
402
|
-
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
408
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
|
|
403
409
|
</Table>
|
|
404
410
|
))
|
|
405
411
|
}
|
|
@@ -407,9 +413,9 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
407
413
|
<Table>
|
|
408
414
|
<OText mBottom={4}>{t('SUBTOTAL_WITH_DISCOUNT', 'Subtotal with discount')}</OText>
|
|
409
415
|
{order?.tax_type === 1 ? (
|
|
410
|
-
<OText mBottom={4}>{parsePrice((order?.summary?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0))}</OText>
|
|
416
|
+
<OText mBottom={4}>{parsePrice((order?.summary?.subtotal_with_discount + getIncludedTaxesDiscounts() ?? 0), { currency: order?.currency})}</OText>
|
|
411
417
|
) : (
|
|
412
|
-
<OText mBottom={4}>{parsePrice(order?.summary?.subtotal_with_discount ?? 0)}</OText>
|
|
418
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.subtotal_with_discount ?? 0, { currency: order?.currency})}</OText>
|
|
413
419
|
)}
|
|
414
420
|
</Table>
|
|
415
421
|
)}
|
|
@@ -419,7 +425,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
419
425
|
{t('TAX', 'Tax')} {`(${verifyDecimals(order?.tax, parseNumber)}%)`}
|
|
420
426
|
</OText>
|
|
421
427
|
<OText mBottom={4}>
|
|
422
|
-
{parsePrice(order?.summary?.tax ?? 0)}
|
|
428
|
+
{parsePrice(order?.summary?.tax ?? 0, { currency: order?.currency})}
|
|
423
429
|
</OText>
|
|
424
430
|
</Table>
|
|
425
431
|
)}
|
|
@@ -430,7 +436,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
430
436
|
{t('SERVICE_FEE', 'Service fee')}
|
|
431
437
|
{`(${verifyDecimals(order?.service_fee, parseNumber)}%)`}
|
|
432
438
|
</OText>
|
|
433
|
-
<OText mBottom={4}>{parsePrice(order?.summary?.service_fee ?? 0)}</OText>
|
|
439
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.service_fee ?? 0, { currency: order?.currency})}</OText>
|
|
434
440
|
</Table>
|
|
435
441
|
)
|
|
436
442
|
}
|
|
@@ -443,7 +449,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
443
449
|
{`(${verifyDecimals(tax?.rate, parseNumber)}%)`}{' '}
|
|
444
450
|
</OText>
|
|
445
451
|
</OSRow>
|
|
446
|
-
<OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
|
|
452
|
+
<OText mBottom={4}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0, { currency: order?.currency})}</OText>
|
|
447
453
|
</Table>
|
|
448
454
|
))
|
|
449
455
|
}
|
|
@@ -453,10 +459,10 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
453
459
|
<OSRow>
|
|
454
460
|
<OText mBottom={4}>
|
|
455
461
|
{fee.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
456
|
-
({fee?.fixed > 0 && `${parsePrice(fee?.fixed)} + `}{fee.percentage}%){' '}
|
|
462
|
+
({fee?.fixed > 0 && `${parsePrice(fee?.fixed, { currency: order?.currency})} + `}{fee.percentage}%){' '}
|
|
457
463
|
</OText>
|
|
458
464
|
</OSRow>
|
|
459
|
-
<OText mBottom={4}>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0)}</OText>
|
|
465
|
+
<OText mBottom={4}>{parsePrice(fee?.summary?.fixed + (fee?.summary?.percentage_after_discount ?? fee?.summary?.percentage) ?? 0, { currency: order?.currency})}</OText>
|
|
460
466
|
</Table>
|
|
461
467
|
))
|
|
462
468
|
}
|
|
@@ -471,7 +477,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
471
477
|
)}
|
|
472
478
|
</OText>
|
|
473
479
|
</OSRow>
|
|
474
|
-
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
480
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
|
|
475
481
|
</Table>
|
|
476
482
|
))
|
|
477
483
|
}
|
|
@@ -483,7 +489,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
483
489
|
</OText>
|
|
484
490
|
|
|
485
491
|
<OText mBottom={4}>
|
|
486
|
-
{parsePrice(order?.summary?.delivery_price)}
|
|
492
|
+
{parsePrice(order?.summary?.delivery_price, { currency: order?.currency})}
|
|
487
493
|
</OText>
|
|
488
494
|
</Table>
|
|
489
495
|
)
|
|
@@ -499,7 +505,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
499
505
|
)}
|
|
500
506
|
</OText>
|
|
501
507
|
</OSRow>
|
|
502
|
-
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount)}</OText>
|
|
508
|
+
<OText mBottom={4}>- {parsePrice(offer?.summary?.discount, { currency: order?.currency})}</OText>
|
|
503
509
|
</Table>
|
|
504
510
|
))
|
|
505
511
|
}
|
|
@@ -514,7 +520,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
514
520
|
`(${verifyDecimals(order?.summary?.driver_tip, parseNumber)}%)`
|
|
515
521
|
)}
|
|
516
522
|
</OText>
|
|
517
|
-
<OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip)}</OText>
|
|
523
|
+
<OText mBottom={4}>{parsePrice(order?.summary?.driver_tip ?? order?.totalDriverTip, { currency: order?.currency})}</OText>
|
|
518
524
|
</Table>
|
|
519
525
|
)}
|
|
520
526
|
|
|
@@ -528,7 +534,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
528
534
|
mBottom={4}
|
|
529
535
|
style={styles.textBold}
|
|
530
536
|
color={theme.colors.primary}>
|
|
531
|
-
{parsePrice(order?.summary?.total ?? order?.total)}
|
|
537
|
+
{parsePrice(order?.summary?.total ?? order?.total, { currency: order?.currency})}
|
|
532
538
|
</OText>
|
|
533
539
|
</Table>
|
|
534
540
|
</Total>
|
|
@@ -571,7 +577,7 @@ export const OrderContentComponent = (props: OrderContent) => {
|
|
|
571
577
|
)}
|
|
572
578
|
</View>
|
|
573
579
|
<OText>
|
|
574
|
-
-{parsePrice(event.amount)}
|
|
580
|
+
-{parsePrice(event.amount, { currency: order?.currency})}
|
|
575
581
|
</OText>
|
|
576
582
|
</View>
|
|
577
583
|
))}
|
|
@@ -6,7 +6,7 @@ import FontistoIcon from 'react-native-vector-icons/Fontisto'
|
|
|
6
6
|
import FeatherIcon from 'react-native-vector-icons/Feather';
|
|
7
7
|
import SelectDropdown from 'react-native-select-dropdown'
|
|
8
8
|
import { useTheme } from 'styled-components/native';
|
|
9
|
-
|
|
9
|
+
import { NotificationSetting } from '../../../../../src/components/NotificationSetting'
|
|
10
10
|
import {
|
|
11
11
|
FiltersTab,
|
|
12
12
|
TabsContainer,
|
|
@@ -611,7 +611,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
611
611
|
</LeftSide>
|
|
612
612
|
|
|
613
613
|
<RightSide style={{ paddingBottom: 110, paddingHorizontal: 20 }}>
|
|
614
|
-
{currentOrderSelected &&
|
|
614
|
+
{currentOrderSelected && (
|
|
615
615
|
<OrderDetailsBusiness {...props.orderDetailsProps} order={currentOrderSelected} isCustomView />
|
|
616
616
|
)}
|
|
617
617
|
</RightSide>
|
|
@@ -756,6 +756,7 @@ const OrdersListManagerUI = (props: OrdersOptionParams) => {
|
|
|
756
756
|
|
|
757
757
|
export const OrdersListManager = (props: OrdersOptionParams) => {
|
|
758
758
|
const [, t] = useLanguage();
|
|
759
|
+
const [checkNotificationStatus, setCheckNotificationStatus] = useState({ open: false, checked: false })
|
|
759
760
|
const ordersProps = {
|
|
760
761
|
...props,
|
|
761
762
|
UIComponent: OrdersListManagerUI,
|
|
@@ -870,5 +871,11 @@ export const OrdersListManager = (props: OrdersOptionParams) => {
|
|
|
870
871
|
]
|
|
871
872
|
};
|
|
872
873
|
|
|
873
|
-
return
|
|
874
|
+
return (<>
|
|
875
|
+
<OrderListGroups {...ordersProps} />
|
|
876
|
+
{props?.checkNotification && (
|
|
877
|
+
<NotificationSetting checkNotificationStatus={checkNotificationStatus}
|
|
878
|
+
setCheckNotificationStatus={setCheckNotificationStatus} />
|
|
879
|
+
)}
|
|
880
|
+
</>);
|
|
874
881
|
};
|