ordering-ui-react-native 0.12.24 → 0.12.25
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 +1 -1
- package/themes/single-business/index.tsx +4 -0
- package/themes/single-business/src/components/OrderListOption/index.tsx +231 -0
- package/themes/single-business/src/components/OrderListOption/styles.tsx +62 -0
- package/themes/single-business/src/components/OrdersListing/index.tsx +112 -0
- package/themes/single-business/src/components/UserProfile/index.tsx +7 -1
- package/themes/single-business/src/utils/index.tsx +32 -1
package/package.json
CHANGED
|
@@ -45,6 +45,8 @@ import { OrderDetails } from './src/components/OrderDetails';
|
|
|
45
45
|
import { OrdersOption } from './src/components/OrdersOption';
|
|
46
46
|
import { OrderSummary } from './src/components/OrderSummary';
|
|
47
47
|
import { OrderTypeSelector } from './src/components/OrderTypeSelector';
|
|
48
|
+
import { OrdersListing } from './src/components/OrdersListing';
|
|
49
|
+
import { OrderListOption } from './src/components/OrderListOption';
|
|
48
50
|
import { PaymentOptionCash } from './src/components/PaymentOptionCash';
|
|
49
51
|
import { PaymentOptions } from './src/components/PaymentOptions';
|
|
50
52
|
import { PaymentOptionStripe } from './src/components/PaymentOptionStripe';
|
|
@@ -125,6 +127,8 @@ export {
|
|
|
125
127
|
HelpOrder,
|
|
126
128
|
HelpAccountAndPayment,
|
|
127
129
|
OrderTypeSelector,
|
|
130
|
+
OrdersListing,
|
|
131
|
+
OrderListOption,
|
|
128
132
|
Notifications,
|
|
129
133
|
BottomWrapper,
|
|
130
134
|
BusinessBasicInformation,
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
3
|
+
import { useLanguage, useUtils } from 'ordering-components/native';
|
|
4
|
+
import {
|
|
5
|
+
OrdersContainer,
|
|
6
|
+
Card,
|
|
7
|
+
Information,
|
|
8
|
+
OrderInformation,
|
|
9
|
+
BusinessInformation,
|
|
10
|
+
Price,
|
|
11
|
+
OptionTitle,
|
|
12
|
+
Status,
|
|
13
|
+
} from './styles';
|
|
14
|
+
|
|
15
|
+
import { useTheme } from 'styled-components/native';
|
|
16
|
+
import { getTextOrderStatus } from '../../utils';
|
|
17
|
+
import { OButton, OText } from '../shared'
|
|
18
|
+
|
|
19
|
+
export const OrderListOption = (props: any) => {
|
|
20
|
+
const {
|
|
21
|
+
orders,
|
|
22
|
+
titleContent,
|
|
23
|
+
typeStyle,
|
|
24
|
+
allowedOrderStatus,
|
|
25
|
+
isLoadingReorder,
|
|
26
|
+
handleReorder,
|
|
27
|
+
onNavigationRedirect,
|
|
28
|
+
} = props;
|
|
29
|
+
|
|
30
|
+
const theme = useTheme();
|
|
31
|
+
const [, t] = useLanguage();
|
|
32
|
+
const [{ parseDate, parsePrice }] = useUtils();
|
|
33
|
+
|
|
34
|
+
const [reorderSelected, setReorderSelected] = useState<number | null>(null);
|
|
35
|
+
const [isReviewedOrders, setIsReviewedOrders] = useState<Array<any>>([])
|
|
36
|
+
|
|
37
|
+
const handleClickCard = (uuid: string) => {
|
|
38
|
+
onNavigationRedirect &&
|
|
39
|
+
onNavigationRedirect('OrderDetails', { orderId: uuid });
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const handleReviewState = (orderId: any) => {
|
|
43
|
+
if (!orderId || isReviewedOrders.includes(orderId)) return
|
|
44
|
+
setIsReviewedOrders([...isReviewedOrders, orderId])
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const handleClickOrderReview = (order: any) => {
|
|
48
|
+
onNavigationRedirect &&
|
|
49
|
+
onNavigationRedirect('ReviewOrder', {
|
|
50
|
+
order: {
|
|
51
|
+
id: order?.id,
|
|
52
|
+
business_id: order?.business_id,
|
|
53
|
+
logo: order.business?.logo,
|
|
54
|
+
driver: order?.driver,
|
|
55
|
+
products: order?.products,
|
|
56
|
+
review: order?.review,
|
|
57
|
+
user_review: order?.user_review
|
|
58
|
+
},
|
|
59
|
+
handleReviewState: handleReviewState
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const handleReorderClick = (id: number) => {
|
|
64
|
+
setReorderSelected(id);
|
|
65
|
+
handleReorder(id);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const styles = StyleSheet.create({
|
|
69
|
+
reorderbutton: {
|
|
70
|
+
height: 23,
|
|
71
|
+
paddingLeft: 10,
|
|
72
|
+
paddingRight: 10,
|
|
73
|
+
borderRadius: 23,
|
|
74
|
+
shadowOpacity: 0,
|
|
75
|
+
backgroundColor: theme.colors.primaryContrast,
|
|
76
|
+
borderWidth: 0,
|
|
77
|
+
width: 80
|
|
78
|
+
},
|
|
79
|
+
reorderLoading: {
|
|
80
|
+
width: 80,
|
|
81
|
+
height: 23,
|
|
82
|
+
borderRadius: 23,
|
|
83
|
+
paddingHorizontal: 10,
|
|
84
|
+
},
|
|
85
|
+
reviewButton: {
|
|
86
|
+
width: 80,
|
|
87
|
+
height: 23,
|
|
88
|
+
maxHeight: 23,
|
|
89
|
+
backgroundColor: theme.colors.white,
|
|
90
|
+
alignItems: 'center',
|
|
91
|
+
justifyContent: 'center',
|
|
92
|
+
paddingHorizontal: 10,
|
|
93
|
+
borderRadius: 23,
|
|
94
|
+
borderWidth: 1,
|
|
95
|
+
borderColor: theme.colors.primaryContrast,
|
|
96
|
+
},
|
|
97
|
+
buttonText: {
|
|
98
|
+
color: theme.colors.primary,
|
|
99
|
+
fontSize: 10,
|
|
100
|
+
marginLeft: 2,
|
|
101
|
+
marginRight: 2,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const OrderStyleOne = ({ order }: any) => (
|
|
106
|
+
<Card
|
|
107
|
+
activeOpacity={1}
|
|
108
|
+
onPress={() => handleClickCard(order?.uuid)}
|
|
109
|
+
>
|
|
110
|
+
<Information>
|
|
111
|
+
<OrderInformation>
|
|
112
|
+
<BusinessInformation>
|
|
113
|
+
<OText size={12} lineHeight={18} weight={600} numberOfLines={1} ellipsizeMode={'tail'}>
|
|
114
|
+
{`${t('ORDER_NO', 'Order No')}.${order.id}`}
|
|
115
|
+
</OText>
|
|
116
|
+
<OText size={10} lineHeight={21} color={theme.colors.textSecondary}>
|
|
117
|
+
{order?.delivery_datetime_utc
|
|
118
|
+
? parseDate(order?.delivery_datetime_utc)
|
|
119
|
+
: parseDate(order?.delivery_datetime, { utc: false })}
|
|
120
|
+
</OText>
|
|
121
|
+
<OText
|
|
122
|
+
color={theme.colors.primary}
|
|
123
|
+
size={10}
|
|
124
|
+
lineHeight={15}
|
|
125
|
+
weight={400}
|
|
126
|
+
numberOfLines={2}>
|
|
127
|
+
{getTextOrderStatus(order.status, t)?.value}
|
|
128
|
+
</OText>
|
|
129
|
+
</BusinessInformation>
|
|
130
|
+
<Price>
|
|
131
|
+
<OText size={12} lineHeight={18}>
|
|
132
|
+
{parsePrice(order?.summary?.total || order?.total)}
|
|
133
|
+
</OText>
|
|
134
|
+
</Price>
|
|
135
|
+
</OrderInformation>
|
|
136
|
+
</Information>
|
|
137
|
+
</Card>
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
const OrderStyleTwo = ({ order }: any) => (
|
|
141
|
+
<TouchableOpacity
|
|
142
|
+
onPress={() => handleClickCard(order?.uuid)}
|
|
143
|
+
activeOpacity={1}
|
|
144
|
+
style={{ flexDirection: 'row' }}
|
|
145
|
+
>
|
|
146
|
+
<Card themetwo>
|
|
147
|
+
<Information themetwo>
|
|
148
|
+
<OText size={12} lineHeight={18} weight={'600'} numberOfLines={1} ellipsizeMode={'tail'}>
|
|
149
|
+
{`${t('ORDER_NO', 'Order No')}.${order.id}`}
|
|
150
|
+
</OText>
|
|
151
|
+
<OText
|
|
152
|
+
size={10}
|
|
153
|
+
lineHeight={21}
|
|
154
|
+
color={theme.colors.textSecondary}
|
|
155
|
+
style={{ marginVertical: 3 }}
|
|
156
|
+
numberOfLines={1}>
|
|
157
|
+
{order?.delivery_datetime_utc
|
|
158
|
+
? parseDate(order?.delivery_datetime_utc)
|
|
159
|
+
: parseDate(order?.delivery_datetime, { utc: false })}
|
|
160
|
+
</OText>
|
|
161
|
+
<OText
|
|
162
|
+
color={theme.colors.primary}
|
|
163
|
+
size={10}
|
|
164
|
+
lineHeight={15}
|
|
165
|
+
numberOfLines={1}>
|
|
166
|
+
{getTextOrderStatus(order.status, t)?.value}
|
|
167
|
+
</OText>
|
|
168
|
+
</Information>
|
|
169
|
+
<Status>
|
|
170
|
+
<OButton
|
|
171
|
+
text={t('REORDER', 'Reorder')}
|
|
172
|
+
imgRightSrc={''}
|
|
173
|
+
textStyle={styles.buttonText}
|
|
174
|
+
style={
|
|
175
|
+
isLoadingReorder && order.id === reorderSelected
|
|
176
|
+
? styles.reorderLoading
|
|
177
|
+
: styles.reorderbutton
|
|
178
|
+
}
|
|
179
|
+
onClick={() => handleReorderClick(order.id)}
|
|
180
|
+
isLoading={isLoadingReorder && order.id === reorderSelected}
|
|
181
|
+
/>
|
|
182
|
+
{allowedOrderStatus.includes(parseInt(order?.status)) &&
|
|
183
|
+
!order.review && !isReviewedOrders.includes(order?.id) &&
|
|
184
|
+
(
|
|
185
|
+
<TouchableOpacity
|
|
186
|
+
onPress={() => handleClickOrderReview(order)}
|
|
187
|
+
style={styles.reviewButton}>
|
|
188
|
+
<OText size={10} color={theme.colors.primary} numberOfLines={1}>
|
|
189
|
+
{t('REVIEW', 'Review')}
|
|
190
|
+
</OText>
|
|
191
|
+
</TouchableOpacity>
|
|
192
|
+
)}
|
|
193
|
+
</Status>
|
|
194
|
+
</Card>
|
|
195
|
+
</TouchableOpacity>
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
return (
|
|
199
|
+
<>
|
|
200
|
+
<OptionTitle>
|
|
201
|
+
<OText
|
|
202
|
+
size={16}
|
|
203
|
+
color={theme.colors.textPrimary}
|
|
204
|
+
mBottom={10}
|
|
205
|
+
>
|
|
206
|
+
{titleContent}
|
|
207
|
+
</OText>
|
|
208
|
+
</OptionTitle>
|
|
209
|
+
<OrdersContainer>
|
|
210
|
+
{orders.length > 0 &&
|
|
211
|
+
orders.map((order: any, index: any) => (
|
|
212
|
+
<React.Fragment key={order?.id || order?.uuid}>
|
|
213
|
+
{typeStyle === 1 && (
|
|
214
|
+
<OrderStyleOne order={order} />
|
|
215
|
+
)}
|
|
216
|
+
{typeStyle === 2 && (
|
|
217
|
+
<OrderStyleTwo order={order} />
|
|
218
|
+
)}
|
|
219
|
+
</React.Fragment>
|
|
220
|
+
))}
|
|
221
|
+
</OrdersContainer>
|
|
222
|
+
<View
|
|
223
|
+
style={{
|
|
224
|
+
height: 8,
|
|
225
|
+
backgroundColor: theme.colors.backgroundGray100,
|
|
226
|
+
marginBottom: 10
|
|
227
|
+
}}
|
|
228
|
+
/>
|
|
229
|
+
</>
|
|
230
|
+
);
|
|
231
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components/native'
|
|
2
|
+
|
|
3
|
+
export const OrdersContainer = styled.View`
|
|
4
|
+
margin-bottom: 10px;
|
|
5
|
+
`
|
|
6
|
+
|
|
7
|
+
export const Card = styled.TouchableOpacity`
|
|
8
|
+
${(props: any) => props.themetwo ? css`
|
|
9
|
+
padding-vertical: 5px;
|
|
10
|
+
margin-bottom: 12px;
|
|
11
|
+
flex-direction: row;
|
|
12
|
+
width: 100%;
|
|
13
|
+
` : css`
|
|
14
|
+
flex: 1;
|
|
15
|
+
`};
|
|
16
|
+
`
|
|
17
|
+
|
|
18
|
+
export const Map = styled.View`
|
|
19
|
+
flex: 1;
|
|
20
|
+
height: 125px;
|
|
21
|
+
margin-bottom: 22px;
|
|
22
|
+
`
|
|
23
|
+
|
|
24
|
+
export const Information = styled.View`
|
|
25
|
+
${(props: any) => props.themetwo ? css`
|
|
26
|
+
justify-content: center;
|
|
27
|
+
align-items: flex-start;
|
|
28
|
+
margin-end: 7px;
|
|
29
|
+
flex: 1;
|
|
30
|
+
` : css`
|
|
31
|
+
flex-direction: row;
|
|
32
|
+
align-items: center;
|
|
33
|
+
padding-vertical: 5px;
|
|
34
|
+
margin-bottom: 12px;
|
|
35
|
+
`};
|
|
36
|
+
`
|
|
37
|
+
|
|
38
|
+
export const OrderInformation = styled.View`
|
|
39
|
+
flex-direction: row;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
flex: 1;
|
|
42
|
+
`
|
|
43
|
+
|
|
44
|
+
export const BusinessInformation = styled.View`
|
|
45
|
+
flex-basis: 65%;
|
|
46
|
+
`
|
|
47
|
+
|
|
48
|
+
export const Price = styled.View`
|
|
49
|
+
justify-content: flex-start;
|
|
50
|
+
align-items: flex-end;
|
|
51
|
+
margin-left: 10px;
|
|
52
|
+
width: 30%;
|
|
53
|
+
`
|
|
54
|
+
|
|
55
|
+
export const OptionTitle = styled.View`
|
|
56
|
+
margin-top: 10px;
|
|
57
|
+
`
|
|
58
|
+
|
|
59
|
+
export const Status = styled.View`
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: space-between;
|
|
62
|
+
`
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { View, useWindowDimensions } from 'react-native'
|
|
3
|
+
import { useTheme } from 'styled-components/native'
|
|
4
|
+
import { useLanguage, OrderVerticalList } from 'ordering-components/native'
|
|
5
|
+
import { Placeholder, PlaceholderLine, Fade } from "rn-placeholder";
|
|
6
|
+
import { OButton, OText } from '../shared'
|
|
7
|
+
import { NotFoundSource } from '../NotFoundSource'
|
|
8
|
+
import { OrderListOption } from '../OrderListOption'
|
|
9
|
+
|
|
10
|
+
const OrdersListingUI = (props: any) => {
|
|
11
|
+
const {
|
|
12
|
+
ordersGroup,
|
|
13
|
+
reorderLoading,
|
|
14
|
+
loadMoreOrders,
|
|
15
|
+
handleReorder,
|
|
16
|
+
onNavigationRedirect,
|
|
17
|
+
} = props
|
|
18
|
+
|
|
19
|
+
const theme = useTheme()
|
|
20
|
+
const [, t] = useLanguage()
|
|
21
|
+
const { height } = useWindowDimensions()
|
|
22
|
+
|
|
23
|
+
const imageFails = theme.images.general.emptyActiveOrders
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<>
|
|
27
|
+
<OText size={20} style={{ marginTop: 20 }}>
|
|
28
|
+
{t('MY_ORDERS', 'My Orders')}
|
|
29
|
+
</OText>
|
|
30
|
+
|
|
31
|
+
{!ordersGroup.error && ordersGroup.all?.orders?.length > 0 && (
|
|
32
|
+
<>
|
|
33
|
+
{ordersGroup.upcoming?.orders?.length > 0 && (
|
|
34
|
+
<OrderListOption
|
|
35
|
+
titleContent={t('UPCOMING', 'Upcoming')}
|
|
36
|
+
typeStyle={1}
|
|
37
|
+
orders={ordersGroup.upcoming?.orders}
|
|
38
|
+
onNavigationRedirect={onNavigationRedirect}
|
|
39
|
+
/>
|
|
40
|
+
)}
|
|
41
|
+
{ordersGroup.active?.orders?.length > 0 && (
|
|
42
|
+
<OrderListOption
|
|
43
|
+
titleContent={t('ACTIVE', 'Active')}
|
|
44
|
+
typeStyle={1}
|
|
45
|
+
orders={ordersGroup.active?.orders}
|
|
46
|
+
onNavigationRedirect={onNavigationRedirect}
|
|
47
|
+
/>
|
|
48
|
+
)}
|
|
49
|
+
{ordersGroup.past?.orders?.length > 0 && (
|
|
50
|
+
<OrderListOption
|
|
51
|
+
titleContent={t('PAST', 'Past')}
|
|
52
|
+
typeStyle={2}
|
|
53
|
+
orders={ordersGroup.past?.orders}
|
|
54
|
+
allowedOrderStatus={[1, 2, 5, 6, 10, 11, 12]}
|
|
55
|
+
isLoadingReorder={reorderLoading}
|
|
56
|
+
handleReorder={handleReorder}
|
|
57
|
+
onNavigationRedirect={onNavigationRedirect}
|
|
58
|
+
/>
|
|
59
|
+
)}
|
|
60
|
+
{!ordersGroup.loading &&
|
|
61
|
+
ordersGroup?.pagination?.totalPages &&
|
|
62
|
+
ordersGroup?.pagination?.currentPage < ordersGroup?.pagination?.totalPages &&
|
|
63
|
+
(
|
|
64
|
+
<View>
|
|
65
|
+
<OButton
|
|
66
|
+
text={t('LOAD_MORE_ORDERS', 'Load more orders')}
|
|
67
|
+
imgRightSrc={null}
|
|
68
|
+
textStyle={{ color: theme.colors.white }}
|
|
69
|
+
style={{ borderRadius: 8, shadowOpacity: 0, marginTop: 20 }}
|
|
70
|
+
onClick={loadMoreOrders}
|
|
71
|
+
/>
|
|
72
|
+
</View>
|
|
73
|
+
)}
|
|
74
|
+
</>
|
|
75
|
+
)}
|
|
76
|
+
|
|
77
|
+
{ordersGroup.loading && (
|
|
78
|
+
<View style={{ marginTop: 20 }}>
|
|
79
|
+
{[...Array(6)].map((_, i) => (
|
|
80
|
+
<Placeholder key={i} Animation={Fade}>
|
|
81
|
+
<View style={{ width: '100%', flexDirection: 'row' }}>
|
|
82
|
+
<PlaceholderLine width={20} height={70} style={{ marginRight: 20, marginBottom: 20 }} />
|
|
83
|
+
<Placeholder>
|
|
84
|
+
<PlaceholderLine width={30} style={{ marginTop: 5 }} />
|
|
85
|
+
<PlaceholderLine width={50} />
|
|
86
|
+
<PlaceholderLine width={20} />
|
|
87
|
+
</Placeholder>
|
|
88
|
+
</View>
|
|
89
|
+
</Placeholder>
|
|
90
|
+
))}
|
|
91
|
+
</View>
|
|
92
|
+
)}
|
|
93
|
+
|
|
94
|
+
{!ordersGroup.loading && ordersGroup.all?.orders?.length === 0 && (
|
|
95
|
+
<View style={{ height: height * 0.7, justifyContent: 'center' }}>
|
|
96
|
+
<NotFoundSource
|
|
97
|
+
content={t('NO_RESULTS_FOUND', 'Sorry, no results found')}
|
|
98
|
+
image={imageFails}
|
|
99
|
+
/>
|
|
100
|
+
</View>
|
|
101
|
+
)}
|
|
102
|
+
</>
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export const OrdersListing = (props: any) => {
|
|
107
|
+
const ordersProps = {
|
|
108
|
+
...props,
|
|
109
|
+
UIComponent: OrdersListingUI,
|
|
110
|
+
}
|
|
111
|
+
return <OrderVerticalList {...ordersProps} />
|
|
112
|
+
}
|
|
@@ -123,6 +123,12 @@ const ProfileListUI = (props: ProfileParams) => {
|
|
|
123
123
|
onNavigationRedirect: (route: string, params: any) => props.navigation.navigate(route, params)
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
const getName = () => {
|
|
127
|
+
return user?.lastname
|
|
128
|
+
? `${user?.name} ${user?.lastname}`
|
|
129
|
+
: user?.name
|
|
130
|
+
}
|
|
131
|
+
|
|
126
132
|
return (
|
|
127
133
|
<View style={{ flex: 1, height: height - top - bottom - 62 }}>
|
|
128
134
|
<OText size={24} color={theme.colors.textNormal} lineHeight={36} weight={Platform.OS === 'ios' ? '600' : 'bold'} style={{ marginTop: 14, marginBottom: 24, ...styles.pagePadding }}>{t('PROFILE', 'Profile')}</OText>
|
|
@@ -136,7 +142,7 @@ const ProfileListUI = (props: ProfileParams) => {
|
|
|
136
142
|
/>
|
|
137
143
|
</View>
|
|
138
144
|
<View style={{ flexBasis: '70%' }}>
|
|
139
|
-
<OText size={20} lineHeight={30} weight={Platform.OS === 'ios' ? '500' : 'bold'} color={theme.colors.textNormal}>{
|
|
145
|
+
<OText size={20} lineHeight={30} weight={Platform.OS === 'ios' ? '500' : 'bold'} color={theme.colors.textNormal}>{getName()}</OText>
|
|
140
146
|
<TouchableOpacity onPress={() => navigation.navigate('ProfileForm', { ...detailProps })}>
|
|
141
147
|
<OText size={12} lineHeight={18} color={theme.colors.primary} style={{ textDecorationLine: 'underline' }}>{t('VIEW_ACCOUNT', 'View account')}</OText>
|
|
142
148
|
</TouchableOpacity>
|
|
@@ -219,4 +219,35 @@ export const getOrderStatus = (status: number) => {
|
|
|
219
219
|
default:
|
|
220
220
|
return status
|
|
221
221
|
}
|
|
222
|
-
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export const getTextOrderStatus = (s: string, t: any) => {
|
|
225
|
+
const status = parseInt(s)
|
|
226
|
+
const orderStatus = [
|
|
227
|
+
{ key: 0, value: t('PENDING', 'Pending') },
|
|
228
|
+
{ key: 1, value: t('COMPLETED', 'Completed') },
|
|
229
|
+
{ key: 2, value: t('REJECTED', 'Rejected') },
|
|
230
|
+
{ key: 3, value: t('DRIVER_IN_BUSINESS', 'Driver in business') },
|
|
231
|
+
{ key: 4, value: t('PREPARATION_COMPLETED', 'Preparation Completed') },
|
|
232
|
+
{ key: 5, value: t('REJECTED_BY_BUSINESS', 'Rejected by business') },
|
|
233
|
+
{ key: 6, value: t('REJECTED_BY_DRIVER', 'Rejected by Driver') },
|
|
234
|
+
{ key: 7, value: t('ACCEPTED_BY_BUSINESS', 'Accepted by business') },
|
|
235
|
+
{ key: 8, value: t('ACCEPTED_BY_DRIVER', 'Accepted by driver') },
|
|
236
|
+
{ key: 9, value: t('PICK_UP_COMPLETED_BY_DRIVER', 'Pick up completed by driver') },
|
|
237
|
+
{ key: 10, value: t('PICK_UP_FAILED_BY_DRIVER', 'Pick up Failed by driver') },
|
|
238
|
+
{ key: 11, value: t('DELIVERY_COMPLETED_BY_DRIVER', 'Delivery completed by driver') },
|
|
239
|
+
{ key: 12, value: t('DELIVERY_FAILED_BY_DRIVER', 'Delivery Failed by driver') },
|
|
240
|
+
{ key: 13, value: t('PREORDER', 'PreOrder') },
|
|
241
|
+
{ key: 14, value: t('ORDER_NOT_READY', 'Order not ready') },
|
|
242
|
+
{ key: 15, value: t('ORDER_PICKEDUP_COMPLETED_BY_CUSTOMER', 'Order picked up completed by customer') },
|
|
243
|
+
{ key: 16, value: t('CANCELLED_BY_CUSTOMER', 'Cancelled by customer') },
|
|
244
|
+
{ key: 17, value: t('ORDER_NOT_PICKEDUP_BY_CUSTOMER', 'Order not picked up by customer') },
|
|
245
|
+
{ key: 18, value: t('DRIVER_ALMOST_ARRIVED_TO_BUSINESS', 'Driver almost arrived to business') },
|
|
246
|
+
{ key: 19, value: t('DRIVER_ALMOST_ARRIVED_TO_CUSTOMER', 'Driver almost arrived to customer') },
|
|
247
|
+
{ key: 20, value: t('ORDER_CUSTOMER_ALMOST_ARRIVED_BUSINESS', 'Customer almost arrived to business') },
|
|
248
|
+
{ key: 21, value: t('ORDER_CUSTOMER_ARRIVED_BUSINESS', 'Customer arrived to business') }
|
|
249
|
+
]
|
|
250
|
+
|
|
251
|
+
const objectStatus = orderStatus.find((o) => o.key === status)
|
|
252
|
+
return objectStatus && objectStatus
|
|
253
|
+
}
|