ordering-ui-react-native 0.22.2 → 0.22.3-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 +54 -37
- 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 +138 -64
- 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 +173 -154
- package/themes/business/src/components/PrinterSettings/styles.tsx +20 -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/UserProfileForm/index.tsx +16 -17
- package/themes/business/src/components/WebsocketStatus/index.tsx +2 -2
- package/themes/business/src/components/shared/OTextarea.tsx +8 -9
- package/themes/business/src/layouts/SafeAreaContainer.tsx +35 -19
- package/themes/business/src/types/index.tsx +14 -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 +44 -32
- 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 +112 -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/TimeListItem.tsx +56 -0
- package/themes/original/src/components/MomentOption/index.tsx +79 -56
- package/themes/original/src/components/MomentSelector/index.tsx +1 -1
- 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 +44 -21
- package/themes/original/src/components/OrderDetails/styles.tsx +0 -1
- package/themes/original/src/components/OrderProgress/index.tsx +5 -4
- 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 +17 -16
- package/themes/original/src/components/UserFormDetails/index.tsx +159 -133
- 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
|
@@ -53,16 +53,23 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
53
53
|
|
|
54
54
|
const fitCoordinates = (location?: any) => {
|
|
55
55
|
if (mapRef.current) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
const isSendCoordinates =
|
|
57
|
+
location &&
|
|
58
|
+
userLocation &&
|
|
59
|
+
location.latitude !== userLocation.latitude &&
|
|
60
|
+
location.longitude !== userLocation.longitude &&
|
|
61
|
+
location.latitude !== 0 &&
|
|
62
|
+
location.longitude !== 0 &&
|
|
63
|
+
userLocation.latitude !== 0 &&
|
|
64
|
+
userLocation.longitude !== 0
|
|
65
|
+
|
|
66
|
+
isSendCoordinates && mapRef.current.fitToCoordinates(
|
|
67
|
+
[location, userLocation].map(_location => ({
|
|
68
|
+
latitude: _location.latitude,
|
|
69
|
+
longitude: _location.longitude
|
|
70
|
+
})),
|
|
64
71
|
{
|
|
65
|
-
edgePadding: { top: 120, right: 120, bottom: 120, left: 120 }
|
|
72
|
+
edgePadding: { top: 120, right: 120, bottom: 120, left: 120 }
|
|
66
73
|
},
|
|
67
74
|
);
|
|
68
75
|
}
|
|
@@ -133,8 +140,20 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
133
140
|
const RenderMarker = ({ marker, customer, orderIds }: { marker: any, customer?: boolean, orderIds?: Array<number> }) => {
|
|
134
141
|
const markerRef = useRef<any>()
|
|
135
142
|
|
|
136
|
-
let coordinateLat = (customer
|
|
137
|
-
|
|
143
|
+
let coordinateLat = (customer
|
|
144
|
+
? typeof marker?.customer?.location?.lat === 'number' && !Number.isNaN(marker?.customer?.location?.lat)
|
|
145
|
+
? marker?.customer?.location?.lat
|
|
146
|
+
: 0
|
|
147
|
+
: typeof marker?.business?.location?.lat === 'number' && !Number.isNaN(marker?.business?.location?.lat)
|
|
148
|
+
? marker?.business?.location?.lat
|
|
149
|
+
: 0) ?? (initialPosition?.latitude || 0)
|
|
150
|
+
let coordinateLng = (customer
|
|
151
|
+
? typeof marker?.customer?.location?.lng === 'number' && !Number.isNaN(marker?.customer?.location?.lng)
|
|
152
|
+
? marker?.customer?.location?.lng
|
|
153
|
+
: 0
|
|
154
|
+
: typeof marker?.business?.location?.lng === 'number' && !Number.isNaN(marker?.business?.location?.lng)
|
|
155
|
+
? marker?.business?.location?.lng
|
|
156
|
+
: 0) ?? (initialPosition?.longitude || 0)
|
|
138
157
|
|
|
139
158
|
useEffect(() => {
|
|
140
159
|
if (
|
|
@@ -154,8 +173,8 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
154
173
|
}}
|
|
155
174
|
onPress={() =>
|
|
156
175
|
setLocationSelected({
|
|
157
|
-
latitude:
|
|
158
|
-
longitude:
|
|
176
|
+
latitude: coordinateLat,
|
|
177
|
+
longitude: coordinateLng
|
|
159
178
|
})
|
|
160
179
|
}
|
|
161
180
|
ref={(ref) => markerRef.current = ref}
|
|
@@ -235,8 +254,8 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
235
254
|
ref={mapRef}
|
|
236
255
|
provider={PROVIDER_GOOGLE}
|
|
237
256
|
initialRegion={{
|
|
238
|
-
latitude: initialPosition?.latitude,
|
|
239
|
-
longitude: initialPosition?.longitude,
|
|
257
|
+
latitude: initialPosition?.latitude || 0,
|
|
258
|
+
longitude: initialPosition?.longitude || 0,
|
|
240
259
|
latitudeDelta: haveOrders ? 0.01 : 0.1,
|
|
241
260
|
longitudeDelta: haveOrders ? 0.01 * ASPECT_RATIO : 0.1 * ASPECT_RATIO,
|
|
242
261
|
}}
|
|
@@ -266,8 +285,8 @@ const MapViewComponent = (props: MapViewParams) => {
|
|
|
266
285
|
))}
|
|
267
286
|
<Marker
|
|
268
287
|
coordinate={{
|
|
269
|
-
latitude: location.lat,
|
|
270
|
-
longitude: location.lng,
|
|
288
|
+
latitude: typeof location.lat === 'number' && !Number.isNaN(location.lat) ? location.lat : 0,
|
|
289
|
+
longitude: typeof location.lng === 'number' && !Number.isNaN(location.lng) ? location.lng : 0,
|
|
271
290
|
}}
|
|
272
291
|
title={t('YOUR_LOCATION', 'Your Location')}
|
|
273
292
|
>
|
|
@@ -44,17 +44,25 @@ const SoundPlayerComponent = (props: any) => {
|
|
|
44
44
|
const id = setInterval(() => setCount(count + 1), 2500)
|
|
45
45
|
|
|
46
46
|
const playSound = async () => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
try {
|
|
48
|
+
SoundPlayer.playUrl(URL_SOUND)
|
|
49
|
+
await new Promise(resolve => setTimeout(resolve, DELAY_SOUND))
|
|
50
|
+
SoundPlayer.stop()
|
|
51
|
+
} catch (err: any) {
|
|
52
|
+
console.log('Sound Error - ', err.message)
|
|
53
|
+
}
|
|
50
54
|
}
|
|
51
55
|
if (NativeModules?.RNSoundPlayer?.playUrl && typeof URL_SOUND === 'string' && isEnabledReadStorage) {
|
|
52
56
|
playSound()
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
return () => {
|
|
56
|
-
SoundPlayer.stop()
|
|
57
60
|
clearInterval(id);
|
|
61
|
+
try {
|
|
62
|
+
SoundPlayer.stop()
|
|
63
|
+
} catch (err: any) {
|
|
64
|
+
console.log('Sound Error - ', err.message)
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
}, [count, isEnabledReadStorage])
|
|
60
68
|
|
|
@@ -67,7 +75,7 @@ const SoundPlayerComponent = (props: any) => {
|
|
|
67
75
|
setIsEnabledReadStorage(true)
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
|
-
checkSoundMedia()
|
|
78
|
+
// checkSoundMedia()
|
|
71
79
|
|
|
72
80
|
}, [])
|
|
73
81
|
return (
|
|
@@ -109,21 +117,16 @@ const SoundPlayerComponent = (props: any) => {
|
|
|
109
117
|
}
|
|
110
118
|
|
|
111
119
|
const NewOrderNotificationUI = (props: any) => {
|
|
112
|
-
const { isBusinessApp, evtList } = props
|
|
120
|
+
const { isBusinessApp, evtList, orderStatus } = props
|
|
113
121
|
const [, t] = useLanguage()
|
|
114
122
|
const [events] = useEvent()
|
|
115
123
|
const [{ user, token }] = useSession()
|
|
116
124
|
const [ordering] = useApi()
|
|
117
|
-
const [{ configs }] = useConfig()
|
|
118
125
|
const [, { showToast }] = useToast()
|
|
119
126
|
const { getCurrentLocation } = useLocation()
|
|
120
127
|
const [currentEvent, setCurrentEvent] = useState<any>(null)
|
|
121
128
|
|
|
122
|
-
const
|
|
123
|
-
? configs?.notification_business_states?.value.split('|').map((value: any) => Number(value)) || []
|
|
124
|
-
: configs?.notification_driver_states?.value.split('|').map((value: any) => Number(value)) || []
|
|
125
|
-
|
|
126
|
-
const handleEventNotification = async (evtType: number, value: any) => {
|
|
129
|
+
const handleEventNotification = async (evtType: number, value: any, orderStatus?: any) => {
|
|
127
130
|
if (value?.driver) {
|
|
128
131
|
try {
|
|
129
132
|
const location = await getCurrentLocation()
|
|
@@ -149,11 +152,11 @@ const NewOrderNotificationUI = (props: any) => {
|
|
|
149
152
|
} catch { }
|
|
150
153
|
const duration = moment.duration(moment().diff(moment.utc(value?.last_driver_assigned_at)))
|
|
151
154
|
const assignedSecondsDiff = duration.asSeconds()
|
|
152
|
-
if (assignedSecondsDiff < 5 && !isBusinessApp && !value?.logistic_status
|
|
155
|
+
if (assignedSecondsDiff < 5 && !isBusinessApp && !value?.logistic_status) {
|
|
153
156
|
setCurrentEvent({ evt: 2, orderId: value?.id ?? value?.order_id })
|
|
154
157
|
}
|
|
155
158
|
}
|
|
156
|
-
if (!orderStatus.includes(value.status) || value?.author_id === user.id) return
|
|
159
|
+
if ((!orderStatus.includes(value.status) && evtType !== 1 && isBusinessApp && orderStatus?.length > 0) || value?.author_id === user.id) return
|
|
157
160
|
setCurrentEvent({
|
|
158
161
|
evt: evtType,
|
|
159
162
|
orderId: value?.driver
|
|
@@ -165,20 +168,30 @@ const NewOrderNotificationUI = (props: any) => {
|
|
|
165
168
|
}
|
|
166
169
|
|
|
167
170
|
useEffect(() => {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
const handleEventTypeOne = (o: any) => {
|
|
172
|
+
handleEventNotification(1, o, orderStatus)
|
|
173
|
+
}
|
|
174
|
+
const handleEventTypeTwo = (o: any) => {
|
|
175
|
+
handleEventNotification(2, o, orderStatus)
|
|
176
|
+
}
|
|
177
|
+
const handleEventTypeThree = (o: any) => {
|
|
178
|
+
handleEventNotification(3, o, orderStatus)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
events.on('message_added_notification', handleEventTypeOne)
|
|
182
|
+
events.on('order_added_notification', handleEventTypeTwo)
|
|
183
|
+
events.on('order_updated_notification', handleEventTypeThree)
|
|
184
|
+
events.on('request_register_notification', handleEventTypeTwo)
|
|
185
|
+
events.on('request_update_notification', handleEventTypeThree)
|
|
173
186
|
|
|
174
187
|
return () => {
|
|
175
|
-
events.off('message_added_notification',
|
|
176
|
-
events.off('order_added_notification',
|
|
177
|
-
events.off('order_updated_notification',
|
|
178
|
-
events.off('request_register_notification',
|
|
179
|
-
events.off('request_update_notification',
|
|
188
|
+
events.off('message_added_notification', handleEventTypeOne)
|
|
189
|
+
events.off('order_added_notification', handleEventTypeTwo)
|
|
190
|
+
events.off('order_updated_notification', handleEventTypeThree)
|
|
191
|
+
events.off('request_register_notification', handleEventTypeTwo)
|
|
192
|
+
events.off('request_update_notification', handleEventTypeThree)
|
|
180
193
|
}
|
|
181
|
-
}, [])
|
|
194
|
+
}, [orderStatus, events])
|
|
182
195
|
|
|
183
196
|
useEffect(() => {
|
|
184
197
|
return () => setCurrentEvent(null)
|
|
@@ -186,13 +199,13 @@ const NewOrderNotificationUI = (props: any) => {
|
|
|
186
199
|
|
|
187
200
|
return (
|
|
188
201
|
<>
|
|
189
|
-
{!!currentEvent
|
|
202
|
+
{!!currentEvent && (
|
|
190
203
|
<SoundPlayerComponent
|
|
191
204
|
evtList={evtList}
|
|
192
205
|
currentEvent={currentEvent}
|
|
193
206
|
handleCloseEvents={() => setCurrentEvent(null)}
|
|
194
207
|
/>
|
|
195
|
-
)
|
|
208
|
+
)}
|
|
196
209
|
</>
|
|
197
210
|
)
|
|
198
211
|
};
|
|
@@ -48,12 +48,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
48
48
|
readMessages,
|
|
49
49
|
messagesReadList,
|
|
50
50
|
handleAssignDriver,
|
|
51
|
-
handleChangeOrderStatus,
|
|
52
51
|
isFromCheckout,
|
|
53
52
|
driverLocation,
|
|
54
53
|
actions,
|
|
55
54
|
orderTitle,
|
|
56
55
|
appTitle,
|
|
56
|
+
loadMessages,
|
|
57
|
+
notificationApp
|
|
57
58
|
} = props;
|
|
58
59
|
|
|
59
60
|
const theme = useTheme();
|
|
@@ -75,7 +76,12 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
75
76
|
const [openModalForAccept, setOpenModalForAccept] = useState(false);
|
|
76
77
|
const [openModalForMapView, setOpenModalForMapView] = useState(false);
|
|
77
78
|
const [isDriverModalVisible, setIsDriverModalVisible] = useState(false);
|
|
78
|
-
const [printerSettings, setPrinterSettings] = useState('')
|
|
79
|
+
const [printerSettings, setPrinterSettings] = useState<any>('')
|
|
80
|
+
const [autoPrintEnabled, setAutoPrintEnabled] = useState<boolean>(false)
|
|
81
|
+
|
|
82
|
+
const orderToComplete = [4, 20, 21]
|
|
83
|
+
const orderToReady = [7, 14]
|
|
84
|
+
const deliveryTypes = [1, 7]
|
|
79
85
|
|
|
80
86
|
if (order?.status === 7 || order?.status === 4) {
|
|
81
87
|
if (drivers?.length > 0 && drivers) {
|
|
@@ -126,6 +132,16 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
126
132
|
}
|
|
127
133
|
}
|
|
128
134
|
|
|
135
|
+
const handleChangeOrderStatus = async (status: any, isAcceptOrReject: any = {}) => {
|
|
136
|
+
if (props.handleChangeOrderStatus) {
|
|
137
|
+
const order: any = await props.handleChangeOrderStatus(status, isAcceptOrReject)
|
|
138
|
+
|
|
139
|
+
if (order?.status === 7 && autoPrintEnabled && printerSettings) {
|
|
140
|
+
handleViewSummaryOrder()
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
129
145
|
const getFormattedSubOptionName = ({ quantity, name, position, price }: any) => {
|
|
130
146
|
if (name !== 'No') {
|
|
131
147
|
const pos = position && position !== 'whole' ? `(${t(position.toUpperCase(), position)})` : '';
|
|
@@ -196,7 +212,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
196
212
|
? t('EAT_IN', 'Eat in')
|
|
197
213
|
: order.delivery_type === 4
|
|
198
214
|
? t('CURBSIDE', 'Curbside')
|
|
199
|
-
:
|
|
215
|
+
: order.delivery_type === 5
|
|
216
|
+
? t('DRIVER_THRU', 'Driver thru')
|
|
217
|
+
: order.delivery_type === 7
|
|
218
|
+
? t('CATERING_DELIVERY', 'Catering delivery')
|
|
219
|
+
: order.delivery_type === 8
|
|
220
|
+
? t('CATERING_PICKUP', 'Catering pickup')
|
|
221
|
+
: t('DELIVERY', 'Delivery')
|
|
200
222
|
}\n`
|
|
201
223
|
: '';
|
|
202
224
|
|
|
@@ -285,7 +307,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
285
307
|
|
|
286
308
|
const handleOpenMessagesForBusiness = () => {
|
|
287
309
|
setOpenModalForBusiness(true);
|
|
288
|
-
readMessages && readMessages()
|
|
310
|
+
readMessages && readMessages()
|
|
311
|
+
loadMessages && loadMessages()
|
|
289
312
|
setUnreadAlert({ ...unreadAlert, business: false });
|
|
290
313
|
};
|
|
291
314
|
|
|
@@ -297,38 +320,26 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
297
320
|
setOpenModalForAccept(true);
|
|
298
321
|
};
|
|
299
322
|
|
|
300
|
-
const printAction = async (printerSettings: any, commands: any) => {
|
|
323
|
+
const printAction = async (printerSettings: any, commands: any, showAlert: boolean = true) => {
|
|
301
324
|
try {
|
|
302
325
|
var printResult = await StarPRNT.print(printerSettings?.emulation, commands, printerSettings?.portName);
|
|
303
|
-
|
|
304
|
-
t('PRINT_SUCCESS_TITLE', 'Print Success'),
|
|
305
|
-
t('PRINT_SUCCESS_SUBTITLE', `Go check your _printer_ printer!`).replace('_printer_', printerSettings?.model),
|
|
306
|
-
[
|
|
307
|
-
{text: 'OK', onPress: () => null},
|
|
308
|
-
],
|
|
309
|
-
{ cancelable: false }
|
|
310
|
-
)
|
|
326
|
+
showAlert && showToast(ToastType.Info, t('ORDER_PRINTED_SUCCESS', 'Order printed'), 1000)
|
|
311
327
|
} catch (e) {
|
|
312
|
-
|
|
313
|
-
t('PRINT_FAIL_TITLE', 'Connection Failed'),
|
|
314
|
-
t('PRINT_FAIL_SUBTITLE', 'Make sure your Star Printer is turned on and have thermal paper in it.'),
|
|
315
|
-
[
|
|
316
|
-
{text: 'OK', onPress: () => null},
|
|
317
|
-
],
|
|
318
|
-
{ cancelable: false }
|
|
319
|
-
)
|
|
328
|
+
showAlert && showToast(ToastType.Error, t('ORDER_PRINTED_FAILED', 'Order not printed, connection failed'), 1000)
|
|
320
329
|
}
|
|
321
330
|
}
|
|
322
331
|
|
|
323
332
|
const handleViewSummaryOrder = () => {
|
|
324
333
|
if (printerSettings) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
334
|
+
printerSettings.map((printer: any, idx: number) => {
|
|
335
|
+
const commands: any = generateCommands({
|
|
336
|
+
...order,
|
|
337
|
+
orderStatus: getOrderStatus(order?.status, t)?.value
|
|
338
|
+
}, printer?.printMode)
|
|
339
|
+
commands.push({ appendCutPaper: StarPRNT.CutPaperAction.PartialCutWithFeed })
|
|
340
|
+
|
|
341
|
+
printAction(printer, commands, idx === printerSettings.length - 1)
|
|
328
342
|
})
|
|
329
|
-
commands.push({ appendCutPaper: StarPRNT.CutPaperAction.PartialCutWithFeed })
|
|
330
|
-
|
|
331
|
-
printAction(printerSettings, commands)
|
|
332
343
|
return
|
|
333
344
|
}
|
|
334
345
|
navigation?.navigate &&
|
|
@@ -339,6 +350,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
339
350
|
};
|
|
340
351
|
|
|
341
352
|
const handleCloseModal = () => {
|
|
353
|
+
readMessages && readMessages()
|
|
354
|
+
loadMessages && loadMessages()
|
|
342
355
|
setOpenModalForBusiness(false);
|
|
343
356
|
};
|
|
344
357
|
|
|
@@ -379,7 +392,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
379
392
|
},
|
|
380
393
|
{
|
|
381
394
|
...order?.customer?.location,
|
|
382
|
-
title: order?.customer?.name ??
|
|
395
|
+
title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
|
|
383
396
|
address: {
|
|
384
397
|
addressName: order?.customer?.address,
|
|
385
398
|
zipcode: order?.customer?.zipcode
|
|
@@ -412,12 +425,14 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
412
425
|
}, [driverLocation]);
|
|
413
426
|
|
|
414
427
|
useEffect(() => {
|
|
415
|
-
const
|
|
416
|
-
const
|
|
417
|
-
|
|
428
|
+
const getStorageData = async () => {
|
|
429
|
+
const printers = await _retrieveStoreData('printers')
|
|
430
|
+
const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
|
|
431
|
+
setPrinterSettings(printers?.length && printers)
|
|
432
|
+
setAutoPrintEnabled(!!autoPrint)
|
|
418
433
|
}
|
|
419
434
|
|
|
420
|
-
|
|
435
|
+
getStorageData()
|
|
421
436
|
}, [])
|
|
422
437
|
|
|
423
438
|
const styles = StyleSheet.create({
|
|
@@ -480,6 +495,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
480
495
|
handleCopyClipboard={handleCopyClipboard}
|
|
481
496
|
handleArrowBack={handleArrowBack}
|
|
482
497
|
isCustomView={props.isCustomView}
|
|
498
|
+
messages={messages}
|
|
499
|
+
messagesReadList={messagesReadList}
|
|
483
500
|
/>
|
|
484
501
|
<OrderDetailsContainer
|
|
485
502
|
keyboardShouldPersistTaps="handled"
|
|
@@ -487,7 +504,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
487
504
|
<>
|
|
488
505
|
<OrderContentComponent order={order} />
|
|
489
506
|
{(order?.status === 7 || order?.status === 4) &&
|
|
490
|
-
order?.delivery_type
|
|
507
|
+
deliveryTypes.includes(order?.delivery_type) && configs?.assign_driver_enabled?.value === '1' && (
|
|
491
508
|
<AssignDriver>
|
|
492
509
|
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
493
510
|
{t('ASSIGN_DRIVER', 'Assign driver')}
|
|
@@ -585,6 +602,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
585
602
|
messages={messages}
|
|
586
603
|
order={order}
|
|
587
604
|
setMessages={setMessages}
|
|
605
|
+
notificationApp={notificationApp}
|
|
588
606
|
/>
|
|
589
607
|
</OModal>
|
|
590
608
|
|
|
@@ -628,7 +646,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
628
646
|
</>
|
|
629
647
|
<View style={{ height: 30 }} />
|
|
630
648
|
</OrderDetailsContainer>
|
|
631
|
-
|
|
632
649
|
{order &&
|
|
633
650
|
Object.keys(order).length > 0 &&
|
|
634
651
|
getOrderStatus(order?.status, t)?.value ===
|
|
@@ -645,7 +662,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
645
662
|
widthButton={'45%'}
|
|
646
663
|
/>
|
|
647
664
|
)}
|
|
648
|
-
{order?.status
|
|
665
|
+
{orderToReady.includes(order?.status) && (
|
|
649
666
|
<FloatingButton
|
|
650
667
|
btnText={t('READY_FOR_PICKUP', 'Ready for pickup')}
|
|
651
668
|
colorTxt1={theme.colors.primary}
|
|
@@ -655,7 +672,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
655
672
|
disabled={loading}
|
|
656
673
|
/>
|
|
657
674
|
)}
|
|
658
|
-
{order?.status
|
|
675
|
+
{orderToComplete.includes(order?.status) && !deliveryTypes.includes(order?.delivery_type) && (
|
|
659
676
|
<FloatingButton
|
|
660
677
|
btnText={t(
|
|
661
678
|
'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
|
|
@@ -666,7 +683,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
666
683
|
secondButtonClick={() => handleChangeOrderStatus?.(15)}
|
|
667
684
|
firstButtonClick={() => handleChangeOrderStatus?.(17)}
|
|
668
685
|
secondBtnText={t(
|
|
669
|
-
'
|
|
686
|
+
'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
|
|
670
687
|
'Pickup completed by customer',
|
|
671
688
|
)}
|
|
672
689
|
secondButton={true}
|