@akinon/pz-credit-payment 2.0.0-beta.0 → 2.0.0-beta.2
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/CHANGELOG.md +8 -0
- package/package.json +9 -9
- package/src/index.tsx +34 -26
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
{
|
2
2
|
"name": "@akinon/pz-credit-payment",
|
3
|
-
"version": "2.0.0-beta.
|
3
|
+
"version": "2.0.0-beta.2",
|
4
4
|
"license": "MIT",
|
5
5
|
"main": "src/index.tsx",
|
6
6
|
"peerDependencies": {
|
7
|
-
"react": "^
|
8
|
-
"react-dom": "^
|
7
|
+
"react": "^19.0.0",
|
8
|
+
"react-dom": "^19.0.0"
|
9
9
|
},
|
10
10
|
"devDependencies": {
|
11
|
-
"@types/node": "^
|
12
|
-
"@types/react": "^
|
13
|
-
"@types/react-dom": "^
|
14
|
-
"react": "^
|
15
|
-
"react-dom": "^
|
16
|
-
"typescript": "^
|
11
|
+
"@types/node": "^22.10.2",
|
12
|
+
"@types/react": "^19.0.2",
|
13
|
+
"@types/react-dom": "^19.0.2",
|
14
|
+
"react": "^19.0.0",
|
15
|
+
"react-dom": "^19.0.0",
|
16
|
+
"typescript": "^5.7.2",
|
17
17
|
"react-hook-form": "7.31.3",
|
18
18
|
"@hookform/resolvers": "2.9.0"
|
19
19
|
}
|
package/src/index.tsx
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
import React from 'react';
|
3
2
|
import { yupResolver } from '@hookform/resolvers/yup';
|
4
3
|
import { useEffect, useState } from 'react';
|
@@ -38,14 +37,12 @@ const creditPaymentFormSchema = (requiredFieldMessage) =>
|
|
38
37
|
agreement: yup.boolean().oneOf([true], requiredFieldMessage)
|
39
38
|
});
|
40
39
|
|
41
|
-
export const CreditPayment = (
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
}: CreditPaymentProps
|
48
|
-
) => {
|
40
|
+
export const CreditPayment = ({
|
41
|
+
translations,
|
42
|
+
agreementCheckbox,
|
43
|
+
titleClassName,
|
44
|
+
buttonClassName
|
45
|
+
}: CreditPaymentProps) => {
|
49
46
|
const _translations = {
|
50
47
|
...defaultTranslations,
|
51
48
|
...translations
|
@@ -57,21 +54,22 @@ export const CreditPayment = (
|
|
57
54
|
register,
|
58
55
|
formState: { errors }
|
59
56
|
} = useForm({
|
60
|
-
resolver: yupResolver(
|
57
|
+
resolver: yupResolver(
|
58
|
+
creditPaymentFormSchema(_translations.requiredFieldMessage)
|
59
|
+
)
|
61
60
|
});
|
62
61
|
const [formError, setFormError] = useState<string | null>(null);
|
63
62
|
|
64
63
|
const [setCreditPaymentOption] = useSetCreditPaymentOptionMutation();
|
65
64
|
const [confirmationCreditPayment] = useConfirmationCreditPaymentMutation();
|
66
65
|
|
67
|
-
const { creditPaymentOptions, selectedCreditPaymentPk, preOrder } =
|
68
|
-
(state: RootState) => state.checkout
|
69
|
-
);
|
66
|
+
const { creditPaymentOptions, selectedCreditPaymentPk, preOrder } =
|
67
|
+
useAppSelector((state: RootState) => state.checkout);
|
70
68
|
|
71
69
|
const onSubmit: SubmitHandler<any> = async () => {
|
72
70
|
const response = await confirmationCreditPayment().unwrap();
|
73
71
|
|
74
|
-
if(response?.errors?.non_field_errors) {
|
72
|
+
if (response?.errors?.non_field_errors) {
|
75
73
|
setFormError(response?.errors?.non_field_errors);
|
76
74
|
return;
|
77
75
|
}
|
@@ -81,17 +79,24 @@ export const CreditPayment = (
|
|
81
79
|
if (creditPaymentOptions?.length && !preOrder.credit_payment_option) {
|
82
80
|
setCreditPaymentOption(creditPaymentOptions[0].pk);
|
83
81
|
}
|
84
|
-
}, [
|
82
|
+
}, [
|
83
|
+
creditPaymentOptions,
|
84
|
+
selectedCreditPaymentPk,
|
85
|
+
preOrder.credit_payment_option,
|
86
|
+
setCreditPaymentOption
|
87
|
+
]);
|
85
88
|
|
86
89
|
return (
|
87
90
|
<form className="flex flex-col w-full" onSubmit={handleSubmit(onSubmit)}>
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
91
|
+
<div
|
92
|
+
className={clsx(
|
93
|
+
twMerge(
|
94
|
+
'flex justify-start items-center border-solid border-gray-400 px-4 py-2 sm:px-6 sm:py-3 sm:min-h-15',
|
95
|
+
'text-black-800 text-lg font-medium sm:text-2xl',
|
96
|
+
titleClassName
|
93
97
|
)
|
94
|
-
|
98
|
+
)}
|
99
|
+
>
|
95
100
|
{_translations.title}
|
96
101
|
</div>
|
97
102
|
|
@@ -105,7 +110,10 @@ export const CreditPayment = (
|
|
105
110
|
<Radio
|
106
111
|
type="radio"
|
107
112
|
value={bank.pk}
|
108
|
-
checked={
|
113
|
+
checked={
|
114
|
+
bank.pk === selectedCreditPaymentPk ||
|
115
|
+
preOrder.credit_payment_option?.pk === bank.pk
|
116
|
+
}
|
109
117
|
{...register('paymentType')}
|
110
118
|
onChange={() => {
|
111
119
|
setCreditPaymentOption(bank.pk);
|
@@ -123,12 +131,13 @@ export const CreditPayment = (
|
|
123
131
|
|
124
132
|
<div className="px-4 sm:px-6">
|
125
133
|
<div className="flex items-start flex-col py-4 space-y-4">
|
126
|
-
|
134
|
+
{agreementCheckbox &&
|
127
135
|
React.cloneElement(agreementCheckbox, {
|
136
|
+
// @ts-ignore
|
128
137
|
control,
|
129
138
|
error: errors.agreement,
|
130
139
|
fieldId: 'agreement'
|
131
|
-
|
140
|
+
})}
|
132
141
|
|
133
142
|
{formError && (
|
134
143
|
<div className="w-full text-xs text-start px-1 mt-3 text-error">
|
@@ -143,7 +152,7 @@ export const CreditPayment = (
|
|
143
152
|
twMerge(
|
144
153
|
'group uppercase mt-4 inline-flex items-center justify-center w-full',
|
145
154
|
buttonClassName
|
146
|
-
|
155
|
+
)
|
147
156
|
)}
|
148
157
|
>
|
149
158
|
<span>{_translations.buttonName}</span>
|
@@ -159,4 +168,3 @@ export const CreditPayment = (
|
|
159
168
|
</form>
|
160
169
|
);
|
161
170
|
};
|
162
|
-
|