ordering-ui-react-native 0.22.4 → 0.22.5-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 +40 -35
- 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 +162 -173
- package/themes/business/src/components/PrinterSettings/styles.tsx +14 -1
- 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 +13 -4
- 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 +46 -28
- 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 +80 -51
- 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 +5 -3
- 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 +50 -43
- package/themes/original/src/components/ProductItemAccordion/styles.tsx +0 -3
- 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 +5 -5
- 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
|
};
|
|
@@ -53,6 +53,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
53
53
|
actions,
|
|
54
54
|
orderTitle,
|
|
55
55
|
appTitle,
|
|
56
|
+
loadMessages,
|
|
57
|
+
notificationApp
|
|
56
58
|
} = props;
|
|
57
59
|
|
|
58
60
|
const theme = useTheme();
|
|
@@ -74,9 +76,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
74
76
|
const [openModalForAccept, setOpenModalForAccept] = useState(false);
|
|
75
77
|
const [openModalForMapView, setOpenModalForMapView] = useState(false);
|
|
76
78
|
const [isDriverModalVisible, setIsDriverModalVisible] = useState(false);
|
|
77
|
-
const [printerSettings, setPrinterSettings] = useState('')
|
|
79
|
+
const [printerSettings, setPrinterSettings] = useState<any>('')
|
|
78
80
|
const [autoPrintEnabled, setAutoPrintEnabled] = useState<boolean>(false)
|
|
79
81
|
|
|
82
|
+
const orderToComplete = [4, 20, 21]
|
|
83
|
+
const orderToReady = [7, 14]
|
|
84
|
+
const deliveryTypes = [1, 7]
|
|
85
|
+
|
|
80
86
|
if (order?.status === 7 || order?.status === 4) {
|
|
81
87
|
if (drivers?.length > 0 && drivers) {
|
|
82
88
|
drivers.forEach((driver: any) => {
|
|
@@ -130,7 +136,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
130
136
|
if (props.handleChangeOrderStatus) {
|
|
131
137
|
const order: any = await props.handleChangeOrderStatus(status, isAcceptOrReject)
|
|
132
138
|
|
|
133
|
-
if (order?.status
|
|
139
|
+
if (order?.status === 7 && autoPrintEnabled && printerSettings) {
|
|
134
140
|
handleViewSummaryOrder()
|
|
135
141
|
}
|
|
136
142
|
}
|
|
@@ -206,7 +212,13 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
206
212
|
? t('EAT_IN', 'Eat in')
|
|
207
213
|
: order.delivery_type === 4
|
|
208
214
|
? t('CURBSIDE', 'Curbside')
|
|
209
|
-
:
|
|
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')
|
|
210
222
|
}\n`
|
|
211
223
|
: '';
|
|
212
224
|
|
|
@@ -295,7 +307,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
295
307
|
|
|
296
308
|
const handleOpenMessagesForBusiness = () => {
|
|
297
309
|
setOpenModalForBusiness(true);
|
|
298
|
-
readMessages && readMessages()
|
|
310
|
+
readMessages && readMessages()
|
|
311
|
+
loadMessages && loadMessages()
|
|
299
312
|
setUnreadAlert({ ...unreadAlert, business: false });
|
|
300
313
|
};
|
|
301
314
|
|
|
@@ -307,38 +320,26 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
307
320
|
setOpenModalForAccept(true);
|
|
308
321
|
};
|
|
309
322
|
|
|
310
|
-
const printAction = async (printerSettings: any, commands: any) => {
|
|
323
|
+
const printAction = async (printerSettings: any, commands: any, showAlert: boolean = true) => {
|
|
311
324
|
try {
|
|
312
325
|
var printResult = await StarPRNT.print(printerSettings?.emulation, commands, printerSettings?.portName);
|
|
313
|
-
|
|
314
|
-
t('PRINT_SUCCESS_TITLE', 'Print Success'),
|
|
315
|
-
t('PRINT_SUCCESS_SUBTITLE', `Go check your _printer_ printer!`).replace('_printer_', printerSettings?.model),
|
|
316
|
-
[
|
|
317
|
-
{text: 'OK', onPress: () => null},
|
|
318
|
-
],
|
|
319
|
-
{ cancelable: false }
|
|
320
|
-
)
|
|
326
|
+
showAlert && showToast(ToastType.Info, t('ORDER_PRINTED_SUCCESS', 'Order printed'), 1000)
|
|
321
327
|
} catch (e) {
|
|
322
|
-
|
|
323
|
-
t('PRINT_FAIL_TITLE', 'Connection Failed'),
|
|
324
|
-
t('PRINT_FAIL_SUBTITLE', 'Make sure your Star Printer is turned on and have thermal paper in it.'),
|
|
325
|
-
[
|
|
326
|
-
{text: 'OK', onPress: () => null},
|
|
327
|
-
],
|
|
328
|
-
{ cancelable: false }
|
|
329
|
-
)
|
|
328
|
+
showAlert && showToast(ToastType.Error, t('ORDER_PRINTED_FAILED', 'Order not printed, connection failed'), 1000)
|
|
330
329
|
}
|
|
331
330
|
}
|
|
332
331
|
|
|
333
332
|
const handleViewSummaryOrder = () => {
|
|
334
333
|
if (printerSettings) {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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)
|
|
338
342
|
})
|
|
339
|
-
commands.push({ appendCutPaper: StarPRNT.CutPaperAction.PartialCutWithFeed })
|
|
340
|
-
|
|
341
|
-
printAction(printerSettings, commands)
|
|
342
343
|
return
|
|
343
344
|
}
|
|
344
345
|
navigation?.navigate &&
|
|
@@ -349,6 +350,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
349
350
|
};
|
|
350
351
|
|
|
351
352
|
const handleCloseModal = () => {
|
|
353
|
+
readMessages && readMessages()
|
|
354
|
+
loadMessages && loadMessages()
|
|
352
355
|
setOpenModalForBusiness(false);
|
|
353
356
|
};
|
|
354
357
|
|
|
@@ -389,7 +392,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
389
392
|
},
|
|
390
393
|
{
|
|
391
394
|
...order?.customer?.location,
|
|
392
|
-
title: order?.customer?.name ??
|
|
395
|
+
title: order?.customer?.name ?? t('CUSTOMER', 'Customer'),
|
|
393
396
|
address: {
|
|
394
397
|
addressName: order?.customer?.address,
|
|
395
398
|
zipcode: order?.customer?.zipcode
|
|
@@ -423,9 +426,9 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
423
426
|
|
|
424
427
|
useEffect(() => {
|
|
425
428
|
const getStorageData = async () => {
|
|
426
|
-
|
|
429
|
+
const printers = await _retrieveStoreData('printers')
|
|
427
430
|
const autoPrint = await _retrieveStoreData('auto_print_after_accept_order')
|
|
428
|
-
setPrinterSettings(
|
|
431
|
+
setPrinterSettings(printers?.length && printers)
|
|
429
432
|
setAutoPrintEnabled(!!autoPrint)
|
|
430
433
|
}
|
|
431
434
|
|
|
@@ -492,6 +495,8 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
492
495
|
handleCopyClipboard={handleCopyClipboard}
|
|
493
496
|
handleArrowBack={handleArrowBack}
|
|
494
497
|
isCustomView={props.isCustomView}
|
|
498
|
+
messages={messages}
|
|
499
|
+
messagesReadList={messagesReadList}
|
|
495
500
|
/>
|
|
496
501
|
<OrderDetailsContainer
|
|
497
502
|
keyboardShouldPersistTaps="handled"
|
|
@@ -499,7 +504,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
499
504
|
<>
|
|
500
505
|
<OrderContentComponent order={order} />
|
|
501
506
|
{(order?.status === 7 || order?.status === 4) &&
|
|
502
|
-
order?.delivery_type
|
|
507
|
+
deliveryTypes.includes(order?.delivery_type) && configs?.assign_driver_enabled?.value === '1' && (
|
|
503
508
|
<AssignDriver>
|
|
504
509
|
<OText style={{ marginBottom: 5 }} size={16} weight="600">
|
|
505
510
|
{t('ASSIGN_DRIVER', 'Assign driver')}
|
|
@@ -597,6 +602,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
597
602
|
messages={messages}
|
|
598
603
|
order={order}
|
|
599
604
|
setMessages={setMessages}
|
|
605
|
+
notificationApp={notificationApp}
|
|
600
606
|
/>
|
|
601
607
|
</OModal>
|
|
602
608
|
|
|
@@ -640,7 +646,6 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
640
646
|
</>
|
|
641
647
|
<View style={{ height: 30 }} />
|
|
642
648
|
</OrderDetailsContainer>
|
|
643
|
-
|
|
644
649
|
{order &&
|
|
645
650
|
Object.keys(order).length > 0 &&
|
|
646
651
|
getOrderStatus(order?.status, t)?.value ===
|
|
@@ -657,7 +662,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
657
662
|
widthButton={'45%'}
|
|
658
663
|
/>
|
|
659
664
|
)}
|
|
660
|
-
{order?.status
|
|
665
|
+
{orderToReady.includes(order?.status) && (
|
|
661
666
|
<FloatingButton
|
|
662
667
|
btnText={t('READY_FOR_PICKUP', 'Ready for pickup')}
|
|
663
668
|
colorTxt1={theme.colors.primary}
|
|
@@ -667,7 +672,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
667
672
|
disabled={loading}
|
|
668
673
|
/>
|
|
669
674
|
)}
|
|
670
|
-
{order?.status
|
|
675
|
+
{orderToComplete.includes(order?.status) && !deliveryTypes.includes(order?.delivery_type) && (
|
|
671
676
|
<FloatingButton
|
|
672
677
|
btnText={t(
|
|
673
678
|
'ORDER_NOT_PICKEDUP_BY_CUSTOMER',
|
|
@@ -678,7 +683,7 @@ export const OrderDetailsUI = (props: OrderDetailsParams) => {
|
|
|
678
683
|
secondButtonClick={() => handleChangeOrderStatus?.(15)}
|
|
679
684
|
firstButtonClick={() => handleChangeOrderStatus?.(17)}
|
|
680
685
|
secondBtnText={t(
|
|
681
|
-
'
|
|
686
|
+
'ORDER_PICKUP_COMPLETED_BY_CUSTOMER',
|
|
682
687
|
'Pickup completed by customer',
|
|
683
688
|
)}
|
|
684
689
|
secondButton={true}
|