@bigbinary/neeto-payments-frontend 1.5.0-beta1 → 1.6.0-beta2
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 +4 -95
- package/app/javascript/src/translations/en.json +0 -15
- package/dist/AccountsDashboard.js +477 -0
- package/dist/AccountsDashboard.js.map +1 -0
- package/dist/Dashboard.js +598 -0
- package/dist/Dashboard.js.map +1 -0
- package/dist/ExportModal-85725c35.js +645 -0
- package/dist/ExportModal-85725c35.js.map +1 -0
- package/dist/IdentifierButton-73cadb18.js +20 -0
- package/dist/IdentifierButton-73cadb18.js.map +1 -0
- package/dist/PaymentKindRestrictionAlert.js +34 -0
- package/dist/PaymentKindRestrictionAlert.js.map +1 -0
- package/dist/PayoutsDashboard.js +503 -0
- package/dist/PayoutsDashboard.js.map +1 -0
- package/dist/PayoutsPage.js +185 -0
- package/dist/PayoutsPage.js.map +1 -0
- package/dist/RazorpayDashboard.js +251 -0
- package/dist/RazorpayDashboard.js.map +1 -0
- package/dist/RazorpayPaymentButton.js +111 -0
- package/dist/RazorpayPaymentButton.js.map +1 -0
- package/dist/StripeConnect.js +2071 -0
- package/dist/StripeConnect.js.map +1 -0
- package/dist/U2TDTBMY-c464dc98.js +12081 -0
- package/dist/U2TDTBMY-c464dc98.js.map +1 -0
- package/dist/UpiConnect.js +148 -0
- package/dist/UpiConnect.js.map +1 -0
- package/dist/UpiMarkAsPaidButton.js +42 -0
- package/dist/UpiMarkAsPaidButton.js.map +1 -0
- package/dist/UpiPayment.js +94 -0
- package/dist/UpiPayment.js.map +1 -0
- package/dist/V2PaymentsDashboard.js +302 -0
- package/dist/V2PaymentsDashboard.js.map +1 -0
- package/dist/buildStripeTransactionLink.js +6 -0
- package/dist/buildStripeTransactionLink.js.map +1 -0
- package/dist/cjs/AccountsDashboard.js +494 -0
- package/dist/cjs/AccountsDashboard.js.map +1 -0
- package/dist/cjs/Dashboard.js +613 -0
- package/dist/cjs/Dashboard.js.map +1 -0
- package/dist/cjs/ExportModal-20f368a1.js +669 -0
- package/dist/cjs/ExportModal-20f368a1.js.map +1 -0
- package/dist/cjs/IdentifierButton-40b5459d.js +27 -0
- package/dist/cjs/IdentifierButton-40b5459d.js.map +1 -0
- package/dist/cjs/PaymentKindRestrictionAlert.js +41 -0
- package/dist/cjs/PaymentKindRestrictionAlert.js.map +1 -0
- package/dist/cjs/PayoutsDashboard.js +519 -0
- package/dist/cjs/PayoutsDashboard.js.map +1 -0
- package/dist/cjs/PayoutsPage.js +194 -0
- package/dist/cjs/PayoutsPage.js.map +1 -0
- package/dist/cjs/RazorpayDashboard.js +262 -0
- package/dist/cjs/RazorpayDashboard.js.map +1 -0
- package/dist/cjs/RazorpayPaymentButton.js +118 -0
- package/dist/cjs/RazorpayPaymentButton.js.map +1 -0
- package/dist/cjs/StripeConnect.js +2106 -0
- package/dist/cjs/StripeConnect.js.map +1 -0
- package/dist/cjs/U2TDTBMY-e2fad970.js +12083 -0
- package/dist/cjs/U2TDTBMY-e2fad970.js.map +1 -0
- package/dist/cjs/UpiConnect.js +181 -0
- package/dist/cjs/UpiConnect.js.map +1 -0
- package/dist/cjs/UpiMarkAsPaidButton.js +49 -0
- package/dist/cjs/UpiMarkAsPaidButton.js.map +1 -0
- package/dist/cjs/UpiPayment.js +124 -0
- package/dist/cjs/UpiPayment.js.map +1 -0
- package/dist/cjs/V2PaymentsDashboard.js +313 -0
- package/dist/cjs/V2PaymentsDashboard.js.map +1 -0
- package/dist/cjs/buildStripeTransactionLink.js +11 -0
- package/dist/cjs/buildStripeTransactionLink.js.map +1 -0
- package/dist/cjs/constants.js +495 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/exportChannel-7bd80952.js +39 -0
- package/dist/cjs/exportChannel-7bd80952.js.map +1 -0
- package/dist/cjs/extends-1b35a664.js +19 -0
- package/dist/cjs/extends-1b35a664.js.map +1 -0
- package/dist/cjs/index-b097dce8.js +41 -0
- package/dist/cjs/index-b097dce8.js.map +1 -0
- package/dist/cjs/index-b7badf96.js +88 -0
- package/dist/cjs/index-b7badf96.js.map +1 -0
- package/dist/cjs/index.js +100 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mutation-ed7b84fc.js +235 -0
- package/dist/cjs/mutation-ed7b84fc.js.map +1 -0
- package/dist/cjs/queryConstants-de21eed5.js +944 -0
- package/dist/cjs/queryConstants-de21eed5.js.map +1 -0
- package/dist/cjs/renderFunctions-398d3fb5.js +3719 -0
- package/dist/cjs/renderFunctions-398d3fb5.js.map +1 -0
- package/dist/cjs/stripe.esm-4218a1e9.js.map +1 -0
- package/dist/cjs/useConnectApi-f0665633.js +2189 -0
- package/dist/cjs/useConnectApi-f0665633.js.map +1 -0
- package/dist/cjs/useFiltersAndPagination-312c0331.js +277 -0
- package/dist/cjs/useFiltersAndPagination-312c0331.js.map +1 -0
- package/dist/cjs/useMutation-4c7cdbe1.js +154 -0
- package/dist/cjs/useMutation-4c7cdbe1.js.map +1 -0
- package/dist/cjs/usePaymentApi-ae70e5df.js +48 -0
- package/dist/cjs/usePaymentApi-ae70e5df.js.map +1 -0
- package/dist/cjs/usePaymentsApi-815be3da.js +36 -0
- package/dist/cjs/usePaymentsApi-815be3da.js.map +1 -0
- package/dist/cjs/usePlatformApi-830827fa.js +116 -0
- package/dist/cjs/usePlatformApi-830827fa.js.map +1 -0
- package/dist/cjs/useRazorpayPayment.js +91 -0
- package/dist/cjs/useRazorpayPayment.js.map +1 -0
- package/dist/cjs/useStripePromise.js +27 -0
- package/dist/cjs/useStripePromise.js.map +1 -0
- package/dist/cjs/utils-7eba34a4.js +664 -0
- package/dist/cjs/utils-7eba34a4.js.map +1 -0
- package/dist/constants.js +480 -0
- package/dist/constants.js.map +1 -0
- package/dist/exportChannel-250e6f14.js +32 -0
- package/dist/exportChannel-250e6f14.js.map +1 -0
- package/dist/extends-093996c9.js +17 -0
- package/dist/extends-093996c9.js.map +1 -0
- package/dist/index-1aedc364.js +80 -0
- package/dist/index-1aedc364.js.map +1 -0
- package/dist/index-48f8b281.js +32 -0
- package/dist/index-48f8b281.js.map +1 -0
- package/dist/index.js +77 -12558
- package/dist/index.js.map +1 -1
- package/dist/mutation-286611ef.js +232 -0
- package/dist/mutation-286611ef.js.map +1 -0
- package/dist/queryConstants-765c8816.js +920 -0
- package/dist/queryConstants-765c8816.js.map +1 -0
- package/dist/renderFunctions-97b121a4.js +3633 -0
- package/dist/renderFunctions-97b121a4.js.map +1 -0
- package/dist/useConnectApi-87335bf6.js +2174 -0
- package/dist/useConnectApi-87335bf6.js.map +1 -0
- package/dist/useFiltersAndPagination-2ab7bc8f.js +262 -0
- package/dist/useFiltersAndPagination-2ab7bc8f.js.map +1 -0
- package/dist/useMutation-8d67f853.js +132 -0
- package/dist/useMutation-8d67f853.js.map +1 -0
- package/dist/usePaymentApi-12737871.js +41 -0
- package/dist/usePaymentApi-12737871.js.map +1 -0
- package/dist/usePaymentsApi-a801ab15.js +29 -0
- package/dist/usePaymentsApi-a801ab15.js.map +1 -0
- package/dist/usePlatformApi-8adc2a50.js +104 -0
- package/dist/usePlatformApi-8adc2a50.js.map +1 -0
- package/dist/useRazorpayPayment.js +89 -0
- package/dist/useRazorpayPayment.js.map +1 -0
- package/dist/useStripePromise.js +25 -0
- package/dist/useStripePromise.js.map +1 -0
- package/dist/utils-e29db9c9.js +614 -0
- package/dist/utils-e29db9c9.js.map +1 -0
- package/package.json +18 -10
- package/types/AccountsDashboard.d.ts +3 -0
- package/types/Dashboard.d.ts +15 -0
- package/types/PaymentKindRestrictionAlert.d.ts +11 -0
- package/types/PayoutsDashboard.d.ts +10 -0
- package/types/PayoutsPage.d.ts +11 -0
- package/types/StripeConnect.d.ts +13 -0
- package/types/buildStripeTransactionLink.d.ts +6 -0
- package/types/useStripePromise.d.ts +5 -0
- package/types.d.ts +8 -75
- package/dist/index-042b6907.js +0 -6
- package/dist/index-042b6907.js.map +0 -1
- package/dist/index-87824935.js +0 -4
- package/dist/index-87824935.js.map +0 -1
- package/dist/index.cjs.js +0 -12633
- package/dist/index.cjs.js.map +0 -1
- package/dist/stripe.esm-4218a1e9.js.map +0 -1
- /package/dist/{stripe.esm-4218a1e9.js → cjs/stripe.esm-4218a1e9.js} +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { noop, isNotPresent } from '@bigbinary/neeto-cist';
|
|
3
|
+
import Button from '@bigbinary/neetoui/Button';
|
|
4
|
+
import { mergeDeepLeft } from 'ramda';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { a as useCreateRazorpayPayment } from './usePaymentApi-12737871.js';
|
|
7
|
+
import { RAZORPAY_PAYMENT_BUTTON_OPTIONS } from './constants.js';
|
|
8
|
+
import './queryConstants-765c8816.js';
|
|
9
|
+
import './utils-e29db9c9.js';
|
|
10
|
+
import 'react/jsx-runtime';
|
|
11
|
+
import './useMutation-8d67f853.js';
|
|
12
|
+
import './mutation-286611ef.js';
|
|
13
|
+
import 'axios';
|
|
14
|
+
import 'i18next';
|
|
15
|
+
import '@bigbinary/neeto-commons-frontend/constants';
|
|
16
|
+
|
|
17
|
+
const loadScript = src => new Promise(resolve => {
|
|
18
|
+
const script = document.createElement("script");
|
|
19
|
+
script.src = src;
|
|
20
|
+
script.onload = () => {
|
|
21
|
+
resolve(true);
|
|
22
|
+
};
|
|
23
|
+
script.onerror = () => {
|
|
24
|
+
resolve(false);
|
|
25
|
+
};
|
|
26
|
+
document.body.appendChild(script);
|
|
27
|
+
});
|
|
28
|
+
const RazorpayPaymentButton = _ref => {
|
|
29
|
+
let {
|
|
30
|
+
label,
|
|
31
|
+
payableId,
|
|
32
|
+
discountCode,
|
|
33
|
+
email,
|
|
34
|
+
name,
|
|
35
|
+
isCardPreservable = false,
|
|
36
|
+
onBeforePayment = noop,
|
|
37
|
+
onSuccessfulPayment = noop,
|
|
38
|
+
onFailedPayment = noop
|
|
39
|
+
} = _ref;
|
|
40
|
+
const {
|
|
41
|
+
t
|
|
42
|
+
} = useTranslation();
|
|
43
|
+
const openRazorpayCheckout = async options => {
|
|
44
|
+
const script = await loadScript("https://checkout.razorpay.com/v1/checkout.js");
|
|
45
|
+
if (!script) {
|
|
46
|
+
logger.error(t("neetoPayments.razorpay.loadError"));
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const checkout = new window.Razorpay(options);
|
|
50
|
+
checkout.open();
|
|
51
|
+
};
|
|
52
|
+
const handlePayment = response => {
|
|
53
|
+
if (isNotPresent(response?.razorpay_signature)) {
|
|
54
|
+
onFailedPayment();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
onSuccessfulPayment();
|
|
58
|
+
};
|
|
59
|
+
const handleSuccess = _ref2 => {
|
|
60
|
+
let {
|
|
61
|
+
payment
|
|
62
|
+
} = _ref2;
|
|
63
|
+
if (payment?.status === "successful") {
|
|
64
|
+
return onSuccessfulPayment();
|
|
65
|
+
}
|
|
66
|
+
const save = isCardPreservable ? 1 : 0;
|
|
67
|
+
const options = {
|
|
68
|
+
save,
|
|
69
|
+
key: payment.publicKey,
|
|
70
|
+
order_id: payment.orderIdentifier,
|
|
71
|
+
customer_id: payment.customerIdentifier,
|
|
72
|
+
prefill: {
|
|
73
|
+
name,
|
|
74
|
+
email
|
|
75
|
+
},
|
|
76
|
+
modal: {
|
|
77
|
+
confirm_close: true,
|
|
78
|
+
ondismiss: onFailedPayment
|
|
79
|
+
},
|
|
80
|
+
handler: handlePayment
|
|
81
|
+
};
|
|
82
|
+
return openRazorpayCheckout(mergeDeepLeft(RAZORPAY_PAYMENT_BUTTON_OPTIONS, options));
|
|
83
|
+
};
|
|
84
|
+
const {
|
|
85
|
+
isLoading,
|
|
86
|
+
mutate: createRazorpayOrder
|
|
87
|
+
} = useCreateRazorpayPayment({
|
|
88
|
+
onSuccess: handleSuccess
|
|
89
|
+
});
|
|
90
|
+
const handleClick = () => {
|
|
91
|
+
onBeforePayment();
|
|
92
|
+
const payload = {
|
|
93
|
+
payableId,
|
|
94
|
+
discountCode,
|
|
95
|
+
customerAttributes: {
|
|
96
|
+
email,
|
|
97
|
+
name
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
createRazorpayOrder(payload);
|
|
101
|
+
};
|
|
102
|
+
return /*#__PURE__*/React__default.createElement(Button, {
|
|
103
|
+
disabled: isLoading,
|
|
104
|
+
label: label || t("neetoPayments.common.pay"),
|
|
105
|
+
loading: isLoading,
|
|
106
|
+
onClick: handleClick
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export { RazorpayPaymentButton as default };
|
|
111
|
+
//# sourceMappingURL=RazorpayPaymentButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RazorpayPaymentButton.js","sources":["../app/javascript/src/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { isNotPresent, noop } from \"neetocist\";\nimport { Button } from \"neetoui\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateRazorpayPayment } from \"hooks/reactQuery/razorpay/usePaymentApi\";\nimport { RAZORPAY_PAYMENT_BUTTON_OPTIONS } from \"src/constants\";\n\nconst loadScript = src =>\n new Promise(resolve => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = () => {\n resolve(true);\n };\n\n script.onerror = () => {\n resolve(false);\n };\n document.body.appendChild(script);\n });\n\nconst RazorpayPaymentButton = ({\n label,\n payableId,\n discountCode,\n email,\n name,\n isCardPreservable = false,\n onBeforePayment = noop,\n onSuccessfulPayment = noop,\n onFailedPayment = noop,\n}) => {\n const { t } = useTranslation();\n\n const openRazorpayCheckout = async options => {\n const script = await loadScript(\n \"https://checkout.razorpay.com/v1/checkout.js\"\n );\n\n if (!script) {\n logger.error(t(\"neetoPayments.razorpay.loadError\"));\n\n return;\n }\n const checkout = new window.Razorpay(options);\n checkout.open();\n };\n\n const handlePayment = response => {\n if (isNotPresent(response?.razorpay_signature)) {\n onFailedPayment();\n\n return;\n }\n\n onSuccessfulPayment();\n };\n\n const handleSuccess = ({ payment }) => {\n if (payment?.status === \"successful\") {\n return onSuccessfulPayment();\n }\n\n const save = isCardPreservable ? 1 : 0;\n const options = {\n save,\n key: payment.publicKey,\n order_id: payment.orderIdentifier,\n customer_id: payment.customerIdentifier,\n prefill: { name, email },\n modal: { confirm_close: true, ondismiss: onFailedPayment },\n handler: handlePayment,\n };\n\n return openRazorpayCheckout(\n mergeDeepLeft(RAZORPAY_PAYMENT_BUTTON_OPTIONS, options)\n );\n };\n\n const { isLoading, mutate: createRazorpayOrder } = useCreateRazorpayPayment({\n onSuccess: handleSuccess,\n });\n\n const handleClick = () => {\n onBeforePayment();\n const payload = {\n payableId,\n discountCode,\n customerAttributes: { email, name },\n };\n createRazorpayOrder(payload);\n };\n\n return (\n <Button\n disabled={isLoading}\n label={label || t(\"neetoPayments.common.pay\")}\n loading={isLoading}\n onClick={handleClick}\n />\n );\n};\n\nexport default RazorpayPaymentButton;\n"],"names":["loadScript","src","Promise","resolve","script","document","createElement","onload","onerror","body","appendChild","RazorpayPaymentButton","_ref","label","payableId","discountCode","email","name","isCardPreservable","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","t","useTranslation","openRazorpayCheckout","options","logger","error","checkout","window","Razorpay","open","handlePayment","response","isNotPresent","razorpay_signature","handleSuccess","_ref2","payment","status","save","key","publicKey","order_id","orderIdentifier","customer_id","customerIdentifier","prefill","modal","confirm_close","ondismiss","handler","mergeDeepLeft","RAZORPAY_PAYMENT_BUTTON_OPTIONS","isLoading","mutate","createRazorpayOrder","useCreateRazorpayPayment","onSuccess","handleClick","payload","customerAttributes","React","Button","disabled","loading","onClick"],"mappings":"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"}
|