@infosoftas/s4-orders-js-sdk 0.1.13 → 0.1.15
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/README.md +5 -1
- package/package.json +1 -1
- package/src/App.tsx +6 -7
- package/src/components/EHFForm/EHFForm.tsx +4 -3
- package/src/components/OIOForm/OIOForm.tsx +4 -3
- package/src/components/OrderDenialModal/OrderDenialModal.tsx +5 -7
- package/src/components/OrderForm/OrderForm.tsx +6 -3
- package/src/hooks/useOrderForm.tsx +22 -2
- package/src/types/general.ts +5 -1
- package/src/utils/order.helper.ts +10 -0
package/README.md
CHANGED
|
@@ -133,7 +133,11 @@ type ConfigType = {
|
|
|
133
133
|
errorValidationBlockingOffersMsg?: string;
|
|
134
134
|
paymentMethodNotAllowedMsg?: string;
|
|
135
135
|
invoiceLookupNotFoundText?: string;
|
|
136
|
-
|
|
136
|
+
orderDenialOfferBaseText?: string;
|
|
137
|
+
orderDenialOfferWithFallbackText?: string;
|
|
138
|
+
orderDenialAmountText?: string;
|
|
139
|
+
fetchDenialFallbackOffer?: (organizationId: string) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
140
|
+
termsAndConditionsText?: string | ReactNode;
|
|
137
141
|
};
|
|
138
142
|
}
|
|
139
143
|
```
|
package/package.json
CHANGED
package/src/App.tsx
CHANGED
|
@@ -74,7 +74,6 @@ const App: FC<ConfigType> = ({
|
|
|
74
74
|
'Hello again!\n\nLooks like you already tried this offer, but we would like to keep you with us.\n\nTherefore we got a new great offer for you:',
|
|
75
75
|
orderDenialAmountText:
|
|
76
76
|
'We are sorry, but you do not meet the requirements for this offer. Please contact customer service for more information.',
|
|
77
|
-
orderDenialFallbackOffer: undefined,
|
|
78
77
|
paymentMethodNotAllowedMsg: '',
|
|
79
78
|
invoiceLookupNotFoundText:
|
|
80
79
|
'There was no recipient found for the given information',
|
|
@@ -399,8 +398,8 @@ const App: FC<ConfigType> = ({
|
|
|
399
398
|
orderDenialAmountText={
|
|
400
399
|
settings?.orderDenialAmountText
|
|
401
400
|
}
|
|
402
|
-
|
|
403
|
-
settings?.
|
|
401
|
+
fetchDenialFallbackOffer={
|
|
402
|
+
settings?.fetchDenialFallbackOffer
|
|
404
403
|
}
|
|
405
404
|
/>
|
|
406
405
|
)}
|
|
@@ -459,8 +458,8 @@ const App: FC<ConfigType> = ({
|
|
|
459
458
|
orderDenialAmountText={
|
|
460
459
|
settings?.orderDenialAmountText
|
|
461
460
|
}
|
|
462
|
-
|
|
463
|
-
settings?.
|
|
461
|
+
fetchDenialFallbackOffer={
|
|
462
|
+
settings?.fetchDenialFallbackOffer
|
|
464
463
|
}
|
|
465
464
|
/>
|
|
466
465
|
)}
|
|
@@ -533,8 +532,8 @@ const App: FC<ConfigType> = ({
|
|
|
533
532
|
orderDenialAmountText={
|
|
534
533
|
settings?.orderDenialAmountText
|
|
535
534
|
}
|
|
536
|
-
|
|
537
|
-
settings?.
|
|
535
|
+
fetchDenialFallbackOffer={
|
|
536
|
+
settings?.fetchDenialFallbackOffer
|
|
538
537
|
}
|
|
539
538
|
termsAndConditionsText={
|
|
540
539
|
settings?.termsAndConditionsText
|
|
@@ -58,7 +58,7 @@ type Props = {
|
|
|
58
58
|
orderDenialOfferBaseText?: string;
|
|
59
59
|
orderDenialOfferWithFallbackText?: string;
|
|
60
60
|
orderDenialAmountText?: string;
|
|
61
|
-
|
|
61
|
+
fetchDenialFallbackOffer?: (organizationId: string) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
type EHFFormInputsType = {
|
|
@@ -101,7 +101,7 @@ const EHFForm: FC<Props> = ({
|
|
|
101
101
|
orderDenialOfferBaseText,
|
|
102
102
|
orderDenialOfferWithFallbackText,
|
|
103
103
|
orderDenialAmountText,
|
|
104
|
-
|
|
104
|
+
fetchDenialFallbackOffer,
|
|
105
105
|
}) => {
|
|
106
106
|
const methods = useForm<EHFFormInputsType>({
|
|
107
107
|
defaultValues: {
|
|
@@ -130,6 +130,7 @@ const EHFForm: FC<Props> = ({
|
|
|
130
130
|
errorsMsg,
|
|
131
131
|
orderDenialType,
|
|
132
132
|
orderDenialMessage,
|
|
133
|
+
orderDenialFallbackOffer,
|
|
133
134
|
dismissOrderDenial,
|
|
134
135
|
} = useOrderForm({
|
|
135
136
|
callback,
|
|
@@ -156,7 +157,7 @@ const EHFForm: FC<Props> = ({
|
|
|
156
157
|
orderDenialOfferBaseText,
|
|
157
158
|
orderDenialOfferWithFallbackText,
|
|
158
159
|
orderDenialAmountText,
|
|
159
|
-
|
|
160
|
+
fetchDenialFallbackOffer,
|
|
160
161
|
});
|
|
161
162
|
|
|
162
163
|
const onSubmit: SubmitHandler<EHFFormInputsType> = async (
|
|
@@ -59,7 +59,7 @@ type Props = {
|
|
|
59
59
|
orderDenialOfferBaseText?: string;
|
|
60
60
|
orderDenialOfferWithFallbackText?: string;
|
|
61
61
|
orderDenialAmountText?: string;
|
|
62
|
-
|
|
62
|
+
fetchDenialFallbackOffer?: (organizationId: string) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
type OIOFormInputsType = {
|
|
@@ -105,7 +105,7 @@ const OIOForm: FC<Props> = ({
|
|
|
105
105
|
orderDenialOfferBaseText,
|
|
106
106
|
orderDenialOfferWithFallbackText,
|
|
107
107
|
orderDenialAmountText,
|
|
108
|
-
|
|
108
|
+
fetchDenialFallbackOffer,
|
|
109
109
|
}) => {
|
|
110
110
|
const methods = useForm<OIOFormInputsType>({
|
|
111
111
|
defaultValues: {
|
|
@@ -138,6 +138,7 @@ const OIOForm: FC<Props> = ({
|
|
|
138
138
|
errorsMsg,
|
|
139
139
|
orderDenialType,
|
|
140
140
|
orderDenialMessage,
|
|
141
|
+
orderDenialFallbackOffer,
|
|
141
142
|
dismissOrderDenial,
|
|
142
143
|
} = useOrderForm({
|
|
143
144
|
callback,
|
|
@@ -164,7 +165,7 @@ const OIOForm: FC<Props> = ({
|
|
|
164
165
|
orderDenialOfferBaseText,
|
|
165
166
|
orderDenialOfferWithFallbackText,
|
|
166
167
|
orderDenialAmountText,
|
|
167
|
-
|
|
168
|
+
fetchDenialFallbackOffer,
|
|
168
169
|
});
|
|
169
170
|
|
|
170
171
|
const onSubmit: SubmitHandler<OIOFormInputsType> = async (
|
|
@@ -42,13 +42,11 @@ const OrderDenialModal: FC<Props> = ({
|
|
|
42
42
|
aria-modal="true"
|
|
43
43
|
aria-label="Order denial modal"
|
|
44
44
|
>
|
|
45
|
-
<p
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</span>
|
|
51
|
-
))}
|
|
45
|
+
<p
|
|
46
|
+
className="sdk-order-denial-modal-text"
|
|
47
|
+
style={{ whiteSpace: 'pre-line' }}
|
|
48
|
+
>
|
|
49
|
+
{message?.replace(/\\n/g, '\n')}
|
|
52
50
|
</p>
|
|
53
51
|
{offer?.title && offer?.templatePackageId && (
|
|
54
52
|
<div className="sdk-order-denial-offer-box">
|
|
@@ -76,7 +76,9 @@ type Props = {
|
|
|
76
76
|
orderDenialOfferBaseText?: string;
|
|
77
77
|
orderDenialOfferWithFallbackText?: string;
|
|
78
78
|
orderDenialAmountText?: string;
|
|
79
|
-
|
|
79
|
+
fetchDenialFallbackOffer?: (
|
|
80
|
+
organizationId: string
|
|
81
|
+
) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
80
82
|
termsAndConditionsText?: string | ReactNode;
|
|
81
83
|
};
|
|
82
84
|
|
|
@@ -127,7 +129,7 @@ const OrderForm: FC<Props> = ({
|
|
|
127
129
|
orderDenialOfferBaseText,
|
|
128
130
|
orderDenialOfferWithFallbackText,
|
|
129
131
|
orderDenialAmountText,
|
|
130
|
-
|
|
132
|
+
fetchDenialFallbackOffer,
|
|
131
133
|
requireTermsAcceptance,
|
|
132
134
|
termsAndConditionsText,
|
|
133
135
|
}) => {
|
|
@@ -205,6 +207,7 @@ const OrderForm: FC<Props> = ({
|
|
|
205
207
|
errorsMsg,
|
|
206
208
|
orderDenialType,
|
|
207
209
|
orderDenialMessage,
|
|
210
|
+
orderDenialFallbackOffer,
|
|
208
211
|
dismissOrderDenial,
|
|
209
212
|
} = useOrderForm({
|
|
210
213
|
callback,
|
|
@@ -230,7 +233,7 @@ const OrderForm: FC<Props> = ({
|
|
|
230
233
|
orderDenialOfferBaseText,
|
|
231
234
|
orderDenialOfferWithFallbackText,
|
|
232
235
|
orderDenialAmountText,
|
|
233
|
-
|
|
236
|
+
fetchDenialFallbackOffer,
|
|
234
237
|
});
|
|
235
238
|
|
|
236
239
|
const onSubmit: SubmitHandler<OrderFormInputsType> = async (
|
|
@@ -57,7 +57,9 @@ type Props = {
|
|
|
57
57
|
orderDenialOfferBaseText?: string;
|
|
58
58
|
orderDenialOfferWithFallbackText?: string;
|
|
59
59
|
orderDenialAmountText?: string;
|
|
60
|
-
|
|
60
|
+
fetchDenialFallbackOffer?: (
|
|
61
|
+
organizationId: string
|
|
62
|
+
) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
type DenialErrorType = {
|
|
@@ -127,7 +129,7 @@ const useOrderForm = ({
|
|
|
127
129
|
orderDenialOfferBaseText,
|
|
128
130
|
orderDenialOfferWithFallbackText,
|
|
129
131
|
orderDenialAmountText,
|
|
130
|
-
|
|
132
|
+
fetchDenialFallbackOffer,
|
|
131
133
|
}: Props) => {
|
|
132
134
|
const [loading, setLoading] = useState<boolean>(false);
|
|
133
135
|
const [apiErrorMsg, setApiErrorMsg] = useState<string>('');
|
|
@@ -135,12 +137,16 @@ const useOrderForm = ({
|
|
|
135
137
|
const [orderDenialType, setOrderDenialType] = useState<
|
|
136
138
|
'offer' | 'amount' | null
|
|
137
139
|
>(null);
|
|
140
|
+
const [orderDenialFallbackOffer, setOrderDenialFallbackOffer] = useState<
|
|
141
|
+
OrderDenialFallbackOfferType | undefined
|
|
142
|
+
>();
|
|
138
143
|
const [submittedOrderData, setSubmittedOrderData] =
|
|
139
144
|
useState<OrderFormInputsType | null>(null);
|
|
140
145
|
const fallbackOfferTemplatePackageIdRef = useRef<string | null>(null);
|
|
141
146
|
|
|
142
147
|
const dismissOrderDenial = () => {
|
|
143
148
|
setOrderDenialType(null);
|
|
149
|
+
setOrderDenialFallbackOffer(undefined);
|
|
144
150
|
};
|
|
145
151
|
|
|
146
152
|
const getOrderDenialMessage = () => {
|
|
@@ -311,8 +317,21 @@ const useOrderForm = ({
|
|
|
311
317
|
if (detectedDenialType) {
|
|
312
318
|
setApiErrorMsg('');
|
|
313
319
|
setErrorsMsg([]);
|
|
320
|
+
setOrderDenialFallbackOffer(undefined);
|
|
314
321
|
setOrderDenialType(detectedDenialType);
|
|
315
322
|
callback(null);
|
|
323
|
+
if (
|
|
324
|
+
detectedDenialType === 'offer' &&
|
|
325
|
+
fetchDenialFallbackOffer
|
|
326
|
+
) {
|
|
327
|
+
void fetchDenialFallbackOffer(organizationId)
|
|
328
|
+
.then((offer) => {
|
|
329
|
+
setOrderDenialFallbackOffer(offer);
|
|
330
|
+
})
|
|
331
|
+
.catch(() => {
|
|
332
|
+
setOrderDenialFallbackOffer(undefined);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
316
335
|
return;
|
|
317
336
|
}
|
|
318
337
|
|
|
@@ -365,6 +384,7 @@ const useOrderForm = ({
|
|
|
365
384
|
errorsMsg,
|
|
366
385
|
orderDenialType,
|
|
367
386
|
orderDenialMessage: getOrderDenialMessage(),
|
|
387
|
+
orderDenialFallbackOffer,
|
|
368
388
|
dismissOrderDenial,
|
|
369
389
|
};
|
|
370
390
|
};
|
package/src/types/general.ts
CHANGED
|
@@ -34,6 +34,8 @@ export type ContactRequestType = {
|
|
|
34
34
|
city?: string;
|
|
35
35
|
zip?: string;
|
|
36
36
|
careOf?: string;
|
|
37
|
+
organizationNumber?: string;
|
|
38
|
+
gln?: string;
|
|
37
39
|
};
|
|
38
40
|
|
|
39
41
|
export type OrderDenialFallbackOfferType = {
|
|
@@ -97,7 +99,9 @@ export type ConfigType = {
|
|
|
97
99
|
orderDenialOfferBaseText?: string;
|
|
98
100
|
orderDenialOfferWithFallbackText?: string;
|
|
99
101
|
orderDenialAmountText?: string;
|
|
100
|
-
|
|
102
|
+
fetchDenialFallbackOffer?: (
|
|
103
|
+
organizationId: string
|
|
104
|
+
) => Promise<OrderDenialFallbackOfferType | undefined>;
|
|
101
105
|
termsAndConditionsText?: string | ReactNode;
|
|
102
106
|
};
|
|
103
107
|
};
|
|
@@ -112,6 +112,11 @@ export const prepareContactModel = ({
|
|
|
112
112
|
data,
|
|
113
113
|
orderFields,
|
|
114
114
|
}: ContactModelType) => {
|
|
115
|
+
const organizationNumber =
|
|
116
|
+
data.paymentMethod === PaymentMethodEnum.OIO
|
|
117
|
+
? data.cvr?.trim() || undefined
|
|
118
|
+
: data.organizationNumber?.trim() || undefined;
|
|
119
|
+
|
|
115
120
|
const model = {
|
|
116
121
|
name: orderFields.find((i) => i.name === 'name')
|
|
117
122
|
? data.name?.trim() || undefined
|
|
@@ -143,6 +148,11 @@ export const prepareContactModel = ({
|
|
|
143
148
|
careOf: orderFields.find((i) => i.name === 'careOf')
|
|
144
149
|
? data.careOf?.trim() || undefined
|
|
145
150
|
: undefined,
|
|
151
|
+
organizationNumber,
|
|
152
|
+
gln:
|
|
153
|
+
data.paymentMethod === PaymentMethodEnum.OIO
|
|
154
|
+
? data.gln?.trim() || undefined
|
|
155
|
+
: undefined,
|
|
146
156
|
};
|
|
147
157
|
|
|
148
158
|
return model;
|