ordering-ui-react-native 0.22.26 → 0.22.28
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
CHANGED
|
@@ -47,6 +47,7 @@ export const OrderItem = React.memo((props: any) => {
|
|
|
47
47
|
timer: configState?.configs?.order_deadlines_enabled?.value === '1',
|
|
48
48
|
slaBar: configState?.configs?.order_deadlines_enabled?.value === '1',
|
|
49
49
|
})
|
|
50
|
+
const showExternalId = configState?.configs?.change_order_id?.value === '1'
|
|
50
51
|
|
|
51
52
|
const IS_PORTRAIT = orientationState.orientation === PORTRAIT
|
|
52
53
|
const platformIOS = Platform as PlatformIOSStatic
|
|
@@ -76,7 +77,7 @@ export const OrderItem = React.memo((props: any) => {
|
|
|
76
77
|
marginLeft: 3,
|
|
77
78
|
},
|
|
78
79
|
title: {
|
|
79
|
-
marginBottom: 6,
|
|
80
|
+
marginBottom: showExternalId ? 0 : 6,
|
|
80
81
|
fontFamily: 'Poppins',
|
|
81
82
|
fontStyle: 'normal',
|
|
82
83
|
fontWeight: '600',
|
|
@@ -84,7 +85,7 @@ export const OrderItem = React.memo((props: any) => {
|
|
|
84
85
|
color: theme.colors.textGray,
|
|
85
86
|
},
|
|
86
87
|
date: {
|
|
87
|
-
marginBottom: 6,
|
|
88
|
+
marginBottom: showExternalId ? 0 : 6,
|
|
88
89
|
fontFamily: 'Poppins',
|
|
89
90
|
fontStyle: 'normal',
|
|
90
91
|
fontWeight: 'normal',
|
|
@@ -179,17 +180,27 @@ export const OrderItem = React.memo((props: any) => {
|
|
|
179
180
|
/>
|
|
180
181
|
</NotificationIcon>
|
|
181
182
|
)}
|
|
182
|
-
<View style={{ flexDirection: 'row'
|
|
183
|
+
<View style={{ flexDirection: `${showExternalId ? 'column' : 'row'}`, flexWrap: 'wrap' }}>
|
|
184
|
+
{!order?.order_group_id && showExternalId && !order?.order_group && (
|
|
185
|
+
<OText
|
|
186
|
+
style={styles.date}
|
|
187
|
+
color={theme.colors.unselectText}
|
|
188
|
+
numberOfLines={1}
|
|
189
|
+
adjustsFontSizeToFit
|
|
190
|
+
>
|
|
191
|
+
{order?.external_id ?? t('NO_EXTERNAL_ID', 'No external Id ') + t('NO', 'Order No.') + order?.id}
|
|
192
|
+
</OText>
|
|
193
|
+
)}
|
|
183
194
|
<OText
|
|
184
195
|
style={styles.date}
|
|
185
196
|
color={theme.colors.unselectText}
|
|
186
197
|
numberOfLines={1}
|
|
187
198
|
adjustsFontSizeToFit
|
|
188
199
|
>
|
|
189
|
-
{(!!order?.order_group_id && order?.order_group && isLogisticOrder
|
|
200
|
+
{(!showExternalId && ((!!order?.order_group_id && order?.order_group && isLogisticOrder
|
|
190
201
|
? `${order?.order_group?.orders?.length} ${t('ORDERS', 'Orders')}`
|
|
191
|
-
: (t('NO', 'Order No.') + order
|
|
192
|
-
) + ' · '}
|
|
202
|
+
: (t('NO', 'Order No.') + order?.id)
|
|
203
|
+
) + ' · '))}
|
|
193
204
|
{order?.delivery_datetime_utc
|
|
194
205
|
? parseDate(order?.delivery_datetime_utc)
|
|
195
206
|
: parseDate(order?.delivery_datetime, { utc: false })}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from '@stripe/stripe-react-native';
|
|
10
10
|
import { useTheme } from 'styled-components/native';
|
|
11
11
|
import { ErrorMessage } from './styles';
|
|
12
|
-
|
|
12
|
+
import { Fade, Placeholder, PlaceholderLine } from 'rn-placeholder';
|
|
13
13
|
import { StripeElementsForm as StripeFormController } from './naked';
|
|
14
14
|
import { OButton, OText } from '../shared';
|
|
15
15
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -17,7 +17,7 @@ import { StripeMethodForm } from '../../../../../src/components/StripeMethodForm
|
|
|
17
17
|
|
|
18
18
|
const StripeElementsFormUI = (props: any) => {
|
|
19
19
|
const {
|
|
20
|
-
|
|
20
|
+
publicKeyState,
|
|
21
21
|
handleSource,
|
|
22
22
|
values,
|
|
23
23
|
businessId,
|
|
@@ -55,7 +55,7 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
55
55
|
const [isKeyboardShow, setIsKeyboardShow] = useState(false);
|
|
56
56
|
const zipCodeEnabled = validationFields?.fields?.card?.zipcode?.enabled
|
|
57
57
|
const zipCodeRequired = validationFields?.fields?.card?.zipcode?.required
|
|
58
|
-
const isToSave = methodsPay?.includes(paymethod) ?
|
|
58
|
+
const isToSave = methodsPay?.includes(paymethod) ? publicKeyState?.key : (publicKeyAddCard || publicKeyState?.key)
|
|
59
59
|
const styles = StyleSheet.create({
|
|
60
60
|
container: {
|
|
61
61
|
width: '100%',
|
|
@@ -201,70 +201,78 @@ const StripeElementsFormUI = (props: any) => {
|
|
|
201
201
|
|
|
202
202
|
return (
|
|
203
203
|
<View style={{ ...styles.container, height: methodsPay?.includes(paymethod) ? 'auto' : height - top - bottom - 60 - (isKeyboardShow ? 250 : 0) }}>
|
|
204
|
-
{
|
|
205
|
-
<
|
|
206
|
-
<
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
{
|
|
212
|
-
<
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
204
|
+
{publicKeyState.loading ? (
|
|
205
|
+
<Placeholder Animation={Fade}>
|
|
206
|
+
<PlaceholderLine height={50} style={{ marginTop: 20 }} />
|
|
207
|
+
</Placeholder>
|
|
208
|
+
) : (
|
|
209
|
+
<>
|
|
210
|
+
{publicKeyState?.key ? (
|
|
211
|
+
<View style={{ flex: 1 }}>
|
|
212
|
+
<StripeProvider
|
|
213
|
+
publishableKey={isToSave}
|
|
214
|
+
merchantIdentifier={merchantId}
|
|
215
|
+
urlScheme={`${urlScheme}://checkout/${cart?.uuid}`}
|
|
216
|
+
>
|
|
217
|
+
{methodsPay?.includes(paymethod) ? (
|
|
218
|
+
<StripeMethodForm
|
|
219
|
+
handleSource={handleSource}
|
|
220
|
+
onCancel={onCancel}
|
|
221
|
+
cart={cart}
|
|
222
|
+
cartTotal={cartTotal}
|
|
223
|
+
setErrors={setErrors}
|
|
224
|
+
paymethod={paymethod}
|
|
225
|
+
devMode={publicKeyState?.key?.includes('test')}
|
|
226
|
+
setMethodPaySupported={setMethodPaySupported}
|
|
227
|
+
placeByMethodPay={placeByMethodPay}
|
|
228
|
+
methodPaySupported={methodPaySupported}
|
|
229
|
+
setPlaceByMethodPay={setPlaceByMethodPay}
|
|
230
|
+
androidAppId={androidAppId}
|
|
231
|
+
/>
|
|
232
|
+
) : (
|
|
233
|
+
<CardField
|
|
234
|
+
postalCodeEnabled={zipCodeEnabled}
|
|
235
|
+
cardStyle={{
|
|
236
|
+
backgroundColor: '#FFFFFF',
|
|
237
|
+
textColor: '#000000',
|
|
238
|
+
borderWidth: 1,
|
|
239
|
+
borderRadius: 8,
|
|
240
|
+
borderColor: theme.colors.border
|
|
241
|
+
}}
|
|
242
|
+
style={{
|
|
243
|
+
width: '100%',
|
|
244
|
+
height: 50,
|
|
245
|
+
marginVertical: 30,
|
|
246
|
+
zIndex: 9999,
|
|
247
|
+
}}
|
|
248
|
+
onCardChange={(cardDetails: any) => setCard(cardDetails)}
|
|
249
|
+
/>
|
|
250
|
+
)}
|
|
251
|
+
</StripeProvider>
|
|
252
|
+
{!!errors && (
|
|
253
|
+
<ErrorMessage>
|
|
254
|
+
<OText
|
|
255
|
+
size={20}
|
|
256
|
+
color={theme.colors.error}
|
|
257
|
+
style={{ marginTop: 20, textAlign: 'center' }}
|
|
258
|
+
>
|
|
259
|
+
{errors}
|
|
260
|
+
</OText>
|
|
261
|
+
</ErrorMessage>
|
|
262
|
+
)}
|
|
263
|
+
</View>
|
|
264
|
+
) : (
|
|
247
265
|
<ErrorMessage>
|
|
248
266
|
<OText
|
|
249
267
|
size={20}
|
|
250
268
|
color={theme.colors.error}
|
|
251
|
-
style={{ marginTop: 20
|
|
269
|
+
style={{ marginTop: 20 }}
|
|
252
270
|
>
|
|
253
|
-
{
|
|
271
|
+
{t('SOMETHING_WRONG', 'Something is wrong!')}
|
|
254
272
|
</OText>
|
|
255
273
|
</ErrorMessage>
|
|
256
274
|
)}
|
|
257
|
-
|
|
258
|
-
) : (
|
|
259
|
-
<ErrorMessage>
|
|
260
|
-
<OText
|
|
261
|
-
size={20}
|
|
262
|
-
color={theme.colors.error}
|
|
263
|
-
style={{ marginTop: 20 }}
|
|
264
|
-
>
|
|
265
|
-
{t('SOMETHING_WRONG', 'Something is wrong!')}
|
|
266
|
-
</OText>
|
|
267
|
-
</ErrorMessage>
|
|
275
|
+
</>
|
|
268
276
|
)}
|
|
269
277
|
{!methodsPay?.includes(paymethod) && (
|
|
270
278
|
<OButton
|
|
@@ -13,6 +13,7 @@ export const StripeElementsForm = (props: any) => {
|
|
|
13
13
|
const [ordering] = useApi();
|
|
14
14
|
const [{ token }] = useSession();
|
|
15
15
|
const [state, setState] = useState({ loading: false, loadingAdd: false, error: null, requirements: null });
|
|
16
|
+
const [publicKeyState, setPublicKeyState] = useState({ key: props.publicKey, loading: true, error: null })
|
|
16
17
|
|
|
17
18
|
const getRequirements = async () => {
|
|
18
19
|
try {
|
|
@@ -85,6 +86,51 @@ export const StripeElementsForm = (props: any) => {
|
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
/**
|
|
90
|
+
* Method to get stripe credentials from API
|
|
91
|
+
*/
|
|
92
|
+
const getCredentials = async () => {
|
|
93
|
+
try {
|
|
94
|
+
setPublicKeyState({
|
|
95
|
+
...publicKeyState,
|
|
96
|
+
loading: true
|
|
97
|
+
})
|
|
98
|
+
const { content: { result, error } } = await ordering.setAccessToken(token).paymentCards().getCredentials()
|
|
99
|
+
if (!error) {
|
|
100
|
+
setPublicKeyState({
|
|
101
|
+
loading: false,
|
|
102
|
+
key: result.publishable,
|
|
103
|
+
error: null
|
|
104
|
+
})
|
|
105
|
+
} else {
|
|
106
|
+
setPublicKeyState({
|
|
107
|
+
...publicKeyState,
|
|
108
|
+
loading: false,
|
|
109
|
+
error: result
|
|
110
|
+
})
|
|
111
|
+
}
|
|
112
|
+
} catch (error) {
|
|
113
|
+
setPublicKeyState({
|
|
114
|
+
...publicKeyState,
|
|
115
|
+
loading: false,
|
|
116
|
+
error: error.message
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
useEffect(() => {
|
|
122
|
+
if (!token) return
|
|
123
|
+
if (props.publicKey) {
|
|
124
|
+
setPublicKeyState({
|
|
125
|
+
loading: false,
|
|
126
|
+
key: props.publicKey,
|
|
127
|
+
error: null
|
|
128
|
+
})
|
|
129
|
+
} else {
|
|
130
|
+
getCredentials()
|
|
131
|
+
}
|
|
132
|
+
}, [token, props.publicKey])
|
|
133
|
+
|
|
88
134
|
useEffect(() => {
|
|
89
135
|
if (!token || state.requirements) return
|
|
90
136
|
toSave && getRequirements()
|
|
@@ -96,6 +142,7 @@ export const StripeElementsForm = (props: any) => {
|
|
|
96
142
|
values={state}
|
|
97
143
|
requirements={state.requirements}
|
|
98
144
|
stripeTokenHandler={stripeTokenHandler}
|
|
145
|
+
publicKeyState={publicKeyState}
|
|
99
146
|
/>
|
|
100
147
|
)
|
|
101
148
|
}
|