@bigbinary/neeto-payments-frontend 6.1.11 → 6.1.13

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 (221) hide show
  1. package/dist/AccountsDashboard.js +473 -0
  2. package/dist/AccountsDashboard.js.map +1 -0
  3. package/dist/AdminCancelRecurringPaymentButton.js +65 -0
  4. package/dist/AdminCancelRecurringPaymentButton.js.map +1 -0
  5. package/dist/CashPaymentButton.js +58 -0
  6. package/dist/CashPaymentButton.js.map +1 -0
  7. package/dist/ConfirmCashPaymentButton.js +98 -0
  8. package/dist/ConfirmCashPaymentButton.js.map +1 -0
  9. package/dist/CopyButtonWrapper-Bp5IVO76.js +26 -0
  10. package/dist/CopyButtonWrapper-Bp5IVO76.js.map +1 -0
  11. package/dist/CustomerCancelRecurringPaymentForm.js +103 -0
  12. package/dist/CustomerCancelRecurringPaymentForm.js.map +1 -0
  13. package/dist/ExportModal-DyRGg_4o.js +120 -0
  14. package/dist/ExportModal-DyRGg_4o.js.map +1 -0
  15. package/dist/ManualUpiConnect.js +228 -0
  16. package/dist/ManualUpiConnect.js.map +1 -0
  17. package/dist/ManualUpiPayment.js +125 -0
  18. package/dist/ManualUpiPayment.js.map +1 -0
  19. package/dist/ManualUpiPaymentConfirmButton.js +155 -0
  20. package/dist/ManualUpiPaymentConfirmButton.js.map +1 -0
  21. package/dist/ManualUpiPaymentRejectButton.js +126 -0
  22. package/dist/ManualUpiPaymentRejectButton.js.map +1 -0
  23. package/dist/PaymentKindRestrictionAlert.js +31 -0
  24. package/dist/PaymentKindRestrictionAlert.js.map +1 -0
  25. package/dist/PaymentsDashboard.js +555 -0
  26. package/dist/PaymentsDashboard.js.map +1 -0
  27. package/dist/PayoutsDashboard.js +510 -0
  28. package/dist/PayoutsDashboard.js.map +1 -0
  29. package/dist/PayoutsPage.js +158 -0
  30. package/dist/PayoutsPage.js.map +1 -0
  31. package/dist/RazorpayConnect.js +115 -0
  32. package/dist/RazorpayConnect.js.map +1 -0
  33. package/dist/RazorpayLinkedAccountForm.js +201 -0
  34. package/dist/RazorpayLinkedAccountForm.js.map +1 -0
  35. package/dist/RazorpayPaymentButton.js +127 -0
  36. package/dist/RazorpayPaymentButton.js.map +1 -0
  37. package/dist/RecurringPaymentSettings.js +119 -0
  38. package/dist/RecurringPaymentSettings.js.map +1 -0
  39. package/dist/RefundsDashboard.js +484 -0
  40. package/dist/RefundsDashboard.js.map +1 -0
  41. package/dist/SplitTransfersDashboard.js +1042 -0
  42. package/dist/SplitTransfersDashboard.js.map +1 -0
  43. package/dist/StripeCheckoutSetting.js +82 -0
  44. package/dist/StripeCheckoutSetting.js.map +1 -0
  45. package/dist/StripeConnect.js +376 -0
  46. package/dist/StripeConnect.js.map +1 -0
  47. package/dist/StripeManage.js +46 -0
  48. package/dist/StripeManage.js.map +1 -0
  49. package/dist/TaxesDashboard.js +355 -0
  50. package/dist/TaxesDashboard.js.map +1 -0
  51. package/dist/buildStripeTransactionLink.js +12 -0
  52. package/dist/buildStripeTransactionLink.js.map +1 -0
  53. package/dist/cjs/AccountsDashboard.js +475 -0
  54. package/dist/cjs/AccountsDashboard.js.map +1 -0
  55. package/dist/cjs/AdminCancelRecurringPaymentButton.js +67 -0
  56. package/dist/cjs/AdminCancelRecurringPaymentButton.js.map +1 -0
  57. package/dist/cjs/CashPaymentButton.js +60 -0
  58. package/dist/cjs/CashPaymentButton.js.map +1 -0
  59. package/dist/cjs/ConfirmCashPaymentButton.js +100 -0
  60. package/dist/cjs/ConfirmCashPaymentButton.js.map +1 -0
  61. package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js +29 -0
  62. package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js.map +1 -0
  63. package/dist/cjs/CustomerCancelRecurringPaymentForm.js +105 -0
  64. package/dist/cjs/CustomerCancelRecurringPaymentForm.js.map +1 -0
  65. package/dist/cjs/ExportModal-DE-VcN1X.js +122 -0
  66. package/dist/cjs/ExportModal-DE-VcN1X.js.map +1 -0
  67. package/dist/cjs/ManualUpiConnect.js +249 -0
  68. package/dist/cjs/ManualUpiConnect.js.map +1 -0
  69. package/dist/cjs/ManualUpiPayment.js +146 -0
  70. package/dist/cjs/ManualUpiPayment.js.map +1 -0
  71. package/dist/cjs/ManualUpiPaymentConfirmButton.js +176 -0
  72. package/dist/cjs/ManualUpiPaymentConfirmButton.js.map +1 -0
  73. package/dist/cjs/ManualUpiPaymentRejectButton.js +128 -0
  74. package/dist/cjs/ManualUpiPaymentRejectButton.js.map +1 -0
  75. package/dist/cjs/PaymentKindRestrictionAlert.js +33 -0
  76. package/dist/cjs/PaymentKindRestrictionAlert.js.map +1 -0
  77. package/dist/cjs/PaymentsDashboard.js +557 -0
  78. package/dist/cjs/PaymentsDashboard.js.map +1 -0
  79. package/dist/cjs/PayoutsDashboard.js +512 -0
  80. package/dist/cjs/PayoutsDashboard.js.map +1 -0
  81. package/dist/cjs/PayoutsPage.js +160 -0
  82. package/dist/cjs/PayoutsPage.js.map +1 -0
  83. package/dist/cjs/RazorpayConnect.js +117 -0
  84. package/dist/cjs/RazorpayConnect.js.map +1 -0
  85. package/dist/cjs/RazorpayLinkedAccountForm.js +203 -0
  86. package/dist/cjs/RazorpayLinkedAccountForm.js.map +1 -0
  87. package/dist/cjs/RazorpayPaymentButton.js +129 -0
  88. package/dist/cjs/RazorpayPaymentButton.js.map +1 -0
  89. package/dist/cjs/RecurringPaymentSettings.js +140 -0
  90. package/dist/cjs/RecurringPaymentSettings.js.map +1 -0
  91. package/dist/cjs/RefundsDashboard.js +486 -0
  92. package/dist/cjs/RefundsDashboard.js.map +1 -0
  93. package/dist/cjs/SplitTransfersDashboard.js +1063 -0
  94. package/dist/cjs/SplitTransfersDashboard.js.map +1 -0
  95. package/dist/cjs/StripeCheckoutSetting.js +84 -0
  96. package/dist/cjs/StripeCheckoutSetting.js.map +1 -0
  97. package/dist/cjs/StripeConnect.js +397 -0
  98. package/dist/cjs/StripeConnect.js.map +1 -0
  99. package/dist/cjs/StripeManage.js +48 -0
  100. package/dist/cjs/StripeManage.js.map +1 -0
  101. package/dist/cjs/TaxesDashboard.js +376 -0
  102. package/dist/cjs/TaxesDashboard.js.map +1 -0
  103. package/dist/cjs/buildStripeTransactionLink.js +14 -0
  104. package/dist/cjs/buildStripeTransactionLink.js.map +1 -0
  105. package/dist/cjs/constants.js +38 -0
  106. package/dist/cjs/constants.js.map +1 -0
  107. package/dist/cjs/dashboard-BiCB2A6S.js +96 -0
  108. package/dist/cjs/dashboard-BiCB2A6S.js.map +1 -0
  109. package/dist/cjs/exportChannel-BL2RGGhP.js +38 -0
  110. package/dist/cjs/exportChannel-BL2RGGhP.js.map +1 -0
  111. package/dist/cjs/getAddressElementOptions.js +14 -0
  112. package/dist/cjs/getAddressElementOptions.js.map +1 -0
  113. package/dist/cjs/getAmountInLargestCurrencyUnit.js +14 -0
  114. package/dist/cjs/getAmountInLargestCurrencyUnit.js.map +1 -0
  115. package/dist/cjs/getAmountInSmallestCurrencyUnit.js +14 -0
  116. package/dist/cjs/getAmountInSmallestCurrencyUnit.js.map +1 -0
  117. package/dist/cjs/getAmountWithAppliedTax.js +14 -0
  118. package/dist/cjs/getAmountWithAppliedTax.js.map +1 -0
  119. package/dist/cjs/getFormattedAmount.js +14 -0
  120. package/dist/cjs/getFormattedAmount.js.map +1 -0
  121. package/dist/cjs/getFormattedDiscountedAmount.js +14 -0
  122. package/dist/cjs/getFormattedDiscountedAmount.js.map +1 -0
  123. package/dist/cjs/getFormattedDiscountedPercentage.js +14 -0
  124. package/dist/cjs/getFormattedDiscountedPercentage.js.map +1 -0
  125. package/dist/cjs/getFormattedTaxAmount.js +14 -0
  126. package/dist/cjs/getFormattedTaxAmount.js.map +1 -0
  127. package/dist/cjs/getFormattedTipAmount.js +14 -0
  128. package/dist/cjs/getFormattedTipAmount.js.map +1 -0
  129. package/dist/cjs/getQrCodeValue.js +14 -0
  130. package/dist/cjs/getQrCodeValue.js.map +1 -0
  131. package/dist/cjs/getTaxAmount.js +14 -0
  132. package/dist/cjs/getTaxAmount.js.map +1 -0
  133. package/dist/cjs/getTipAmount.js +14 -0
  134. package/dist/cjs/getTipAmount.js.map +1 -0
  135. package/dist/cjs/hasAmountToPay.js +14 -0
  136. package/dist/cjs/hasAmountToPay.js.map +1 -0
  137. package/dist/cjs/index-D6V3Vofs.js +855 -0
  138. package/dist/cjs/index-D6V3Vofs.js.map +1 -0
  139. package/dist/cjs/index.js +121 -0
  140. package/dist/cjs/index.js.map +1 -0
  141. package/dist/cjs/queryConstants-Dc6wh21D.js +35 -0
  142. package/dist/cjs/queryConstants-Dc6wh21D.js.map +1 -0
  143. package/dist/cjs/renderFunctions-DhCwlBWw.js +48 -0
  144. package/dist/cjs/renderFunctions-DhCwlBWw.js.map +1 -0
  145. package/dist/cjs/stripe.esm-CrNYjPcC.js +132 -0
  146. package/dist/cjs/stripe.esm-CrNYjPcC.js.map +1 -0
  147. package/dist/cjs/useAccountsApi-B2MZWHMY.js +42 -0
  148. package/dist/cjs/useAccountsApi-B2MZWHMY.js.map +1 -0
  149. package/dist/cjs/useIntegrationsApi-CVlTmLKc.js +20 -0
  150. package/dist/cjs/useIntegrationsApi-CVlTmLKc.js.map +1 -0
  151. package/dist/cjs/usePaymentApi-BCE_Ql18.js +29 -0
  152. package/dist/cjs/usePaymentApi-BCE_Ql18.js.map +1 -0
  153. package/dist/cjs/usePaymentApi-Bl8jWvnG.js +44 -0
  154. package/dist/cjs/usePaymentApi-Bl8jWvnG.js.map +1 -0
  155. package/dist/cjs/usePaymentApi-CiwXBe90.js +29 -0
  156. package/dist/cjs/usePaymentApi-CiwXBe90.js.map +1 -0
  157. package/dist/cjs/usePlatformApi-CcGVG4Qi.js +55 -0
  158. package/dist/cjs/usePlatformApi-CcGVG4Qi.js.map +1 -0
  159. package/dist/cjs/useRazorpayPayment.js +88 -0
  160. package/dist/cjs/useRazorpayPayment.js.map +1 -0
  161. package/dist/cjs/useStripePromise.js +31 -0
  162. package/dist/cjs/useStripePromise.js.map +1 -0
  163. package/dist/constants.js +8 -0
  164. package/dist/constants.js.map +1 -0
  165. package/dist/dashboard-CwvqEeOl.js +90 -0
  166. package/dist/dashboard-CwvqEeOl.js.map +1 -0
  167. package/dist/exportChannel-Db0U5gc1.js +35 -0
  168. package/dist/exportChannel-Db0U5gc1.js.map +1 -0
  169. package/dist/getAddressElementOptions.js +12 -0
  170. package/dist/getAddressElementOptions.js.map +1 -0
  171. package/dist/getAmountInLargestCurrencyUnit.js +12 -0
  172. package/dist/getAmountInLargestCurrencyUnit.js.map +1 -0
  173. package/dist/getAmountInSmallestCurrencyUnit.js +12 -0
  174. package/dist/getAmountInSmallestCurrencyUnit.js.map +1 -0
  175. package/dist/getAmountWithAppliedTax.js +12 -0
  176. package/dist/getAmountWithAppliedTax.js.map +1 -0
  177. package/dist/getFormattedAmount.js +12 -0
  178. package/dist/getFormattedAmount.js.map +1 -0
  179. package/dist/getFormattedDiscountedAmount.js +12 -0
  180. package/dist/getFormattedDiscountedAmount.js.map +1 -0
  181. package/dist/getFormattedDiscountedPercentage.js +12 -0
  182. package/dist/getFormattedDiscountedPercentage.js.map +1 -0
  183. package/dist/getFormattedTaxAmount.js +12 -0
  184. package/dist/getFormattedTaxAmount.js.map +1 -0
  185. package/dist/getFormattedTipAmount.js +12 -0
  186. package/dist/getFormattedTipAmount.js.map +1 -0
  187. package/dist/getQrCodeValue.js +12 -0
  188. package/dist/getQrCodeValue.js.map +1 -0
  189. package/dist/getTaxAmount.js +12 -0
  190. package/dist/getTaxAmount.js.map +1 -0
  191. package/dist/getTipAmount.js +12 -0
  192. package/dist/getTipAmount.js.map +1 -0
  193. package/dist/hasAmountToPay.js +12 -0
  194. package/dist/hasAmountToPay.js.map +1 -0
  195. package/dist/index-CNouM9_z.js +804 -0
  196. package/dist/index-CNouM9_z.js.map +1 -0
  197. package/dist/index.js +78 -0
  198. package/dist/index.js.map +1 -0
  199. package/dist/queryConstants-C7AqdemO.js +33 -0
  200. package/dist/queryConstants-C7AqdemO.js.map +1 -0
  201. package/dist/renderFunctions-Bx5nzyE_.js +44 -0
  202. package/dist/renderFunctions-Bx5nzyE_.js.map +1 -0
  203. package/dist/stripe.esm-DuZ_gsAa.js +130 -0
  204. package/dist/stripe.esm-DuZ_gsAa.js.map +1 -0
  205. package/dist/useAccountsApi-C9_eNmEZ.js +38 -0
  206. package/dist/useAccountsApi-C9_eNmEZ.js.map +1 -0
  207. package/dist/useIntegrationsApi-D9eA_FrB.js +18 -0
  208. package/dist/useIntegrationsApi-D9eA_FrB.js.map +1 -0
  209. package/dist/usePaymentApi-B98qoM7U.js +26 -0
  210. package/dist/usePaymentApi-B98qoM7U.js.map +1 -0
  211. package/dist/usePaymentApi-DMHHdCK1.js +41 -0
  212. package/dist/usePaymentApi-DMHHdCK1.js.map +1 -0
  213. package/dist/usePaymentApi-DSlW_EBq.js +27 -0
  214. package/dist/usePaymentApi-DSlW_EBq.js.map +1 -0
  215. package/dist/usePlatformApi-sJUY6wju.js +50 -0
  216. package/dist/usePlatformApi-sJUY6wju.js.map +1 -0
  217. package/dist/useRazorpayPayment.js +86 -0
  218. package/dist/useRazorpayPayment.js.map +1 -0
  219. package/dist/useStripePromise.js +29 -0
  220. package/dist/useStripePromise.js.map +1 -0
  221. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var neetocist = require('neetocist');
4
+ var reactI18next = require('react-i18next');
5
+ var usePaymentApi = require('./usePaymentApi-BCE_Ql18.js');
6
+ var neetoui = require('@bigbinary/neetoui');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ require('@tanstack/react-query');
9
+ require('axios');
10
+ require('./index-D6V3Vofs.js');
11
+ require('i18next');
12
+ require('neetocommons/constants');
13
+ require('decimal.js');
14
+ require('neetocommons/utils');
15
+ require('ramda');
16
+
17
+ const CashPaymentButton = ({
18
+ label,
19
+ payableId,
20
+ payableType,
21
+ tip,
22
+ discountCode,
23
+ customAmount,
24
+ isDisabled = false,
25
+ isLoading = false,
26
+ onBeforePayment = neetocist.noop,
27
+ onFailedPayment = neetocist.noop,
28
+ onSuccessfulPayment = neetocist.noop
29
+ }) => {
30
+ const {
31
+ t
32
+ } = reactI18next.useTranslation();
33
+ const {
34
+ isPending,
35
+ mutate: createCashPayment
36
+ } = usePaymentApi.useCreateCashPayment({
37
+ onSuccess: onSuccessfulPayment,
38
+ onError: onFailedPayment
39
+ });
40
+ const handleSubmit = () => {
41
+ onBeforePayment();
42
+ createCashPayment({
43
+ payableId,
44
+ payableType,
45
+ discountCode,
46
+ customAmount,
47
+ tipAttributes: tip
48
+ });
49
+ };
50
+ return /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
51
+ "data-testid": "payment-submit-button",
52
+ disabled: isPending || isDisabled,
53
+ label: label || t("neetoPayments.common.proceed"),
54
+ loading: isPending || isLoading,
55
+ onClick: handleSubmit
56
+ });
57
+ };
58
+
59
+ module.exports = CashPaymentButton;
60
+ //# sourceMappingURL=CashPaymentButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CashPaymentButton.js","sources":["../../app/javascript/src/components/CashPaymentButton.jsx"],"sourcesContent":["import { noop } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateCashPayment } from \"hooks/reactQuery/cash/usePaymentApi\";\nimport { Button } from \"neetoui\";\n\nconst CashPaymentButton = ({\n label,\n payableId,\n payableType,\n tip,\n discountCode,\n customAmount,\n isDisabled = false,\n isLoading = false,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n\n const { isPending, mutate: createCashPayment } = useCreateCashPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const handleSubmit = () => {\n onBeforePayment();\n createCashPayment({\n payableId,\n payableType,\n discountCode,\n customAmount,\n tipAttributes: tip,\n });\n };\n\n return (\n <Button\n data-testid=\"payment-submit-button\"\n disabled={isPending || isDisabled}\n label={label || t(\"neetoPayments.common.proceed\")}\n loading={isPending || isLoading}\n onClick={handleSubmit}\n />\n );\n};\n\nexport default CashPaymentButton;\n"],"names":["CashPaymentButton","label","payableId","payableType","tip","discountCode","customAmount","isDisabled","isLoading","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","t","useTranslation","isPending","mutate","createCashPayment","useCreateCashPayment","onSuccess","onError","handleSubmit","tipAttributes","_jsx","Button","disabled","loading","onClick"],"mappings":";;;;;;;;;;;;;;;;AAMMA,MAAAA,iBAAiB,GAAGA,CAAC;EACzBC,KAAK;EACLC,SAAS;EACTC,WAAW;EACXC,GAAG;EACHC,YAAY;EACZC,YAAY;AACZC,EAAAA,UAAU,GAAG,KAAK;AAClBC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,eAAe,GAAGC,cAAI;AACtBC,EAAAA,eAAe,GAAGD,cAAI;AACtBE,EAAAA,mBAAmB,GAAGF;AACxB,CAAC,KAAK;EACJ,MAAM;AAAEG,IAAAA;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAM;IAAEC,SAAS;AAAEC,IAAAA,MAAM,EAAEC;GAAmB,GAAGC,kCAAoB,CAAC;AACpEC,IAAAA,SAAS,EAAEP,mBAAmB;AAC9BQ,IAAAA,OAAO,EAAET;AACX,GAAC,CAAC;EAEF,MAAMU,YAAY,GAAGA,MAAM;AACzBZ,IAAAA,eAAe,EAAE;AACjBQ,IAAAA,iBAAiB,CAAC;MAChBf,SAAS;MACTC,WAAW;MACXE,YAAY;MACZC,YAAY;AACZgB,MAAAA,aAAa,EAAElB;AACjB,KAAC,CAAC;GACH;EAED,oBACEmB,cAAA,CAACC,cAAM,EAAA;AACL,IAAA,aAAA,EAAY,uBAAuB;IACnCC,QAAQ,EAAEV,SAAS,IAAIR,UAAW;AAClCN,IAAAA,KAAK,EAAEA,KAAK,IAAIY,CAAC,CAAC,8BAA8B,CAAE;IAClDa,OAAO,EAAEX,SAAS,IAAIP,SAAU;AAChCmB,IAAAA,OAAO,EAAEN;AAAa,GACvB,CAAC;AAEN;;;;"}
@@ -0,0 +1,100 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var neetocist = require('neetocist');
5
+ var reactI18next = require('react-i18next');
6
+ var usePaymentApi = require('./usePaymentApi-BCE_Ql18.js');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var formik = require('@bigbinary/neetoui/formik');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ require('@tanstack/react-query');
11
+ require('axios');
12
+ require('./index-D6V3Vofs.js');
13
+ require('i18next');
14
+ require('neetocommons/constants');
15
+ require('decimal.js');
16
+ require('neetocommons/utils');
17
+ require('ramda');
18
+
19
+ const ConfirmCashPaymentButton = ({
20
+ paymentId,
21
+ payableId,
22
+ onSuccess = neetocist.noop
23
+ }) => {
24
+ const [isModalOpen, setIsModalOpen] = react.useState(false);
25
+ const {
26
+ t
27
+ } = reactI18next.useTranslation();
28
+ const {
29
+ mutate: updateUpiPayment,
30
+ isPending
31
+ } = usePaymentApi.useUpdateCashPayment(paymentId, {
32
+ onSuccess
33
+ });
34
+ const onClose = () => setIsModalOpen(false);
35
+ const handleSubmit = ({
36
+ notes
37
+ }) => {
38
+ const payload = {
39
+ notes,
40
+ payableId,
41
+ status: "successful"
42
+ };
43
+ updateUpiPayment(payload);
44
+ };
45
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
46
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
47
+ "data-testid": "confirm-cash-payment-button",
48
+ label: t("neetoPayments.common.confirmPayment"),
49
+ loading: isPending,
50
+ size: "small",
51
+ onClick: () => setIsModalOpen(true)
52
+ }), /*#__PURE__*/jsxRuntime.jsxs(neetoui.Modal, {
53
+ onClose,
54
+ isOpen: isModalOpen,
55
+ size: "large",
56
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Header, {
57
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
58
+ style: "h2",
59
+ children: t("neetoPayments.cash.confirmModal.title")
60
+ })
61
+ }), /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
62
+ formikProps: {
63
+ initialValues: {
64
+ notes: ""
65
+ },
66
+ onSubmit: handleSubmit
67
+ },
68
+ children: ({
69
+ isSubmitting
70
+ }) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
71
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Body, {
72
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.Textarea, {
73
+ "data-testid": "confirm-booking-modal-input-textfield",
74
+ label: t("neetoPayments.cash.confirmModal.notes"),
75
+ name: "notes",
76
+ placeholder: t("neetoPayments.cash.confirmModal.notesPlaceholder")
77
+ })
78
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Footer, {
79
+ className: "space-x-2",
80
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
81
+ isSubmitting: isPending,
82
+ position: "right",
83
+ cancelButtonProps: {
84
+ onClick: onClose,
85
+ style: "tertiary"
86
+ },
87
+ submitButtonProps: {
88
+ disabled: isSubmitting || isPending,
89
+ label: t("neetoPayments.common.confirm")
90
+ }
91
+ })
92
+ })]
93
+ })
94
+ })]
95
+ })]
96
+ });
97
+ };
98
+
99
+ module.exports = ConfirmCashPaymentButton;
100
+ //# sourceMappingURL=ConfirmCashPaymentButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmCashPaymentButton.js","sources":["../../app/javascript/src/components/ConfirmCashPaymentButton.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateCashPayment } from \"hooks/reactQuery/cash/usePaymentApi\";\nimport { Button, Modal, Typography } from \"neetoui\";\nimport { Form, Textarea, ActionBlock } from \"neetoui/formik\";\n\nconst ConfirmCashPaymentButton = ({\n paymentId,\n payableId,\n onSuccess = noop,\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const { mutate: updateUpiPayment, isPending } = useUpdateCashPayment(\n paymentId,\n { onSuccess }\n );\n\n const onClose = () => setIsModalOpen(false);\n\n const handleSubmit = ({ notes }) => {\n const payload = { notes, payableId, status: \"successful\" };\n updateUpiPayment(payload);\n };\n\n return (\n <>\n <Button\n data-testid=\"confirm-cash-payment-button\"\n label={t(\"neetoPayments.common.confirmPayment\")}\n loading={isPending}\n size=\"small\"\n onClick={() => setIsModalOpen(true)}\n />\n <Modal {...{ onClose }} isOpen={isModalOpen} size=\"large\">\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoPayments.cash.confirmModal.title\")}\n </Typography>\n </Modal.Header>\n <Form\n formikProps={{\n initialValues: { notes: \"\" },\n onSubmit: handleSubmit,\n }}\n >\n {({ isSubmitting }) => (\n <>\n <Modal.Body>\n <Textarea\n data-testid=\"confirm-booking-modal-input-textfield\"\n label={t(\"neetoPayments.cash.confirmModal.notes\")}\n name=\"notes\"\n placeholder={t(\n \"neetoPayments.cash.confirmModal.notesPlaceholder\"\n )}\n />\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <ActionBlock\n isSubmitting={isPending}\n position=\"right\"\n cancelButtonProps={{\n onClick: onClose,\n style: \"tertiary\",\n }}\n submitButtonProps={{\n disabled: isSubmitting || isPending,\n label: t(\"neetoPayments.common.confirm\"),\n }}\n />\n </Modal.Footer>\n </>\n )}\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default ConfirmCashPaymentButton;\n"],"names":["ConfirmCashPaymentButton","paymentId","payableId","onSuccess","noop","isModalOpen","setIsModalOpen","useState","t","useTranslation","mutate","updateUpiPayment","isPending","useUpdateCashPayment","onClose","handleSubmit","notes","payload","status","_jsxs","_Fragment","children","_jsx","Button","label","loading","size","onClick","Modal","isOpen","Header","Typography","style","Form","formikProps","initialValues","onSubmit","isSubmitting","Body","Textarea","name","placeholder","Footer","className","ActionBlock","position","cancelButtonProps","submitButtonProps","disabled"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var neetocist = require('neetocist');
4
+ var CopyToClipboardButton = require('@bigbinary/neeto-molecules/CopyToClipboardButton');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
8
+
9
+ var css = ".ant-table-cell-row-hover .identifier-copy-button{visibility:visible!important}";
10
+ n(css,{});
11
+
12
+ const CopyButtonWrapper = ({
13
+ content,
14
+ children
15
+ }) => /*#__PURE__*/jsxRuntime.jsxs("div", {
16
+ className: "flex items-center space-x-2",
17
+ children: [children, neetocist.isPresent(content) && /*#__PURE__*/jsxRuntime.jsx("div", {
18
+ className: "identifier-copy-button invisible",
19
+ children: /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
20
+ size: "small",
21
+ style: "text",
22
+ value: content
23
+ })
24
+ })]
25
+ });
26
+
27
+ exports.CopyButtonWrapper = CopyButtonWrapper;
28
+ exports.n = n;
29
+ //# sourceMappingURL=CopyButtonWrapper-I-kdKiiB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyButtonWrapper-I-kdKiiB.js","sources":["../../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../../app/javascript/src/components/Common/CopyButtonWrapper.jsx"],"sourcesContent":["var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import { isPresent } from \"neetocist\";\nimport CopyToClipboardButton from \"neetomolecules/CopyToClipboardButton\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/copy-button.css\";\n\nconst CopyButtonWrapper = ({ content, children }) => (\n <div className=\"flex items-center space-x-2\">\n {children}\n {isPresent(content) && (\n <div className=\"identifier-copy-button invisible\">\n <CopyToClipboardButton size=\"small\" style=\"text\" value={content} />\n </div>\n )}\n </div>\n);\n\nexport default CopyButtonWrapper;\n"],"names":["CopyButtonWrapper","content","children","_jsxs","className","isPresent","_jsx","CopyToClipboardButton","size","style","value"],"mappings":";;;;;;AAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;ACM/tBA,MAAAA,iBAAiB,GAAGA,CAAC;EAAEC,OAAO;AAAEC,EAAAA;AAAS,CAAC,kBAC9CC,eAAA,CAAA,KAAA,EAAA;AAAKC,EAAAA,SAAS,EAAC,6BAA6B;EAAAF,QAAA,EAAA,CACzCA,QAAQ,EACRG,mBAAS,CAACJ,OAAO,CAAC,iBACjBK,cAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,SAAS,EAAC,kCAAkC;IAAAF,QAAA,eAC/CI,cAAA,CAACC,qBAAqB,EAAA;AAACC,MAAAA,IAAI,EAAC,OAAO;AAACC,MAAAA,KAAK,EAAC,MAAM;AAACC,MAAAA,KAAK,EAAET;KAAU;AAAC,GAChE,CACN;AAAA,CACE;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,105 @@
1
+ 'use strict';
2
+
3
+ var reactI18next = require('react-i18next');
4
+ var reactUtils = require('neetocommons/react-utils');
5
+ var axios = require('axios');
6
+ var constants = require('./index-D6V3Vofs.js');
7
+ var reactQuery = require('@tanstack/react-query');
8
+ var ramda = require('ramda');
9
+ var queryConstants = require('./queryConstants-Dc6wh21D.js');
10
+ var neetoui = require('@bigbinary/neetoui');
11
+ var formik = require('@bigbinary/neetoui/formik');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+ require('i18next');
14
+ require('neetocommons/constants');
15
+ require('decimal.js');
16
+ require('neetocist');
17
+ require('neetocommons/utils');
18
+
19
+ const show = payableId => axios.get(`${constants.BASE_URL}/api/v1/public/recurring_payments/${payableId}`);
20
+ const update = ({
21
+ payableId,
22
+ payload
23
+ }) => axios.put(`${constants.BASE_URL}/api/v1/public/recurring_payments/${payableId}`, {
24
+ recurring_payment: payload
25
+ });
26
+ const recurringPaymentsApi = {
27
+ show,
28
+ update
29
+ };
30
+
31
+ const useFetchRecurringPayment = payableId => reactQuery.useQuery({
32
+ queryKey: [queryConstants.QUERY_KEYS.RECURRING_PAYMENT, payableId],
33
+ queryFn: () => recurringPaymentsApi.show(payableId),
34
+ enabled: ramda.isNotNil(payableId)
35
+ });
36
+ const useUpdateRecurringPayments = payableId => reactUtils.useMutationWithInvalidation(recurringPaymentsApi.update, {
37
+ keysToInvalidate: [queryConstants.QUERY_KEYS.RECURRING_PAYMENT, payableId]
38
+ });
39
+
40
+ const CustomerCancelRecurringPaymentForm = ({
41
+ payableId
42
+ }) => {
43
+ const {
44
+ t
45
+ } = reactI18next.useTranslation();
46
+ const {
47
+ isLoading,
48
+ data: {
49
+ recurringPayment
50
+ } = {}
51
+ } = useFetchRecurringPayment(payableId);
52
+ const {
53
+ isPending,
54
+ mutate: updateRecurringPayment
55
+ } = useUpdateRecurringPayments(payableId);
56
+ if (isLoading) {
57
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
58
+ className: "flex h-full w-full items-center justify-center",
59
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Spinner, {})
60
+ });
61
+ }
62
+ if (recurringPayment?.status === "cancelled") {
63
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
64
+ className: "flex h-full w-full items-center justify-center",
65
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
66
+ children: t("neetoPayments.recurringPaymentCancel.message")
67
+ })
68
+ });
69
+ }
70
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
71
+ className: "flex h-full w-full items-center justify-center",
72
+ children: /*#__PURE__*/jsxRuntime.jsxs(formik.Form, {
73
+ className: "space-y-6",
74
+ formikProps: {
75
+ onSubmit: ({
76
+ cancelReason
77
+ }) => updateRecurringPayment({
78
+ payableId,
79
+ payload: {
80
+ status: "cancelled",
81
+ cancelReason
82
+ }
83
+ }),
84
+ initialValues: {
85
+ cancelReason: ""
86
+ }
87
+ },
88
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik.Textarea, {
89
+ "data-testid": "cancel-meeting-input-textfield",
90
+ label: t("neetoPayments.recurringPaymentCancel.reasonLabel"),
91
+ name: "cancelReason",
92
+ placeholder: t("neetoPayments.recurringPaymentCancel.reasonPlaceholder")
93
+ }), /*#__PURE__*/jsxRuntime.jsx(formik.Button, {
94
+ "data-testid": "cancel-meeting-submit-button",
95
+ disabled: isPending,
96
+ label: t("neetoPayments.recurringPaymentCancel.buttonLabel"),
97
+ loading: isPending,
98
+ style: "danger"
99
+ })]
100
+ })
101
+ });
102
+ };
103
+
104
+ module.exports = CustomerCancelRecurringPaymentForm;
105
+ //# sourceMappingURL=CustomerCancelRecurringPaymentForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerCancelRecurringPaymentForm.js","sources":["../../app/javascript/src/apis/public/recurring_payments.js","../../app/javascript/src/hooks/reactQuery/public/useRecurringPaymentsApi.js","../../app/javascript/src/components/CustomerCancelRecurringPaymentForm/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst show = payableId =>\n axios.get(`${BASE_URL}/api/v1/public/recurring_payments/${payableId}`);\n\nconst update = ({ payableId, payload }) =>\n axios.put(`${BASE_URL}/api/v1/public/recurring_payments/${payableId}`, {\n recurring_payment: payload,\n });\n\nconst recurringPaymentsApi = { show, update };\n\nexport default recurringPaymentsApi;\n","import { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport recurringPaymentsApi from \"apis/public/recurring_payments\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { isNotNil } from \"ramda\";\n\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchRecurringPayment = payableId =>\n useQuery({\n queryKey: [QUERY_KEYS.RECURRING_PAYMENT, payableId],\n queryFn: () => recurringPaymentsApi.show(payableId),\n enabled: isNotNil(payableId),\n });\n\nexport const useUpdateRecurringPayments = payableId =>\n useMutationWithInvalidation(recurringPaymentsApi.update, {\n keysToInvalidate: [QUERY_KEYS.RECURRING_PAYMENT, payableId],\n });\n","import { useTranslation } from \"react-i18next\";\n\nimport {\n useUpdateRecurringPayments,\n useFetchRecurringPayment,\n} from \"hooks/reactQuery/public/useRecurringPaymentsApi\";\nimport { Typography, Spinner } from \"neetoui\";\nimport { Form, Textarea, Button } from \"neetoui/formik\";\n\nconst CustomerCancelRecurringPaymentForm = ({ payableId }) => {\n const { t } = useTranslation();\n\n const { isLoading, data: { recurringPayment } = {} } =\n useFetchRecurringPayment(payableId);\n\n const { isPending, mutate: updateRecurringPayment } =\n useUpdateRecurringPayments(payableId);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (recurringPayment?.status === \"cancelled\") {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Typography>\n {t(\"neetoPayments.recurringPaymentCancel.message\")}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Form\n className=\"space-y-6\"\n formikProps={{\n onSubmit: ({ cancelReason }) =>\n updateRecurringPayment({\n payableId,\n payload: { status: \"cancelled\", cancelReason },\n }),\n initialValues: { cancelReason: \"\" },\n }}\n >\n <Textarea\n data-testid=\"cancel-meeting-input-textfield\"\n label={t(\"neetoPayments.recurringPaymentCancel.reasonLabel\")}\n name=\"cancelReason\"\n placeholder={t(\n \"neetoPayments.recurringPaymentCancel.reasonPlaceholder\"\n )}\n />\n <Button\n data-testid=\"cancel-meeting-submit-button\"\n disabled={isPending}\n label={t(\"neetoPayments.recurringPaymentCancel.buttonLabel\")}\n loading={isPending}\n style=\"danger\"\n />\n </Form>\n </div>\n );\n};\n\nexport default CustomerCancelRecurringPaymentForm;\n"],"names":["show","payableId","axios","get","BASE_URL","update","payload","put","recurring_payment","recurringPaymentsApi","useFetchRecurringPayment","useQuery","queryKey","QUERY_KEYS","RECURRING_PAYMENT","queryFn","enabled","isNotNil","useUpdateRecurringPayments","useMutationWithInvalidation","keysToInvalidate","CustomerCancelRecurringPaymentForm","t","useTranslation","isLoading","data","recurringPayment","isPending","mutate","updateRecurringPayment","_jsx","className","children","Spinner","status","Typography","_jsxs","Form","formikProps","onSubmit","cancelReason","initialValues","Textarea","label","name","placeholder","Button","disabled","loading","style"],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var neetocist = require('neetocist');
5
+ var neetoIcons = require('@bigbinary/neeto-icons');
6
+ var ramda = require('ramda');
7
+ var reactI18next = require('react-i18next');
8
+ var reactQuery = require('@tanstack/react-query');
9
+ var axios = require('axios');
10
+ var constants = require('./index-D6V3Vofs.js');
11
+ var utils = require('neetocommons/utils');
12
+ var neetoui = require('@bigbinary/neetoui');
13
+ var exportChannel = require('./exportChannel-BL2RGGhP.js');
14
+ var jsxRuntime = require('react/jsx-runtime');
15
+
16
+ const create = payload => axios.post(`${constants.BASE_URL}/api/v1/exports`, {
17
+ export: payload
18
+ }, {
19
+ showToastr: false
20
+ });
21
+ const exportsApi = {
22
+ create
23
+ };
24
+
25
+ const useExportsData = () => reactQuery.useMutation({
26
+ mutationFn: exportsApi.create
27
+ });
28
+
29
+ const ExportModal = ({
30
+ filters,
31
+ dashboardKind,
32
+ holdableIds,
33
+ sortProperties,
34
+ isExportModalOpen,
35
+ setIsExportModalOpen
36
+ }) => {
37
+ const {
38
+ t
39
+ } = reactI18next.useTranslation();
40
+ const [downloadUrl, setDownloadUrl] = react.useState("");
41
+ const [isGenerating, setIsGenerating] = react.useState(false);
42
+ const {
43
+ tab = "all"
44
+ } = utils.getQueryParams();
45
+ const {
46
+ mutate: exportsData
47
+ } = useExportsData();
48
+ const token = react.useMemo(() => `${dashboardKind}-report-${constants.uuidV4()}`, [dashboardKind]);
49
+ const receivedCallback = data => {
50
+ if (!data.download_url) return;
51
+ setDownloadUrl(data.download_url);
52
+ setIsGenerating(false);
53
+ };
54
+ react.useEffect(() => {
55
+ if (isExportModalOpen) {
56
+ const channel = exportChannel.exportChannel(token, receivedCallback);
57
+ setDownloadUrl("");
58
+ setIsGenerating(false);
59
+ return () => {
60
+ channel.disconnected();
61
+ };
62
+ }
63
+ return undefined;
64
+ }, [isExportModalOpen, token]);
65
+ const onClose = () => setIsExportModalOpen(false);
66
+ const handleExport = () => {
67
+ setDownloadUrl("");
68
+ setIsGenerating(true);
69
+ const payload = ramda.mergeLeft(sortProperties, {
70
+ token,
71
+ filters,
72
+ tab,
73
+ holdableIds,
74
+ dashboard: neetocist.camelToSnakeCase(dashboardKind)
75
+ });
76
+ exportsData(payload);
77
+ };
78
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoui.Modal, {
79
+ onClose,
80
+ isOpen: isExportModalOpen,
81
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Header, {
82
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
83
+ style: "h2",
84
+ children: t(`neetoPayments.export.title.${dashboardKind}`)
85
+ })
86
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Body, {
87
+ children: isGenerating ? /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
88
+ style: "body2",
89
+ children: t("neetoPayments.export.pleaseWait")
90
+ }) : /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
91
+ style: "body2",
92
+ children: neetocist.isPresent(downloadUrl) ? t("neetoPayments.export.fileReady") : t(`neetoPayments.export.download.${dashboardKind}`)
93
+ })
94
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Footer, {
95
+ className: "space-x-2",
96
+ children: neetocist.isPresent(downloadUrl) ? /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
97
+ "data-testid": "neeto-payments-download-button",
98
+ href: downloadUrl,
99
+ icon: neetoIcons.Download,
100
+ label: t("neetoPayments.common.download"),
101
+ onClick: onClose
102
+ }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
103
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
104
+ "data-testid": "cancel-button",
105
+ disabled: isGenerating,
106
+ label: t("neetoPayments.common.cancel"),
107
+ style: "tertiary",
108
+ onClick: onClose
109
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
110
+ "data-testid": "neeto-payments-export-button",
111
+ disabled: isGenerating,
112
+ label: t("neetoPayments.common.export"),
113
+ loading: isGenerating,
114
+ onClick: handleExport
115
+ })]
116
+ })
117
+ })]
118
+ });
119
+ };
120
+
121
+ exports.ExportModal = ExportModal;
122
+ //# sourceMappingURL=ExportModal-DE-VcN1X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportModal-DE-VcN1X.js","sources":["../../app/javascript/src/apis/exports.js","../../app/javascript/src/hooks/reactQuery/useExportsApi.js","../../app/javascript/src/components/Common/ExportModal.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(\n `${BASE_URL}/api/v1/exports`,\n { export: payload },\n { showToastr: false }\n );\n\nconst exportsApi = { create };\n\nexport default exportsApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport exportsApi from \"apis/exports\";\n\nexport const useExportsData = () =>\n useMutation({ mutationFn: exportsApi.create });\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { isPresent, camelToSnakeCase } from \"neetocist\";\nimport { Download } from \"neetoicons\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useExportsData } from \"hooks/reactQuery/useExportsApi\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { Button, Modal, Typography } from \"neetoui\";\nimport exportChannel from \"src/channels/exportChannel\";\nimport { uuidV4 } from \"utils\";\n\nconst ExportModal = ({\n filters,\n dashboardKind,\n holdableIds,\n sortProperties,\n isExportModalOpen,\n setIsExportModalOpen,\n}) => {\n const { t } = useTranslation();\n const [downloadUrl, setDownloadUrl] = useState(\"\");\n const [isGenerating, setIsGenerating] = useState(false);\n\n const { tab = \"all\" } = getQueryParams();\n\n const { mutate: exportsData } = useExportsData();\n\n const token = useMemo(\n () => `${dashboardKind}-report-${uuidV4()}`,\n [dashboardKind]\n );\n\n const receivedCallback = data => {\n if (!data.download_url) return;\n setDownloadUrl(data.download_url);\n setIsGenerating(false);\n };\n\n useEffect(() => {\n if (isExportModalOpen) {\n const channel = exportChannel(token, receivedCallback);\n setDownloadUrl(\"\");\n setIsGenerating(false);\n\n return () => {\n channel.disconnected();\n };\n }\n\n return undefined;\n }, [isExportModalOpen, token]);\n\n const onClose = () => setIsExportModalOpen(false);\n\n const handleExport = () => {\n setDownloadUrl(\"\");\n setIsGenerating(true);\n const payload = mergeLeft(sortProperties, {\n token,\n filters,\n tab,\n holdableIds,\n dashboard: camelToSnakeCase(dashboardKind),\n });\n\n exportsData(payload);\n };\n\n return (\n <Modal {...{ onClose }} isOpen={isExportModalOpen}>\n <Modal.Header>\n <Typography style=\"h2\">\n {t(`neetoPayments.export.title.${dashboardKind}`)}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n {isGenerating ? (\n <Typography style=\"body2\">\n {t(\"neetoPayments.export.pleaseWait\")}\n </Typography>\n ) : (\n <Typography style=\"body2\">\n {isPresent(downloadUrl)\n ? t(\"neetoPayments.export.fileReady\")\n : t(`neetoPayments.export.download.${dashboardKind}`)}\n </Typography>\n )}\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n {isPresent(downloadUrl) ? (\n <Button\n data-testid=\"neeto-payments-download-button\"\n href={downloadUrl}\n icon={Download}\n label={t(\"neetoPayments.common.download\")}\n onClick={onClose}\n />\n ) : (\n <>\n <Button\n data-testid=\"cancel-button\"\n disabled={isGenerating}\n label={t(\"neetoPayments.common.cancel\")}\n style=\"tertiary\"\n onClick={onClose}\n />\n <Button\n data-testid=\"neeto-payments-export-button\"\n disabled={isGenerating}\n label={t(\"neetoPayments.common.export\")}\n loading={isGenerating}\n onClick={handleExport}\n />\n </>\n )}\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default ExportModal;\n"],"names":["create","payload","axios","post","BASE_URL","export","showToastr","exportsApi","useExportsData","useMutation","mutationFn","ExportModal","filters","dashboardKind","holdableIds","sortProperties","isExportModalOpen","setIsExportModalOpen","t","useTranslation","downloadUrl","setDownloadUrl","useState","isGenerating","setIsGenerating","tab","getQueryParams","mutate","exportsData","token","useMemo","uuidV4","receivedCallback","data","download_url","useEffect","channel","exportChannel","disconnected","undefined","onClose","handleExport","mergeLeft","dashboard","camelToSnakeCase","_jsxs","Modal","isOpen","children","_jsx","Header","Typography","style","Body","isPresent","Footer","className","Button","href","icon","Download","label","onClick","_Fragment","disabled","loading"],"mappings":"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"}