@akinon/pz-gpay 1.19.4 → 1.20.0

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @akinon/pz-gpay
2
2
 
3
+ ## 1.20.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6d4d5cb: ZERO-2420: Add error handling
8
+
3
9
  ## 1.19.4
4
10
 
5
11
  ## 1.19.3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akinon/pz-gpay",
3
- "version": "1.19.4",
3
+ "version": "1.20.0",
4
4
  "license": "MIT",
5
5
  "main": "src/index.tsx",
6
6
  "peerDependencies": {
@@ -13,6 +13,7 @@ import {
13
13
  import { twMerge } from 'tailwind-merge';
14
14
  import { yupResolver } from '@hookform/resolvers/yup';
15
15
  import { Button } from '@akinon/next/components/button';
16
+ import { getPosError } from '@akinon/next/utils';
16
17
 
17
18
  const gpayFormSchema = yup.object();
18
19
 
@@ -35,6 +36,7 @@ type GpayOptionProps = {
35
36
 
36
37
  export function GPayOption(props: GpayOptionProps) {
37
38
  const [formError, setFormError] = useState(null);
39
+ const [errors, setErrors] = useState([]);
38
40
 
39
41
  const { preOrder } = useAppSelector((state: RootState) => state.checkout);
40
42
  const isPaymentStepBusy = useAppSelector(
@@ -65,6 +67,14 @@ export function GPayOption(props: GpayOptionProps) {
65
67
 
66
68
  // this is necessary because we need to set the payment_option after the redirect
67
69
  useEffect(() => {
70
+ const posErrors = getPosError();
71
+
72
+ Object.keys(posErrors ?? {})
73
+ .filter((key) => key !== 'gpinstallment')
74
+ .forEach((item) => {
75
+ setErrors((prev) => [...prev, posErrors[item]]);
76
+ });
77
+
68
78
  setPaymentOption(preOrder.payment_option.pk);
69
79
  // eslint-disable-next-line react-hooks/exhaustive-deps
70
80
  }, []);
@@ -107,6 +117,13 @@ export function GPayOption(props: GpayOptionProps) {
107
117
  {formError}
108
118
  </div>
109
119
  )}
120
+ {errors && (
121
+ <div className="w-full text-xs text-start px-1 mt-3 text-error">
122
+ {errors.map((error) => (
123
+ <div key={error}>{error}</div>
124
+ ))}
125
+ </div>
126
+ )}
110
127
  </form>
111
128
  );
112
129
  }