@paykka/card-checkout-ui 0.11.6 → 0.13.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.
Files changed (217) hide show
  1. package/dist/card-checkout-ui.js +19 -19
  2. package/dist/card-checkout-ui.umd.cjs +19 -19
  3. package/dist/es/_commonjsHelpers.js +82 -1
  4. package/dist/es/api/index.js +1 -0
  5. package/dist/es/api/modules/address/index.js +9 -9
  6. package/dist/es/api/modules/ali-pay/index.js +10 -49
  7. package/dist/es/api/modules/apple-pay/index.js +13 -59
  8. package/dist/es/api/modules/boost/index.js +8 -48
  9. package/dist/es/api/modules/card/index.js +10 -54
  10. package/dist/es/api/modules/checkout/index.js +11 -9
  11. package/dist/es/api/modules/checkout/map.js +25 -18
  12. package/dist/es/api/modules/encrypted-card/index.js +3 -2
  13. package/dist/es/api/modules/gcash/index.js +8 -48
  14. package/dist/es/api/modules/get-browser-params.js +4 -1
  15. package/dist/es/api/modules/google-pay/index.js +10 -56
  16. package/dist/es/api/modules/grab-pay/index.js +8 -48
  17. package/dist/es/api/modules/index.js +1 -0
  18. package/dist/es/api/modules/line-pay/index.js +8 -48
  19. package/dist/es/api/modules/map.js +17 -11
  20. package/dist/es/api/modules/may-bank-qr-pay/index.js +8 -48
  21. package/dist/es/api/modules/nine-pay/index.js +8 -48
  22. package/dist/es/api/modules/paymaya/index.js +8 -48
  23. package/dist/es/api/modules/risk/index.js +2 -1
  24. package/dist/es/api/modules/sepa/index.js +10 -51
  25. package/dist/es/api/modules/shopee-pay/index.js +8 -48
  26. package/dist/es/api/modules/threeDS/index.js +3 -0
  27. package/dist/es/api/modules/tng-wallet/index.js +8 -48
  28. package/dist/es/api/modules/wechat-pay/index.js +10 -51
  29. package/dist/es/api/modules/zalopay/index.js +16 -0
  30. package/dist/es/api/utils/index.js +59 -0
  31. package/dist/es/components/AddressField/index.js +37 -37
  32. package/dist/es/components/AliPay/index.js +158 -111
  33. package/dist/es/components/ApplePay/index.js +99 -67
  34. package/dist/es/components/Boost/index.js +91 -70
  35. package/dist/es/components/Card/index.js +114 -107
  36. package/dist/es/components/CardSelector/index.js +1 -1
  37. package/dist/es/components/DropIn/index.js +12 -4
  38. package/dist/es/components/EncryptedCard/index.js +6 -2
  39. package/dist/es/components/GooglePay/index.js +94 -60
  40. package/dist/es/components/GrabPay/index.js +91 -70
  41. package/dist/es/components/GuideCard/index.js +10 -7
  42. package/dist/es/components/LinePay/index.js +91 -70
  43. package/dist/es/components/MayBankQRPay/index.js +302 -275
  44. package/dist/es/components/NinePay/index.js +91 -70
  45. package/dist/es/components/SecuredFieldsProvider/index.js +26 -9
  46. package/dist/es/components/SecuredIframe/index.js +40 -61
  47. package/dist/es/components/Sepa/index.js +72 -53
  48. package/dist/es/components/ShopeePay/index.js +91 -70
  49. package/dist/es/components/SubmitButton/index.js +8 -7
  50. package/dist/es/components/TNGWallet/index.js +91 -70
  51. package/dist/es/components/ThreeDS/index.js +32 -7
  52. package/dist/es/components/WechatPay/index.js +151 -102
  53. package/dist/es/components/business/QRCodeModal/QRCodeModal.js +26 -6
  54. package/dist/es/components/index.js +1 -0
  55. package/dist/es/components/internal/Form/FormItem.js +1 -1
  56. package/dist/es/components/internal/Form/util.js +1 -1
  57. package/dist/es/components/internal/Modal/Modal.js +1 -1
  58. package/dist/es/components/internal/Select/Select.js +19 -8
  59. package/dist/es/components/internal/Select/SelectMenu.js +2 -2
  60. package/dist/es/components/internal/Select/SelectMenuItem.js +12 -4
  61. package/dist/es/components/internal/icons/IconError.js +7 -4
  62. package/dist/es/components/internal/icons/IconZalopay.js +47 -0
  63. package/dist/es/components/internal/icons/IconZalopayComplete.js +48 -0
  64. package/dist/es/components/wallets/GCash/GCash.js +80 -56
  65. package/dist/es/components/wallets/Paymaya/Paymaya.js +91 -70
  66. package/dist/es/components/wallets/Zalopay/Zalopay.js +381 -0
  67. package/dist/es/components/wallets/Zalopay/index.js +1 -0
  68. package/dist/es/components/wallets/Zalopay/type.js +1 -0
  69. package/dist/es/components/wallets/Zalopay/zalopay2.js +1 -0
  70. package/dist/es/config.js +5 -5
  71. package/dist/es/constant.js +8 -2
  72. package/dist/es/core/{Address.js → address.js} +8 -16
  73. package/dist/es/core/{PayKKaCheckout.js → checkout.js} +101 -27
  74. package/dist/es/core/create.js +1 -1
  75. package/dist/es/core/query.js +3 -2
  76. package/dist/es/core/{Session.js → session.js} +28 -32
  77. package/dist/es/core/theme.js +65 -0
  78. package/dist/es/core.js +0 -4
  79. package/dist/es/hooks/usePayment.js +14 -0
  80. package/dist/es/i18n/locales/de-DE.js +3 -1
  81. package/dist/es/i18n/locales/en-GB.js +3 -1
  82. package/dist/es/i18n/locales/es-ES.js +3 -1
  83. package/dist/es/i18n/locales/fr-FR.js +3 -1
  84. package/dist/es/i18n/locales/ja-JP.js +3 -1
  85. package/dist/es/i18n/locales/ko-KR.js +3 -1
  86. package/dist/es/i18n/locales/nl-NL.js +3 -1
  87. package/dist/es/i18n/locales/pt-PT.js +3 -1
  88. package/dist/es/i18n/locales/ru-RU.js +3 -1
  89. package/dist/es/i18n/locales/zh-CN.js +3 -1
  90. package/dist/es/i18n/locales/zh-HK.js +3 -1
  91. package/dist/es/i18n/locales/zh-TW.js +3 -1
  92. package/dist/es/index.js +21 -7
  93. package/dist/es/style.css +1 -1
  94. package/dist/es/types/index.js +7 -0
  95. package/dist/es/utils/colors.js +5 -1
  96. package/dist/es/utils/format.js +0 -5
  97. package/dist/es/utils/object.js +31 -1
  98. package/dist/es/utils/payment.js +82 -0
  99. package/dist/es/utils/redirect.js +4 -4
  100. package/dist/es/utils/string.js +10 -0
  101. package/dist/es/utils/system-info/is-ua-webview.js +14 -12
  102. package/dist/es/utils/theme.js +7 -0
  103. package/dist/style.css +1 -1
  104. package/dist/types/api/modules/address/index.d.ts +15 -6
  105. package/dist/types/api/modules/ali-pay/index.d.ts +3 -19
  106. package/dist/types/api/modules/apple-pay/index.d.ts +4 -14
  107. package/dist/types/api/modules/boost/index.d.ts +3 -23
  108. package/dist/types/api/modules/card/index.d.ts +3 -30
  109. package/dist/types/api/modules/checkout/index.d.ts +3 -3
  110. package/dist/types/api/modules/checkout/map.d.ts +3 -3
  111. package/dist/types/api/modules/checkout/type.d.ts +33 -4
  112. package/dist/types/api/modules/gcash/index.d.ts +3 -23
  113. package/dist/types/api/modules/get-browser-params.d.ts +1 -0
  114. package/dist/types/api/modules/google-pay/index.d.ts +3 -13
  115. package/dist/types/api/modules/grab-pay/index.d.ts +3 -23
  116. package/dist/types/api/modules/index.d.ts +1 -0
  117. package/dist/types/api/modules/line-pay/index.d.ts +3 -23
  118. package/dist/types/api/modules/map.d.ts +2 -2
  119. package/dist/types/api/modules/may-bank-qr-pay/index.d.ts +3 -23
  120. package/dist/types/api/modules/nine-pay/index.d.ts +3 -23
  121. package/dist/types/api/modules/paymaya/index.d.ts +3 -23
  122. package/dist/types/api/modules/sepa/index.d.ts +3 -24
  123. package/dist/types/api/modules/shopee-pay/index.d.ts +3 -23
  124. package/dist/types/api/modules/tng-wallet/index.d.ts +3 -23
  125. package/dist/types/api/modules/type.d.ts +74 -21
  126. package/dist/types/api/modules/wechat-pay/index.d.ts +3 -20
  127. package/dist/types/api/modules/zalopay/index.d.ts +4 -0
  128. package/dist/types/api/utils/index.d.ts +48 -0
  129. package/dist/types/components/AddressField/type.d.ts +3 -9
  130. package/dist/types/components/AliPay/AliPay.d.ts +6 -2
  131. package/dist/types/components/AliPay/type.d.ts +15 -2
  132. package/dist/types/components/ApplePay/ApplePay.d.ts +6 -2
  133. package/dist/types/components/ApplePay/type.d.ts +10 -14
  134. package/dist/types/components/ApplePay/utils.d.ts +1 -1
  135. package/dist/types/components/Boost/Boost.d.ts +6 -2
  136. package/dist/types/components/Boost/type.d.ts +2 -24
  137. package/dist/types/components/Card/Card.d.ts +6 -2
  138. package/dist/types/components/Card/type.d.ts +3 -43
  139. package/dist/types/components/DropIn/DropIn.d.ts +6 -2
  140. package/dist/types/components/DropIn/type.d.ts +4 -10
  141. package/dist/types/components/GooglePay/GooglePay.d.ts +6 -2
  142. package/dist/types/components/GooglePay/createGooglePay.d.ts +2 -1
  143. package/dist/types/components/GooglePay/type.d.ts +10 -26
  144. package/dist/types/components/GrabPay/GrabPay.d.ts +6 -2
  145. package/dist/types/components/GrabPay/type.d.ts +3 -25
  146. package/dist/types/components/LinePay/LinePay.d.ts +6 -2
  147. package/dist/types/components/LinePay/type.d.ts +3 -25
  148. package/dist/types/components/MayBankQRPay/MayBankQRPay.d.ts +6 -2
  149. package/dist/types/components/MayBankQRPay/type.d.ts +3 -25
  150. package/dist/types/components/NinePay/NinePay.d.ts +6 -2
  151. package/dist/types/components/NinePay/type.d.ts +3 -25
  152. package/dist/types/components/SecuredFieldsProvider/type.d.ts +5 -0
  153. package/dist/types/components/SecuredIframe/HiddenIframe.d.ts +3 -1
  154. package/dist/types/components/Sepa/Sepa.d.ts +6 -2
  155. package/dist/types/components/Sepa/type.d.ts +3 -2
  156. package/dist/types/components/ShopeePay/ShopeePay.d.ts +6 -2
  157. package/dist/types/components/ShopeePay/type.d.ts +3 -25
  158. package/dist/types/components/TNGWallet/TNGWallet.d.ts +6 -2
  159. package/dist/types/components/TNGWallet/type.d.ts +3 -25
  160. package/dist/types/components/ThreeDS/components/ThreeDSAuth/type.d.ts +2 -0
  161. package/dist/types/components/WechatPay/WechatPay.d.ts +6 -2
  162. package/dist/types/components/WechatPay/type.d.ts +15 -2
  163. package/dist/types/components/business/QRCodeModal/type.d.ts +2 -0
  164. package/dist/types/components/index.d.ts +1 -0
  165. package/dist/types/components/internal/Loading/Loading.d.ts +1 -0
  166. package/dist/types/components/internal/Select/SelectMenu.d.ts +1 -1
  167. package/dist/types/components/internal/icons/IconZalopay.d.ts +2 -0
  168. package/dist/types/components/internal/icons/IconZalopayComplete.d.ts +2 -0
  169. package/dist/types/components/internal/icons/index.d.ts +3 -0
  170. package/dist/types/components/wallets/GCash/GCash.d.ts +6 -2
  171. package/dist/types/components/wallets/GCash/type.d.ts +3 -35
  172. package/dist/types/components/wallets/Paymaya/Paymaya.d.ts +6 -2
  173. package/dist/types/components/wallets/Paymaya/type.d.ts +3 -25
  174. package/dist/types/components/wallets/Zalopay/Zalopay.d.ts +10 -0
  175. package/dist/types/components/wallets/Zalopay/index.d.ts +2 -0
  176. package/dist/types/components/wallets/Zalopay/type.d.ts +39 -0
  177. package/dist/types/config.d.ts +2 -4
  178. package/dist/types/constant.d.ts +3 -1
  179. package/dist/types/core/{Address.d.ts → address.d.ts} +23 -24
  180. package/dist/types/core/{PayKKaCheckout.d.ts → checkout.d.ts} +9 -3
  181. package/dist/types/core/context.d.ts +3 -2
  182. package/dist/types/core/index.d.ts +3 -2
  183. package/dist/types/core/query.d.ts +2 -2
  184. package/dist/types/core/session.d.ts +23 -0
  185. package/dist/types/core/theme.d.ts +7 -0
  186. package/dist/types/hooks/index.d.ts +1 -0
  187. package/dist/types/hooks/usePayment.d.ts +8 -0
  188. package/dist/types/i18n/locales/de-DE.d.ts +2 -0
  189. package/dist/types/i18n/locales/en-GB.d.ts +2 -0
  190. package/dist/types/i18n/locales/es-ES.d.ts +2 -0
  191. package/dist/types/i18n/locales/fr-FR.d.ts +2 -0
  192. package/dist/types/i18n/locales/ja-JP.d.ts +2 -0
  193. package/dist/types/i18n/locales/ko-KR.d.ts +2 -0
  194. package/dist/types/i18n/locales/nl-NL.d.ts +2 -0
  195. package/dist/types/i18n/locales/pt-PT.d.ts +2 -0
  196. package/dist/types/i18n/locales/ru-RU.d.ts +2 -0
  197. package/dist/types/i18n/locales/zh-CN.d.ts +2 -0
  198. package/dist/types/i18n/locales/zh-HK.d.ts +2 -0
  199. package/dist/types/i18n/locales/zh-TW.d.ts +2 -0
  200. package/dist/types/index.d.ts +2 -1
  201. package/dist/types/types/index.d.ts +70 -32
  202. package/dist/types/types/message.d.ts +30 -25
  203. package/dist/types/utils/card-brand/index.d.ts +3 -3
  204. package/dist/types/utils/colors.d.ts +1 -0
  205. package/dist/types/utils/index.d.ts +4 -2
  206. package/dist/types/utils/object.d.ts +7 -0
  207. package/dist/types/utils/payment.d.ts +37 -0
  208. package/dist/types/utils/string.d.ts +1 -0
  209. package/dist/types/utils/style.d.ts +1 -1
  210. package/dist/types/utils/system-info/is-ua-webview.d.ts +1 -1
  211. package/dist/types/utils/theme.d.ts +4 -0
  212. package/package.json +3 -3
  213. package/dist/es/utils/deep-freeze.js +0 -13
  214. package/dist/es/utils/obj.js +0 -22
  215. package/dist/types/core/Session.d.ts +0 -16
  216. package/dist/types/utils/deep-freeze.d.ts +0 -1
  217. package/dist/types/utils/obj.d.ts +0 -6
@@ -3,18 +3,17 @@ import { useBEM } from "../../hooks/useBEM.js";
3
3
  import { CoreContext } from "../../core/context.js";
4
4
  import "../../utils/card-brand/brands.js";
5
5
  import "../../utils/system-info/get-browser-info.js";
6
- import { cssVarPrefix, normalizedClass, formatAmount } from "../../utils/format.js";
6
+ import { normalizedClass, formatAmount } from "../../utils/format.js";
7
7
  import { redirectToPayment } from "../../utils/redirect.js";
8
+ import { formatPaymentResult } from "../../utils/payment.js";
8
9
  import { isTimeoutError } from "../../api/http.js";
9
- import { PaymentCategory, COMMON_CLASS_NAME, PaymentMethod, SessionMode } from "../../constant.js";
10
10
  import { getBrowserParams } from "../../api/modules/get-browser-params.js";
11
+ import { PaymentCategory, COMMON_CLASS_NAME, PaymentMethod, SessionMode } from "../../constant.js";
11
12
  import { getShopeePayInfo, shopeePay } from "../../api/modules/shopee-pay/index.js";
12
13
  import { PayKKaError } from "../../core/error.js";
13
- import { hidePaymentButton } from "../../config.js";
14
14
  import { usePayState } from "../../hooks/usePayState.js";
15
15
  import { useRetry } from "../../hooks/useRetry.js";
16
16
  import { createEmailCore, EmailField } from "../EmailField/EmailField.js";
17
- import { createAddressCore } from "../../core/Address.js";
18
17
  import { SubmitButton } from "../SubmitButton/index.js";
19
18
  import "../internal/Form/type.js";
20
19
  import "../internal/Form/context.js";
@@ -26,7 +25,6 @@ import { GuideCard } from "../GuideCard/index.js";
26
25
  const { bem } = useBEM("shopee-pay");
27
26
  const fieldClassNames = bem("field");
28
27
  const ShopeePay = w((props, ref) => {
29
- var _a, _b, _c, _d, _e, _f;
30
28
  const {
31
29
  session,
32
30
  showEmail = false,
@@ -34,7 +32,8 @@ const ShopeePay = w((props, ref) => {
34
32
  redirectMode = "auto",
35
33
  core,
36
34
  autoQuery = true,
37
- showGuideCard = true
35
+ showGuideCard = true,
36
+ hidePaymentButton = false
38
37
  } = props;
39
38
  F(ref, () => ({
40
39
  stopRetry: () => {
@@ -46,26 +45,28 @@ const ShopeePay = w((props, ref) => {
46
45
  startReFetchPayInfo({ timeout });
47
46
  },
48
47
  updateAddress: () => {
49
- var _a2;
48
+ var _a;
50
49
  if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
51
50
  return;
52
- setForm(Object.assign(form, { address: addressState.getAddressState() }));
53
- (_a2 = addressFieldRef.current) == null ? void 0 : _a2.update(addressState.getAddressState());
51
+ const newForm = Object.assign(form, { address: addressCore.getAddressState() });
52
+ setForm(newForm);
53
+ (_a = addressFieldRef.current) == null ? void 0 : _a.update(addressCore.getAddressState());
54
+ validateForm();
54
55
  },
55
56
  updateEmail: () => {
56
- var _a2;
57
+ var _a;
57
58
  if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
58
59
  return;
59
- setForm(Object.assign(form, { email: emailState.email }));
60
- form.email = emailState.email;
61
- (_a2 = emailFieldRef.current) == null ? void 0 : _a2.update(emailState.email);
60
+ const newForm = Object.assign(form, { email: emailState.email });
61
+ setForm(newForm);
62
+ (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
62
63
  validateForm();
63
64
  },
64
65
  payment: () => {
65
66
  hidePaymentButton && onSubmit();
66
67
  }
67
68
  }));
68
- const addressState = createAddressCore();
69
+ const addressCore = core.getAddressCore();
69
70
  const emailState = createEmailCore();
70
71
  const addressFieldRef = A(null);
71
72
  const emailFieldRef = A(null);
@@ -76,13 +77,13 @@ const ShopeePay = w((props, ref) => {
76
77
  const [form, setForm] = h({
77
78
  email: "",
78
79
  address: {
79
- country: "",
80
- province: "",
81
- city: "",
82
- area: "",
83
- postCode: "",
84
- address1: "",
85
- address2: ""
80
+ country: void 0,
81
+ province: void 0,
82
+ city: void 0,
83
+ area: void 0,
84
+ postCode: void 0,
85
+ address1: void 0,
86
+ address2: void 0
86
87
  }
87
88
  });
88
89
  const [validated, setValidated] = h(false);
@@ -100,33 +101,43 @@ const ShopeePay = w((props, ref) => {
100
101
  }
101
102
  setFieldStatus({ ...field });
102
103
  };
104
+ const processOnSuccess = (res) => {
105
+ var _a, _b;
106
+ setSubmitButtonStatus("success");
107
+ (_b = props.onSuccess) == null ? void 0 : _b.call(props, formatPaymentResult({
108
+ ...res,
109
+ returnUrl: (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.returnUrl
110
+ }));
111
+ };
103
112
  y(() => {
104
113
  if (!sessionReady) {
105
114
  return;
106
115
  }
107
- const { bill = {}, paymentMethod = [] } = (session == null ? void 0 : session.checkout) || {};
108
- if (!paymentMethod.includes(PaymentMethod.SHOPEE_PAY)) {
116
+ const { bill = {}, supportMethods = [], country } = (session == null ? void 0 : session.checkout) || {};
117
+ if (!supportMethods.includes(PaymentMethod.SHOPEE_PAY)) {
109
118
  return;
110
119
  }
111
120
  initFieldStatus();
112
121
  setIsCheckoutEnabled(true);
122
+ country && addressCore.setCountry(country);
113
123
  form.email = bill.email ?? "";
124
+ form.address.country = country;
114
125
  if (autoQuery && core.processingPaymentMethod === PaymentMethod.SHOPEE_PAY) {
115
126
  setSubmitButtonStatus("loading");
116
127
  startReFetchPayInfo();
117
128
  }
118
129
  }, [sessionReady]);
119
130
  const processOnError = (error) => {
120
- var _a2;
121
- (_a2 = props.onError) == null ? void 0 : _a2.call(props, error);
131
+ var _a;
132
+ (_a = props.onError) == null ? void 0 : _a.call(props, error);
122
133
  core.resetEnablePaymentMethod();
123
134
  };
124
135
  const onTimeout = q(
125
136
  (message) => {
126
- var _a2;
137
+ var _a;
127
138
  setErrorMsg(message || i18n.get("common.payTimeout"));
128
139
  setSubmitButtonStatus("unSubmit");
129
- (_a2 = props.onTimeout) == null ? void 0 : _a2.call(props);
140
+ (_a = props.onTimeout) == null ? void 0 : _a.call(props);
130
141
  core.resetEnablePaymentMethod();
131
142
  },
132
143
  [i18n, props.onTimeout]
@@ -144,34 +155,49 @@ const ShopeePay = w((props, ref) => {
144
155
  },
145
156
  bill: {
146
157
  email: form.email,
147
- ...form.address,
148
- province: addressState.getLabel(form.address.province, addressState.getProvinceOption()) ?? form.address.province,
149
- city: addressState.getLabel(form.address.city, addressState.getCityOptions()) ?? form.address.city
158
+ addressLine1: form.address.address1,
159
+ addressLine2: form.address.address2,
160
+ postalCode: form.address.postCode,
161
+ country: form.address.country,
162
+ district: form.address.area,
163
+ state: form.address.province ? addressCore.getLabel(form.address.province, addressCore.getProvinceOption()) ?? form.address.province : void 0,
164
+ city: form.address.city ? addressCore.getLabel(form.address.city, addressCore.getCityOptions()) ?? form.address.city : void 0
150
165
  },
151
166
  browser: await getBrowserParams()
152
167
  };
153
168
  };
154
169
  const pay = async (search = false, timeout) => {
155
- var _a2, _b2, _c2, _d2, _e2;
170
+ var _a, _b, _c, _d, _e, _f, _g;
156
171
  try {
157
- const paymentParams = await getPaymentParams();
158
172
  const requestOptions = { locale: i18n.locale, timeout };
159
- const res = search ? await getShopeePayInfo(
160
- { sessionId: session.sessionId, clientKey: session.clientKey },
161
- requestOptions
162
- ) : await shopeePay(paymentParams, props.core, requestOptions);
163
- !search && ((_a2 = props.onSubmitResponse) == null ? void 0 : _a2.call(props, res));
164
- const { status, orderStatus, errorMessage, errorCode, payInfo } = res;
173
+ let res = null;
174
+ if (search) {
175
+ const extraParams = (_b = (_a = core.config)._getExtraParams) == null ? void 0 : _b.call(_a, "query", PaymentMethod.SHOPEE_PAY);
176
+ res = await getShopeePayInfo(
177
+ {
178
+ sessionId: session.sessionId,
179
+ clientKey: session.clientKey,
180
+ paymentMethod: PaymentMethod.SHOPEE_PAY
181
+ },
182
+ extraParams,
183
+ requestOptions
184
+ );
185
+ } else {
186
+ const extraParams = (_d = (_c = core.config)._getExtraParams) == null ? void 0 : _d.call(_c, "payment", PaymentMethod.SHOPEE_PAY);
187
+ res = await shopeePay(await getPaymentParams(), extraParams, requestOptions);
188
+ }
189
+ !search && ((_e = props.onSubmitResponse) == null ? void 0 : _e.call(props, res));
190
+ const { status, orderStatus, errorMessage, errorCode, payInfo, sessionId } = res;
191
+ sessionId && (session.sessionId = sessionId);
165
192
  if (status === "PROCESSING") {
166
193
  if (!orderStatus) {
167
194
  setSubmitButtonStatus("unSubmit");
168
195
  return { end: true };
169
196
  } else if (orderStatus === "SUCCESS") {
170
- setSubmitButtonStatus("success");
171
- (_b2 = props.onSuccess) == null ? void 0 : _b2.call(props);
197
+ processOnSuccess(res);
172
198
  return { end: true };
173
199
  } else if (orderStatus === "FAILURE") {
174
- setErrorMsg(errorMessage);
200
+ errorMessage && setErrorMsg(errorMessage);
175
201
  setSubmitButtonStatus("unSubmit");
176
202
  processOnError(new PayKKaError("API_ERROR", errorMessage, { code: errorCode }));
177
203
  return { end: true };
@@ -187,17 +213,16 @@ const ShopeePay = w((props, ref) => {
187
213
  return { end: false };
188
214
  } else if (orderStatus === "CANCELED") {
189
215
  setSubmitButtonStatus("unSubmit");
190
- (_c2 = props.onTimeout) == null ? void 0 : _c2.call(props);
216
+ (_f = props.onTimeout) == null ? void 0 : _f.call(props);
191
217
  core.resetEnablePaymentMethod();
192
218
  return { end: true };
193
219
  }
194
220
  } else if (status === "SUCCESS") {
195
- setSubmitButtonStatus("success");
196
- (_d2 = props.onSuccess) == null ? void 0 : _d2.call(props);
221
+ processOnSuccess(res);
197
222
  return { end: true };
198
223
  } else if (status === "EXPIRED") {
199
224
  setSubmitButtonStatus("unSubmit");
200
- (_e2 = props.onExpired) == null ? void 0 : _e2.call(props);
225
+ (_g = props.onExpired) == null ? void 0 : _g.call(props);
201
226
  return { end: true };
202
227
  }
203
228
  setSubmitButtonStatus("unSubmit");
@@ -212,7 +237,7 @@ const ShopeePay = w((props, ref) => {
212
237
  }
213
238
  } else {
214
239
  const message = error.i18nKey ? i18n.get(error.i18nKey) : error.message;
215
- setErrorMsg(message);
240
+ message && setErrorMsg(message);
216
241
  processOnError(new PayKKaError("API_ERROR", message, { code: error.code, cause: error }));
217
242
  setSubmitButtonStatus("unSubmit");
218
243
  return { end: true };
@@ -220,8 +245,8 @@ const ShopeePay = w((props, ref) => {
220
245
  }
221
246
  };
222
247
  const validateForm = () => {
223
- var _a2;
224
- (_a2 = formRef.current) == null ? void 0 : _a2.validate(void 0, false).then(() => {
248
+ var _a;
249
+ (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => {
225
250
  setValidated(true);
226
251
  }).catch(() => {
227
252
  setValidated(false);
@@ -231,12 +256,12 @@ const ShopeePay = w((props, ref) => {
231
256
  validateForm();
232
257
  }, [form]);
233
258
  const onSubmit = async () => {
234
- var _a2;
259
+ var _a;
235
260
  setErrorMsg("");
236
- (_a2 = formRef.current) == null ? void 0 : _a2.validate(async (errors) => {
237
- var _a3;
238
- (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressState.setValidateAllFields(true);
239
- (_a3 = props.onSubmit) == null ? void 0 : _a3.call(props, errors);
261
+ (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
262
+ var _a2;
263
+ (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
264
+ (_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors);
240
265
  if (errors) {
241
266
  setSubmitButtonStatus("unSubmit");
242
267
  return;
@@ -251,8 +276,8 @@ const ShopeePay = w((props, ref) => {
251
276
  dom && validateForm();
252
277
  };
253
278
  const Button = () => {
254
- var _a2;
255
- const transAmount = (_a2 = session == null ? void 0 : session.checkout) == null ? void 0 : _a2.transAmount;
279
+ var _a;
280
+ const transAmount = (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.transAmount;
256
281
  const amountText = (transAmount == null ? void 0 : transAmount.amount) ? formatAmount(transAmount).jointSymbol() : "";
257
282
  const text = i18n.get("common.pay") + (amountText ? ` ${amountText}` : "");
258
283
  return /* @__PURE__ */ u(
@@ -278,24 +303,17 @@ const ShopeePay = w((props, ref) => {
278
303
  }
279
304
  ) }) });
280
305
  };
281
- const formStyle = {
282
- [cssVarPrefix("button-bg-color")]: (_a = session == null ? void 0 : session.colors) == null ? void 0 : _a.primary,
283
- [cssVarPrefix("button-bg-color-hover")]: (_b = session == null ? void 0 : session.colors) == null ? void 0 : _b.primaryHover,
284
- [cssVarPrefix("button-bg-color-active")]: (_c = session == null ? void 0 : session.colors) == null ? void 0 : _c.primaryActive,
285
- [cssVarPrefix("button-text-color")]: (_e = (_d = session == null ? void 0 : session.checkout) == null ? void 0 : _d.theme) == null ? void 0 : _e.payButtonTextColor,
286
- [cssVarPrefix("input-color")]: (_f = session == null ? void 0 : session.colors) == null ? void 0 : _f.primary
287
- };
288
306
  const ErrorMessage = () => {
289
- return /* @__PURE__ */ u(b, { children: !!errorMsg && /* @__PURE__ */ u(Info, { content: errorMsg, style: { marginTop: "12px" } }) });
307
+ return /* @__PURE__ */ u(b, { children: !!errorMsg && /* @__PURE__ */ u(Info, { content: errorMsg }) });
290
308
  };
291
309
  const Address = () => {
292
- var _a2, _b2;
310
+ var _a, _b;
293
311
  return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
294
312
  AddressField,
295
313
  {
296
314
  ref: addressFieldRef,
297
315
  value: form.address,
298
- country: ((_a2 = session == null ? void 0 : session.checkout) == null ? void 0 : _a2.country) || ((_b2 = session == null ? void 0 : session.checkout) == null ? void 0 : _b2.bill.country),
316
+ country: ((_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.country) || ((_b = session == null ? void 0 : session.checkout) == null ? void 0 : _b.bill.country),
299
317
  onAddressChange: (value) => setForm(Object.assign(form, { address: value }))
300
318
  }
301
319
  ) }) });
@@ -305,15 +323,18 @@ const ShopeePay = w((props, ref) => {
305
323
  {
306
324
  value: {
307
325
  i18n,
308
- session
326
+ session,
327
+ core
309
328
  },
310
- children: isCheckoutEnabled && i18n.ready.value && /* @__PURE__ */ u(b, { children: [
329
+ children: isCheckoutEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
311
330
  showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.SHOPEE_PAY }),
312
- /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), style: formStyle, children: [
331
+ /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
313
332
  Email(),
314
333
  Address(),
315
- ErrorMessage(),
316
- !hidePaymentButton && Button()
334
+ /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
335
+ ErrorMessage(),
336
+ !hidePaymentButton && Button()
337
+ ] })
317
338
  ] }) })
318
339
  ] })
319
340
  }
@@ -1,20 +1,19 @@
1
1
  import { h, y, u } from "../../core.js";
2
2
  import { useBEM } from "../../hooks/useBEM.js";
3
- import "../../core/context.js";
3
+ import { useI18n } from "../../hooks/useI18n.js";
4
4
  import "../../utils/card-brand/brands.js";
5
5
  import "../../utils/system-info/get-browser-info.js";
6
6
  import { normalizedClass } from "../../utils/format.js";
7
7
  import "../../api/http.js";
8
- import enGB from "../../i18n/locales/en-GB.js";
9
8
  import { Button } from "../internal/Button/Button.js";
10
9
  import { IconSafe } from "../internal/icons/IconSafe.js";
11
10
  import { LoadingCheck } from "../internal/LoadingCheck/LoadingCheck.js";
12
11
  const { bem } = useBEM("submit-button");
13
12
  const SubmitButton = (props) => {
14
13
  const {
15
- text = enGB["common.pay"],
16
- loadingText = enGB["common.payProcessing"],
17
- successText = enGB["common.paySuccess"],
14
+ text,
15
+ loadingText,
16
+ successText,
18
17
  status = "unSubmit",
19
18
  onClick,
20
19
  className,
@@ -22,6 +21,7 @@ const SubmitButton = (props) => {
22
21
  icon = IconSafe
23
22
  } = props;
24
23
  const [content, setContent] = h(text);
24
+ const { i18n } = useI18n();
25
25
  const Icon = () => {
26
26
  if (status === "unSubmit") {
27
27
  const Comp = icon;
@@ -32,14 +32,15 @@ const SubmitButton = (props) => {
32
32
  {
33
33
  checked: status === "success",
34
34
  size: 20,
35
- onCheckShow: () => setContent(successText)
35
+ onCheckShow: () => setContent(successText || i18n.get("common.paySuccess"))
36
36
  }
37
37
  );
38
38
  };
39
39
  y(() => {
40
40
  if (status === "success")
41
41
  return;
42
- setContent(status === "loading" ? loadingText : text);
42
+ const buttonText = status === "loading" ? loadingText || i18n.get("common.payProcessing") : text || i18n.get("common.pay");
43
+ setContent(buttonText);
43
44
  }, [status, text]);
44
45
  return /* @__PURE__ */ u(
45
46
  Button,