ordering-ui-react-native 0.21.98 → 0.21.99-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 +4 -2
- package/src/components/VerifyPhone/styles.tsx +1 -2
- package/src/context/OfflineActions/index.tsx +236 -0
- package/src/types/index.tsx +2 -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 +100 -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 +12 -5
- 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 +10 -8
- 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 -62
- 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 +14 -4
- 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
|
@@ -41,7 +41,8 @@ const OrderProgressUI = (props: any) => {
|
|
|
41
41
|
const [lastOrder, setLastOrder] = useState<any>(null)
|
|
42
42
|
const imageFails = theme.images.general.emptyActiveOrders
|
|
43
43
|
const [initialLoaded, setInitialLoaded] = useState(false)
|
|
44
|
-
const statusToShow = [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23]
|
|
44
|
+
const statusToShow = [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26]
|
|
45
|
+
const deliveryTypes = [1, 7]
|
|
45
46
|
|
|
46
47
|
const styles = StyleSheet.create({
|
|
47
48
|
main: {
|
|
@@ -133,7 +134,7 @@ const OrderProgressUI = (props: any) => {
|
|
|
133
134
|
<View style={styles.logoWrapper}>
|
|
134
135
|
<FastImage
|
|
135
136
|
style={{ width: 50, height: 50 }}
|
|
136
|
-
source={orderList?.orders.length === 1 && lastOrder?.business?.logo
|
|
137
|
+
source={orderList?.orders.length === 1 && lastOrder?.business?.logo?.includes?.('http') ? {
|
|
137
138
|
uri: optimizeImage(lastOrder?.business?.logo, 'h_50,c_limit'),
|
|
138
139
|
priority: FastImage.priority.normal,
|
|
139
140
|
} : theme.images.logos.logotype}
|
|
@@ -172,7 +173,7 @@ const OrderProgressUI = (props: any) => {
|
|
|
172
173
|
<ProgressTextWrapper>
|
|
173
174
|
<OText size={12} style={{ width: '50%' }}>{progressBarObjt(lastOrder.status)?.value}</OText>
|
|
174
175
|
<TimeWrapper>
|
|
175
|
-
<OText size={11}>{lastOrder?.delivery_type
|
|
176
|
+
<OText size={11}>{deliveryTypes?.includes?.(lastOrder?.delivery_type) ? t('ESTIMATED_DELIVERY', 'Estimated delivery') : t('ESTIMATED_TIME', 'Estimated time')}</OText>
|
|
176
177
|
<OText size={11}>
|
|
177
178
|
{lastOrder?.delivery_datetime_utc
|
|
178
179
|
? parseTime(lastOrder?.delivery_datetime_utc, { outputFormat: configs?.general_hour_format?.value || 'HH:mm' })
|
|
@@ -205,7 +206,7 @@ export const OrderProgress = (props: any) => {
|
|
|
205
206
|
const orderProgressProps = {
|
|
206
207
|
...props,
|
|
207
208
|
UIComponent: OrderProgressUI,
|
|
208
|
-
orderStatus: [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23],
|
|
209
|
+
orderStatus: [0, 3, 4, 7, 8, 9, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26],
|
|
209
210
|
useDefualtSessionManager: true,
|
|
210
211
|
paginationSettings: {
|
|
211
212
|
initialPage: 1,
|
|
@@ -220,7 +221,13 @@ export const OrderProgress = (props: any) => {
|
|
|
220
221
|
'delivery_type',
|
|
221
222
|
'delivery_datetime_utc',
|
|
222
223
|
'delivery_datetime',
|
|
223
|
-
'reporting_data'
|
|
224
|
+
'reporting_data',
|
|
225
|
+
'eta_current_status_time',
|
|
226
|
+
'eta_previous_status_times',
|
|
227
|
+
'eta_time',
|
|
228
|
+
'delivered_in',
|
|
229
|
+
'prepared_in',
|
|
230
|
+
'eta_drive_time'
|
|
224
231
|
],
|
|
225
232
|
noGiftCardOrders: true
|
|
226
233
|
}
|
|
@@ -47,7 +47,9 @@ const OrderSummaryUI = (props: any) => {
|
|
|
47
47
|
cateringTypes,
|
|
48
48
|
hideDeliveryFee,
|
|
49
49
|
loyaltyRewardRate,
|
|
50
|
-
maxDate
|
|
50
|
+
maxDate,
|
|
51
|
+
hideCommentsByValidationCheckout,
|
|
52
|
+
hideCouponByValidationCheckout
|
|
51
53
|
} = props;
|
|
52
54
|
|
|
53
55
|
const theme = useTheme()
|
|
@@ -55,11 +57,10 @@ const OrderSummaryUI = (props: any) => {
|
|
|
55
57
|
const [{ configs }] = useConfig();
|
|
56
58
|
const [orderState] = useOrder();
|
|
57
59
|
const [{ parsePrice, parseNumber }] = useUtils();
|
|
58
|
-
const [validationFields] = useValidationFields();
|
|
59
60
|
const commentRef = useRef()
|
|
60
61
|
const [openTaxModal, setOpenTaxModal] = useState<any>({ open: false, data: null, type: '' })
|
|
61
|
-
const
|
|
62
|
-
const hideCartComments =
|
|
62
|
+
const hideCartDiscount = hideCouponByValidationCheckout
|
|
63
|
+
const hideCartComments = hideCommentsByValidationCheckout
|
|
63
64
|
|
|
64
65
|
const cart = orderState?.carts?.[`businessId:${props.cart.business_id}`]
|
|
65
66
|
|
|
@@ -72,12 +73,14 @@ const OrderSummaryUI = (props: any) => {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
const getIncludedTaxes = () => {
|
|
76
|
+
const getIncludedTaxes = (isDeliveryFee?: boolean) => {
|
|
76
77
|
if (cart?.taxes === null || !cart?.taxes) {
|
|
77
78
|
return cart?.business?.tax_type === 1 ? cart?.tax : 0
|
|
78
79
|
} else {
|
|
79
80
|
return cart?.taxes.reduce((taxIncluded: number, tax: any) => {
|
|
80
|
-
return taxIncluded +
|
|
81
|
+
return taxIncluded +
|
|
82
|
+
(((!isDeliveryFee && tax.type === 1 && tax.target === 'product') ||
|
|
83
|
+
(isDeliveryFee && tax.type === 1 && tax.target === 'delivery_fee')) ? tax.summary?.tax : 0)
|
|
81
84
|
}, 0)
|
|
82
85
|
}
|
|
83
86
|
}
|
|
@@ -102,7 +105,7 @@ const OrderSummaryUI = (props: any) => {
|
|
|
102
105
|
}
|
|
103
106
|
|
|
104
107
|
const getIncludedTaxesDiscounts = () => {
|
|
105
|
-
return cart?.taxes?.filter((tax: any) => tax?.type === 1)?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
108
|
+
return cart?.taxes?.filter((tax: any) => (tax?.type === 1 && tax?.target === 'product'))?.reduce((carry: number, tax: any) => carry + (tax?.summary?.tax_after_discount ?? tax?.summary?.tax), 0)
|
|
106
109
|
}
|
|
107
110
|
|
|
108
111
|
const OfferAlert = ({ offerId }: any) => {
|
|
@@ -194,7 +197,7 @@ const OrderSummaryUI = (props: any) => {
|
|
|
194
197
|
</OSTable>
|
|
195
198
|
)}
|
|
196
199
|
{
|
|
197
|
-
cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0).map((tax: any) => (
|
|
200
|
+
cart.taxes?.length > 0 && cart.taxes.filter((tax: any) => tax.type === 2 && tax?.rate !== 0 && tax?.target === 'product').map((tax: any, i: number) => (
|
|
198
201
|
<OSTable key={tax.id}>
|
|
199
202
|
<OSRow>
|
|
200
203
|
<OText size={12} numberOfLines={1} >
|
|
@@ -249,9 +252,25 @@ const OrderSummaryUI = (props: any) => {
|
|
|
249
252
|
{orderState?.options?.type === 1 && !hideDeliveryFee && (
|
|
250
253
|
<OSTable>
|
|
251
254
|
<OText size={12}>{t('DELIVERY_FEE', 'Delivery Fee')}</OText>
|
|
252
|
-
<OText size={12}>{parsePrice(cart?.delivery_price_with_discount)}</OText>
|
|
255
|
+
<OText size={12}>{parsePrice(cart?.delivery_price_with_discount + getIncludedTaxes(true))}</OText>
|
|
253
256
|
</OSTable>
|
|
254
257
|
)}
|
|
258
|
+
{
|
|
259
|
+
cart?.taxes?.length > 0 && cart?.taxes?.filter((tax: any) => tax?.type === 2 && tax?.rate !== 0 && tax?.target === 'delivery_fee').map((tax: any, i: number) => (
|
|
260
|
+
<OSTable key={`${tax.description}_${i}`}>
|
|
261
|
+
<OSRow>
|
|
262
|
+
<OText size={12} numberOfLines={1}>
|
|
263
|
+
{tax.name || t('INHERIT_FROM_BUSINESS', 'Inherit from business')}
|
|
264
|
+
{`(${verifyDecimals(tax?.rate, parseNumber)}%)`}
|
|
265
|
+
</OText>
|
|
266
|
+
<TouchableOpacity onPress={() => setOpenTaxModal({ open: true, data: tax, type: 'tax' })}>
|
|
267
|
+
<AntIcon name='infocirlceo' size={16} color={theme.colors.primary} />
|
|
268
|
+
</TouchableOpacity>
|
|
269
|
+
</OSRow>
|
|
270
|
+
<OText size={12}>{parsePrice(tax?.summary?.tax_after_discount ?? tax?.summary?.tax ?? 0)}</OText>
|
|
271
|
+
</OSTable>
|
|
272
|
+
))
|
|
273
|
+
}
|
|
255
274
|
{
|
|
256
275
|
cart?.offers?.length > 0 && cart?.offers?.filter((offer: any) => offer?.target === 2)?.map((offer: any) => (
|
|
257
276
|
<OSTable key={offer.id}>
|
|
@@ -295,7 +314,7 @@ const OrderSummaryUI = (props: any) => {
|
|
|
295
314
|
<OText size={12}>-{parsePrice(event.amount, { isTruncable: true })}</OText>
|
|
296
315
|
</OSTable>
|
|
297
316
|
))}
|
|
298
|
-
{
|
|
317
|
+
{!hideCartDiscount && !isCartPending && cart?.business_id && (
|
|
299
318
|
<View>
|
|
300
319
|
<View style={{ paddingVertical: 5 }}>
|
|
301
320
|
<CouponControl
|
|
@@ -31,14 +31,14 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
31
31
|
const [orderState] = useOrder();
|
|
32
32
|
const [, t] = useLanguage();
|
|
33
33
|
const _orderTypes = orderTypes.filter((type: any) => configTypes?.includes(type.value));
|
|
34
|
-
const orderTypeTitle = (type
|
|
35
|
-
const orderTypeDescription = (type
|
|
36
|
-
const orderTypeCallAction = (type
|
|
34
|
+
const orderTypeTitle = (type: string) => theme?.header?.components?.order_types?.components?.[type]?.components?.title
|
|
35
|
+
const orderTypeDescription = (type: string) => theme?.header?.components?.order_types?.components?.[type]?.components?.description
|
|
36
|
+
const orderTypeCallAction = (type: string) => theme?.header?.components?.order_types?.components?.[type]?.components?.call_to_action
|
|
37
37
|
const items = _orderTypes.map((type) => {
|
|
38
38
|
return {
|
|
39
39
|
value: type.value,
|
|
40
|
-
label:
|
|
41
|
-
description:
|
|
40
|
+
label: t(type.content, type.content),
|
|
41
|
+
description: t(type.description, 'Lorem ipsum dolor sit amet, consectetur.')
|
|
42
42
|
}
|
|
43
43
|
})
|
|
44
44
|
|
|
@@ -102,6 +102,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
102
102
|
style={{ paddingBottom: 0 }}
|
|
103
103
|
title={t('HOW_WILL_YOU_DELIVERY_TYPE', 'How will your order type?')}
|
|
104
104
|
titleAlign={'center'}
|
|
105
|
+
titleStyle={{ fontSize: 14 }}
|
|
105
106
|
noMargin
|
|
106
107
|
/>
|
|
107
108
|
{
|
|
@@ -115,7 +116,7 @@ const OrderTypeSelectorUI = (props: OrderTypeSelectParams) => {
|
|
|
115
116
|
<OText size={12} lineHeight={18} color={theme.colors.white} weight={Platform.OS === 'android' ? 'bold' : '600'}>{item?.label}</OText>
|
|
116
117
|
<OText size={10} lineHeight={15} color={theme.colors.white}>{item?.description}</OText>
|
|
117
118
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
|
118
|
-
<OText size={10} lineHeight={15} color={theme.colors.white}>{
|
|
119
|
+
<OText size={10} lineHeight={15} color={theme.colors.white}>{t('START_MY_ORDER', 'Start my order')}</OText>
|
|
119
120
|
<AntDesignIcon name='arrowleft' size={26} color={theme.colors.white} style={{ transform: [{ rotate: '180deg' }], marginStart: 4 }} />
|
|
120
121
|
</View>
|
|
121
122
|
</MaskCont>
|
|
@@ -159,10 +159,7 @@ const OrdersOptionUI = (props: OrdersOptionParams) => {
|
|
|
159
159
|
|
|
160
160
|
useEffect(() => {
|
|
161
161
|
if (reorderState?.error) {
|
|
162
|
-
|
|
163
|
-
? reorderState?.result
|
|
164
|
-
: t('CANT_REORDER_FOR_THIS_BUSINESS', 'Can’t reorder for this store, please create order manually.')
|
|
165
|
-
showToast(ToastType.Error, errorMessage)
|
|
162
|
+
showToast(ToastType.Error, reorderState?.result)
|
|
166
163
|
}
|
|
167
164
|
}, [reorderState])
|
|
168
165
|
|
|
@@ -355,9 +352,9 @@ export const OrdersOption = (props: OrdersOptionParams) => {
|
|
|
355
352
|
UIComponent: OrdersOptionUI,
|
|
356
353
|
noGiftCardOrders: true,
|
|
357
354
|
orderStatus: getAllOrders
|
|
358
|
-
? [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
|
|
355
|
+
? [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
|
|
359
356
|
: props.preOrders ? [13] : props.activeOrders
|
|
360
|
-
? [0, 3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23]
|
|
357
|
+
? [0, 3, 4, 7, 8, 9, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26]
|
|
361
358
|
: [1, 2, 5, 6, 10, 11, 12, 15, 16, 17],
|
|
362
359
|
useDefualtSessionManager: true,
|
|
363
360
|
paginationSettings: {
|
|
@@ -131,7 +131,6 @@ const PaymentOptionStripeUI = (props: any) => {
|
|
|
131
131
|
bgColor={theme.colors.backgroundGray}
|
|
132
132
|
borderColor={theme.colors.backgroundGray}
|
|
133
133
|
style={styles.btnAddStyle}
|
|
134
|
-
textStyle={{ color: 'white' }}
|
|
135
134
|
imgRightSrc={null}
|
|
136
135
|
onClick={() => setAddCardOpen(true)}
|
|
137
136
|
/>
|
|
@@ -141,7 +140,6 @@ const PaymentOptionStripeUI = (props: any) => {
|
|
|
141
140
|
text={t('CANCEL', 'Cancel')}
|
|
142
141
|
bgColor={theme.colors.backgroundGray}
|
|
143
142
|
borderColor={theme.colors.backgroundGray}
|
|
144
|
-
textStyle={{ color: 'white' }}
|
|
145
143
|
style={styles.btnAction}
|
|
146
144
|
imgRightSrc={null}
|
|
147
145
|
onClick={() => onCancel()}
|
|
@@ -150,9 +148,6 @@ const PaymentOptionStripeUI = (props: any) => {
|
|
|
150
148
|
<View style={{ width: '48%' }}>
|
|
151
149
|
<OButton
|
|
152
150
|
text={t('ACCEPT', 'Accept')}
|
|
153
|
-
bgColor={theme.colors.primary}
|
|
154
|
-
borderColor={theme.colors.primary}
|
|
155
|
-
textStyle={{ color: 'white' }}
|
|
156
151
|
style={styles.btnAction}
|
|
157
152
|
imgRightSrc={null}
|
|
158
153
|
isDisabled={!cardSelected || cardsList?.cards?.length === 0}
|
|
@@ -45,7 +45,7 @@ const PaymentOptionWalletUI = (props: any) => {
|
|
|
45
45
|
new Array(walletsState.result?.length).fill(false)
|
|
46
46
|
);
|
|
47
47
|
|
|
48
|
-
const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate
|
|
48
|
+
const creditBalance: any = (wallet: any) => ` = ${parsePrice(wallet.balance / wallet.redemption_rate)}`
|
|
49
49
|
|
|
50
50
|
const walletName: any = {
|
|
51
51
|
cash: {
|
|
@@ -87,65 +87,65 @@ const PaymentOptionWalletUI = (props: any) => {
|
|
|
87
87
|
{!walletsState.loading &&
|
|
88
88
|
!walletsState.error &&
|
|
89
89
|
walletsState.result?.length > 0 &&
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
</View>
|
|
90
|
+
(
|
|
91
|
+
<>
|
|
92
|
+
{walletsState.result?.map((wallet: any, idx: any) => wallet.valid && wallet.balance >= 0 && walletName[wallet.type]?.isActive && (
|
|
93
|
+
<Container
|
|
94
|
+
key={wallet.id}
|
|
95
|
+
isBottomBorder={idx === walletsState.result?.filter((wallet: any) => wallet.valid)?.length - 1}
|
|
96
|
+
onPress={() => handleOnChange(idx, wallet)}
|
|
97
|
+
disabled={(cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0}
|
|
98
|
+
>
|
|
99
|
+
<SectionLeft>
|
|
100
|
+
{checkedState[idx] ? (
|
|
101
|
+
<MaterialCommunityIcons
|
|
102
|
+
name="checkbox-marked"
|
|
103
|
+
size={25}
|
|
104
|
+
color={theme.colors.primary}
|
|
105
|
+
/>
|
|
106
|
+
) : (
|
|
107
|
+
<MaterialCommunityIcons
|
|
108
|
+
name="checkbox-blank-outline"
|
|
109
|
+
size={25}
|
|
110
|
+
color={theme.colors.disabled}
|
|
111
|
+
/>
|
|
112
|
+
)}
|
|
113
|
+
<View style={{ alignItems: 'baseline', marginLeft: 5 }}>
|
|
114
|
+
<View>
|
|
115
|
+
<OText
|
|
116
|
+
style={((cart?.balance === 0 && !checkedState[idx]) || wallet.balance === 0) ?{
|
|
117
|
+
color: theme.colors.disabled
|
|
118
|
+
} : {}}
|
|
119
|
+
>
|
|
120
|
+
{walletName[wallet.type]?.name}
|
|
121
|
+
</OText>
|
|
123
122
|
</View>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
123
|
+
</View>
|
|
124
|
+
</SectionLeft>
|
|
125
|
+
|
|
126
|
+
<View style={{maxWidth: '35%', alignItems: 'flex-end' }}>
|
|
127
|
+
{wallet.type === 'cash' && (
|
|
128
|
+
<OText>
|
|
129
|
+
{parsePrice(wallet?.balance)}
|
|
130
|
+
</OText>
|
|
131
|
+
)}
|
|
132
|
+
{wallet.type === 'credit_point' && (
|
|
133
|
+
<OText>
|
|
134
|
+
<OText color={theme.colors.primary} weight='bold'>
|
|
135
|
+
{`${wallet?.balance} ${t('POINTS', 'Points')}`}
|
|
130
136
|
</OText>
|
|
131
|
-
)}
|
|
132
|
-
{wallet.type === 'credit_point' && (
|
|
133
137
|
<OText>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
<OText>
|
|
138
|
-
{wallet?.balance > 0
|
|
139
|
-
? creditBalance(wallet)
|
|
140
|
-
: null}
|
|
141
|
-
</OText>
|
|
138
|
+
{wallet?.balance > 0
|
|
139
|
+
? creditBalance(wallet)
|
|
140
|
+
: null}
|
|
142
141
|
</OText>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
</
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
142
|
+
</OText>
|
|
143
|
+
)}
|
|
144
|
+
</View>
|
|
145
|
+
</Container>
|
|
146
|
+
))}
|
|
147
|
+
</>
|
|
148
|
+
)}
|
|
149
149
|
|
|
150
150
|
{walletsState?.loading && (
|
|
151
151
|
<View>
|
|
@@ -326,7 +326,6 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
326
326
|
<OButton
|
|
327
327
|
text={t('ADD_PAYMENT_CARD', 'Add New Payment Card')}
|
|
328
328
|
bgColor={theme.colors.white}
|
|
329
|
-
borderColor={theme.colors.primary}
|
|
330
329
|
style={styles.btnAddStyle}
|
|
331
330
|
textStyle={{ color: theme.colors.primary, fontSize: 12 }}
|
|
332
331
|
imgRightSrc={null}
|
|
@@ -344,10 +343,11 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
344
343
|
setAddCardOpen={setAddCardOpen}
|
|
345
344
|
addCardOpen={addCardOpen}
|
|
346
345
|
isOpenMethod={isOpenMethod}
|
|
347
|
-
|
|
346
|
+
handleSource={handlePaymethodDataChange}
|
|
348
347
|
clientSecret={props.clientSecret}
|
|
349
348
|
businessId={props.businessId}
|
|
350
349
|
onPaymentChange={onPaymentChange}
|
|
350
|
+
paySelected={props.paySelected}
|
|
351
351
|
/>
|
|
352
352
|
</View>
|
|
353
353
|
)}
|
|
@@ -368,7 +368,7 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
368
368
|
methodPaySupported={methodPaySupported}
|
|
369
369
|
placeByMethodPay={placeByMethodPay}
|
|
370
370
|
setPlaceByMethodPay={setPlaceByMethodPay}
|
|
371
|
-
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable}
|
|
371
|
+
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
372
372
|
/>
|
|
373
373
|
)}
|
|
374
374
|
|
|
@@ -413,7 +413,8 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
413
413
|
merchantId={merchantId}
|
|
414
414
|
urlscheme={urlscheme}
|
|
415
415
|
androidAppId={androidAppId}
|
|
416
|
-
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable}
|
|
416
|
+
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
417
|
+
paySelected={props.paySelected}
|
|
417
418
|
/>
|
|
418
419
|
</KeyboardAvoidingView>
|
|
419
420
|
</OModal>
|
|
@@ -424,7 +425,6 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
424
425
|
<OButton
|
|
425
426
|
text={t('ADD_PAYMENT_CARD', 'Add New Payment Card')}
|
|
426
427
|
bgColor={theme.colors.white}
|
|
427
|
-
borderColor={theme.colors.primary}
|
|
428
428
|
style={styles.btnAddStyle}
|
|
429
429
|
textStyle={{ color: theme.colors.primary, fontSize: 12 }}
|
|
430
430
|
imgRightSrc={null}
|
|
@@ -438,7 +438,8 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
438
438
|
onNavigationRedirect={onNavigationRedirect}
|
|
439
439
|
onCancel={() => handlePaymethodClick(null)}
|
|
440
440
|
publicKey={isOpenMethod?.paymethod?.credentials.publishable}
|
|
441
|
-
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable}
|
|
441
|
+
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
442
|
+
paySelected={props.paySelected}
|
|
442
443
|
/>
|
|
443
444
|
</View>
|
|
444
445
|
)}
|
|
@@ -463,7 +464,7 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
463
464
|
accountId={isOpenMethod?.paymethod?.credentials?.user}
|
|
464
465
|
onSelectCard={handlePaymethodDataChange}
|
|
465
466
|
onCancel={() => setAddCardOpen({ ...addCardOpen, stripeConnect: false })}
|
|
466
|
-
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable}
|
|
467
|
+
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
467
468
|
/>
|
|
468
469
|
</KeyboardAvoidingView>
|
|
469
470
|
</OModal>
|
|
@@ -489,9 +490,10 @@ const PaymentOptionsUI = (props: any) => {
|
|
|
489
490
|
publicKey={props.publicKey || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
490
491
|
setCardsList={setCardList}
|
|
491
492
|
requirements={props.clientSecret}
|
|
493
|
+
handleSource={handlePaymethodDataChange}
|
|
492
494
|
onSelectCard={handlePaymethodDataChange}
|
|
493
495
|
onCancel={() => setAddCardOpen({ ...addCardOpen, stripe: false })}
|
|
494
|
-
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable}
|
|
496
|
+
publicKeyAddCard={isOpenMethod?.paymethod?.credentials?.stripe?.publishable || isOpenMethod?.paymethod?.credentials?.publishable}
|
|
495
497
|
/>
|
|
496
498
|
</KeyboardAvoidingView>
|
|
497
499
|
</OModal>
|
|
@@ -236,9 +236,7 @@ const PlaceSpotUI = (props: PlaceSpotParams) => {
|
|
|
236
236
|
<View style={{ alignItems: 'flex-start' }}>
|
|
237
237
|
<OButton
|
|
238
238
|
onClick={() => onChangeSpot()}
|
|
239
|
-
|
|
240
|
-
borderColor={theme.colors.primary}
|
|
241
|
-
textStyle={{ color: 'white', fontSize: 12 }}
|
|
239
|
+
textStyle={{ fontSize: 12 }}
|
|
242
240
|
imgRightSrc={null}
|
|
243
241
|
text={t('UPDATE_SPOT_NUMBER', 'Update')}
|
|
244
242
|
isDisabled={(!spotNumber && !Object.values(vehicle).every(e => e))}
|
|
@@ -27,7 +27,7 @@ export const PreviousOrders = (props: PreviousOrdersParams) => {
|
|
|
27
27
|
|
|
28
28
|
const [, t] = useLanguage();
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
const pastOrders = [1, 2, 5, 6, 10, 11, 12, 15, 16, 17]
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<View style={{ marginBottom: 30 }}>
|
|
@@ -49,7 +49,6 @@ export const PreviousOrders = (props: PreviousOrdersParams) => {
|
|
|
49
49
|
onClick={loadMoreOrders}
|
|
50
50
|
text={t('LOAD_MORE_ORDERS', 'Load more orders')}
|
|
51
51
|
imgRightSrc={null}
|
|
52
|
-
textStyle={{ color: theme.colors.white }}
|
|
53
52
|
style={{ borderRadius: 7.6, shadowOpacity: 0, marginTop: 20 }}
|
|
54
53
|
/>
|
|
55
54
|
</WrappButton>
|
|
@@ -5,7 +5,7 @@ import { TouchableOpacity, View } from 'react-native'
|
|
|
5
5
|
import { OButton, OText } from '../shared';
|
|
6
6
|
import { Placeholder, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
7
7
|
|
|
8
|
-
export const ActionButton = (props
|
|
8
|
+
export const ActionButton = (props: any) => {
|
|
9
9
|
const {
|
|
10
10
|
navigation,
|
|
11
11
|
isHaveWeight,
|
|
@@ -23,27 +23,29 @@ export const ActionButton = (props : any) => {
|
|
|
23
23
|
handleUpdateGuest,
|
|
24
24
|
actionStatus
|
|
25
25
|
} = props
|
|
26
|
-
const [,t] = useLanguage()
|
|
26
|
+
const [, t] = useLanguage()
|
|
27
27
|
const [{ auth }] = useSession()
|
|
28
28
|
const [orderState] = useOrder()
|
|
29
29
|
const theme = useTheme()
|
|
30
|
-
|
|
30
|
+
const [{ configs }] = useConfig()
|
|
31
31
|
const unaddressedTypes = configs?.unaddressed_order_types_allowed?.value.split('|').map((value: any) => Number(value)) || []
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const isAllowUnaddressOrderType = unaddressedTypes.includes(orderState?.options?.type)
|
|
34
33
|
const saveErrors =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
orderState.loading ||
|
|
35
|
+
maxProductQuantity === 0 ||
|
|
36
|
+
Object.keys(errors)?.length > 0;
|
|
37
|
+
const buttonColor = saveErrors || isSoldOut || maxProductQuantity <= 0 || (product?.minimum_per_order && ((productCart?.quantity + productAddedToCartLength) < product?.minimum_per_order)) || (product?.maximum_per_order && ((productCart?.quantity + productAddedToCartLength) > product?.maximum_per_order))
|
|
38
|
+
|
|
39
|
+
|
|
38
40
|
|
|
39
41
|
return (
|
|
40
42
|
<View
|
|
41
43
|
style={{
|
|
42
44
|
width: isHaveWeight ? '100%' : ((isSoldOut || maxProductQuantity <= 0) ? '60%' : '40%'),
|
|
43
45
|
}}>
|
|
44
|
-
{(
|
|
46
|
+
{(productCart &&
|
|
45
47
|
auth &&
|
|
46
|
-
(orderState.options?.address_id || isAllowUnaddressOrderType)
|
|
48
|
+
((orderState.options?.address_id || isAllowUnaddressOrderType) || (isSoldOut || maxProductQuantity <= 0))) && (
|
|
47
49
|
<OButton
|
|
48
50
|
onClick={() => handleSaveProduct()}
|
|
49
51
|
imgRightSrc=""
|
|
@@ -55,15 +57,11 @@ export const ActionButton = (props : any) => {
|
|
|
55
57
|
? t('UPDATE', 'Update')
|
|
56
58
|
: t('ADD', 'Add')
|
|
57
59
|
}`}
|
|
58
|
-
isDisabled={
|
|
60
|
+
isDisabled={buttonColor}
|
|
59
61
|
textStyle={{
|
|
60
|
-
color: saveErrors || isSoldOut || maxProductQuantity <= 0 ? theme.colors.primary : theme.colors.white,
|
|
61
62
|
fontSize: orderState.loading || editMode ? 10 : 14
|
|
62
63
|
}}
|
|
63
64
|
style={{
|
|
64
|
-
backgroundColor: saveErrors || isSoldOut || maxProductQuantity <= 0 || (product?.minimum_per_order && ((productCart?.quantity + productAddedToCartLength) < product?.minimum_per_order)) || (product?.maximum_per_order && ((productCart?.quantity + productAddedToCartLength) > product?.maximum_per_order)) ? theme.colors.lightGray : theme.colors.primary,
|
|
65
|
-
borderColor: saveErrors || isSoldOut || maxProductQuantity <= 0 || (product?.minimum_per_order && ((productCart?.quantity + productAddedToCartLength) < product?.minimum_per_order)) || (product?.maximum_per_order && ((productCart?.quantity + productAddedToCartLength) > product?.maximum_per_order)) ? theme.colors.white : theme.colors.primary,
|
|
66
|
-
opacity: saveErrors || isSoldOut || maxProductQuantity <= 0 ? 0.3 : 1,
|
|
67
65
|
borderRadius: 7.6,
|
|
68
66
|
height: 44,
|
|
69
67
|
shadowOpacity: 0,
|
|
@@ -82,7 +80,7 @@ export const ActionButton = (props : any) => {
|
|
|
82
80
|
textStyle={{ fontSize: 10 }}
|
|
83
81
|
/>
|
|
84
82
|
) : (
|
|
85
|
-
<OButton onClick={navigation.navigate('AddressList')} />
|
|
83
|
+
<OButton onClick={() => navigation.navigate('AddressList')} />
|
|
86
84
|
))}
|
|
87
85
|
{!auth && (
|
|
88
86
|
<OButton
|
|
@@ -94,13 +92,12 @@ export const ActionButton = (props : any) => {
|
|
|
94
92
|
: t('LOGIN_SIGNUP', 'Login / Sign Up')
|
|
95
93
|
}
|
|
96
94
|
imgRightSrc=""
|
|
97
|
-
textStyle={{
|
|
95
|
+
textStyle={{ fontSize: 13, textAlign: 'center' }}
|
|
98
96
|
style={{
|
|
99
97
|
height: 42,
|
|
100
|
-
borderColor: theme.colors.primary,
|
|
101
|
-
backgroundColor: theme.colors.white,
|
|
102
98
|
paddingLeft: 0,
|
|
103
|
-
paddingRight: 0
|
|
99
|
+
paddingRight: 0,
|
|
100
|
+
borderRadius: 7.6
|
|
104
101
|
}}
|
|
105
102
|
/>
|
|
106
103
|
)}
|