@bigbinary/neeto-payments-frontend 6.3.7 → 6.4.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.
Files changed (139) hide show
  1. package/dist/AccountsDashboard.js +5 -5
  2. package/dist/AdminCancelRecurringPaymentButton.js +2 -2
  3. package/dist/CashPaymentButton.js +2 -2
  4. package/dist/ConfirmCashPaymentButton.js +2 -2
  5. package/dist/CustomerCancelRecurringPaymentForm.js +2 -2
  6. package/dist/{ExportModal-k--5vSLt.js → ExportModal-Imx5pEqt.js} +3 -3
  7. package/dist/{ExportModal-k--5vSLt.js.map → ExportModal-Imx5pEqt.js.map} +1 -1
  8. package/dist/{ExportModal-Bun3pMGn.js → ExportModal-hqjn7q4w.js} +3 -3
  9. package/dist/{ExportModal-Bun3pMGn.js.map → ExportModal-hqjn7q4w.js.map} +1 -1
  10. package/dist/ManualUpiConnect.js +2 -2
  11. package/dist/ManualUpiPayment.js +2 -2
  12. package/dist/ManualUpiPaymentConfirmButton.js +2 -2
  13. package/dist/ManualUpiPaymentRejectButton.js +2 -2
  14. package/dist/PaymentsDashboard.js +5 -5
  15. package/dist/PayoutsDashboard.js +5 -5
  16. package/dist/PayoutsPage.js +4 -4
  17. package/dist/RazorpayConnect.js +2 -2
  18. package/dist/RazorpayLinkedAccountForm.js +2 -2
  19. package/dist/RazorpayPaymentButton.js +20 -11
  20. package/dist/RazorpayPaymentButton.js.map +1 -1
  21. package/dist/RecurringPaymentSettings.js +2 -2
  22. package/dist/RefundsDashboard.js +5 -5
  23. package/dist/SplitTransfersDashboard.js +4 -4
  24. package/dist/StripeCheckoutSetting.js +2 -2
  25. package/dist/StripeConnect.js +4 -4
  26. package/dist/StripeManage.js +2 -2
  27. package/dist/TaxesDashboard.js +2 -2
  28. package/dist/buildStripeTransactionLink.js +1 -1
  29. package/dist/cjs/RazorpayPaymentButton.js +19 -10
  30. package/dist/cjs/RazorpayPaymentButton.js.map +1 -1
  31. package/dist/cjs/index.js +9 -6
  32. package/dist/cjs/index.js.map +1 -1
  33. package/dist/cjs/razorpayCheckoutOutcome-DwerRK1B.js +96 -0
  34. package/dist/cjs/razorpayCheckoutOutcome-DwerRK1B.js.map +1 -0
  35. package/dist/cjs/useRazorpayPayment.js +20 -11
  36. package/dist/cjs/useRazorpayPayment.js.map +1 -1
  37. package/dist/cjs/v2/ManualUpiPayment.js +3 -3
  38. package/dist/cjs/v2/ManualUpiPayment.js.map +1 -1
  39. package/dist/cjs/v2/RazorpayPaymentButton.js +19 -10
  40. package/dist/cjs/v2/RazorpayPaymentButton.js.map +1 -1
  41. package/dist/cjs/v2/RazorpayWebsiteNotice.js +2 -2
  42. package/dist/cjs/v2/RazorpayWebsiteNotice.js.map +1 -1
  43. package/dist/cjs/v2/index.js +1 -1
  44. package/dist/constants.js +1 -1
  45. package/dist/{dashboard-Ba2uhKXD.js → dashboard-BP47wvu-.js} +2 -2
  46. package/dist/{dashboard-Ba2uhKXD.js.map → dashboard-BP47wvu-.js.map} +1 -1
  47. package/dist/getAddressElementOptions.js +1 -1
  48. package/dist/getAmountInLargestCurrencyUnit.js +1 -1
  49. package/dist/getAmountInSmallestCurrencyUnit.js +1 -1
  50. package/dist/getAmountWithAppliedTax.js +1 -1
  51. package/dist/getFormattedAmount.js +1 -1
  52. package/dist/getFormattedDiscountedAmount.js +1 -1
  53. package/dist/getFormattedDiscountedPercentage.js +1 -1
  54. package/dist/getFormattedTaxAmount.js +1 -1
  55. package/dist/getFormattedTipAmount.js +1 -1
  56. package/dist/getQrCodeValue.js +1 -1
  57. package/dist/getTaxAmount.js +1 -1
  58. package/dist/getTipAmount.js +1 -1
  59. package/dist/hasAmountToPay.js +1 -1
  60. package/dist/{index-CajHy3NQ.js → index-CpGnAY9G.js} +2 -2
  61. package/dist/{index-CajHy3NQ.js.map → index-CpGnAY9G.js.map} +1 -1
  62. package/dist/index.js +34 -28
  63. package/dist/index.js.map +1 -1
  64. package/dist/razorpayCheckoutOutcome-ChPKzUYJ.js +91 -0
  65. package/dist/razorpayCheckoutOutcome-ChPKzUYJ.js.map +1 -0
  66. package/dist/{renderFunctions-B9mVn_ag.js → renderFunctions-CcLI5Jq6.js} +2 -2
  67. package/dist/{renderFunctions-B9mVn_ag.js.map → renderFunctions-CcLI5Jq6.js.map} +1 -1
  68. package/dist/{useAccountsApi-CZyJ4R8Z.js → useAccountsApi-DF78k_sA.js} +2 -2
  69. package/dist/{useAccountsApi-CZyJ4R8Z.js.map → useAccountsApi-DF78k_sA.js.map} +1 -1
  70. package/dist/{useBusinessTypesApi-CS2aPq7Y.js → useBusinessTypesApi-DwddCKIb.js} +2 -2
  71. package/dist/{useBusinessTypesApi-CS2aPq7Y.js.map → useBusinessTypesApi-DwddCKIb.js.map} +1 -1
  72. package/dist/{useCheckoutSettingsApi-D1ZvMA4B.js → useCheckoutSettingsApi-B29sE02j.js} +2 -2
  73. package/dist/{useCheckoutSettingsApi-D1ZvMA4B.js.map → useCheckoutSettingsApi-B29sE02j.js.map} +1 -1
  74. package/dist/{useCountriesApi-ClXgwNgC.js → useCountriesApi-CSfkzWgq.js} +2 -2
  75. package/dist/{useCountriesApi-ClXgwNgC.js.map → useCountriesApi-CSfkzWgq.js.map} +1 -1
  76. package/dist/{useExportsApi-C1wjoVYy.js → useExportsApi-BCnxSe7P.js} +2 -2
  77. package/dist/{useExportsApi-C1wjoVYy.js.map → useExportsApi-BCnxSe7P.js.map} +1 -1
  78. package/dist/{useExportsApi-DA6ThV9b.js → useExportsApi-B_ABJiMX.js} +2 -2
  79. package/dist/{useExportsApi-DA6ThV9b.js.map → useExportsApi-B_ABJiMX.js.map} +1 -1
  80. package/dist/{useFetchData-8LLdmA74.js → useFetchData-Cleas8Tk.js} +2 -2
  81. package/dist/{useFetchData-8LLdmA74.js.map → useFetchData-Cleas8Tk.js.map} +1 -1
  82. package/dist/{useIntegrationsApi-BqU-lJql.js → useIntegrationsApi-BEZaeW9w.js} +2 -2
  83. package/dist/{useIntegrationsApi-BqU-lJql.js.map → useIntegrationsApi-BEZaeW9w.js.map} +1 -1
  84. package/dist/{usePaymentApi-gvPmTOWg.js → usePaymentApi-B0BXE-4o.js} +2 -2
  85. package/dist/{usePaymentApi-gvPmTOWg.js.map → usePaymentApi-B0BXE-4o.js.map} +1 -1
  86. package/dist/{usePaymentApi-CjtkL3IU.js → usePaymentApi-BfoBBuRN.js} +2 -2
  87. package/dist/{usePaymentApi-CjtkL3IU.js.map → usePaymentApi-BfoBBuRN.js.map} +1 -1
  88. package/dist/{usePaymentsApi-C2xbgHmw.js → usePaymentsApi-Ctl1XsA1.js} +2 -2
  89. package/dist/{usePaymentsApi-C2xbgHmw.js.map → usePaymentsApi-Ctl1XsA1.js.map} +1 -1
  90. package/dist/{usePlatformApi-Dug1pxaH.js → usePlatformApi-B29AJb-p.js} +2 -2
  91. package/dist/{usePlatformApi-Dug1pxaH.js.map → usePlatformApi-B29AJb-p.js.map} +1 -1
  92. package/dist/useRazorpayPayment.js +21 -12
  93. package/dist/useRazorpayPayment.js.map +1 -1
  94. package/dist/{useRecurringPaymentsApi-dbdBrh4V.js → useRecurringPaymentsApi-B6zvIYkm.js} +2 -2
  95. package/dist/{useRecurringPaymentsApi-dbdBrh4V.js.map → useRecurringPaymentsApi-B6zvIYkm.js.map} +1 -1
  96. package/dist/{useRecurringPaymentsApi-CkxjkZd2.js → useRecurringPaymentsApi-BTOeJ8Xu.js} +2 -2
  97. package/dist/{useRecurringPaymentsApi-CkxjkZd2.js.map → useRecurringPaymentsApi-BTOeJ8Xu.js.map} +1 -1
  98. package/dist/{useRecurringSettingsApi-B_kTDES9.js → useRecurringSettingsApi-Dkjo_BKx.js} +2 -2
  99. package/dist/{useRecurringSettingsApi-B_kTDES9.js.map → useRecurringSettingsApi-Dkjo_BKx.js.map} +1 -1
  100. package/dist/{useRefundsApi-DSMKTWIQ.js → useRefundsApi-Ce4HmQgn.js} +2 -2
  101. package/dist/{useRefundsApi-DSMKTWIQ.js.map → useRefundsApi-Ce4HmQgn.js.map} +1 -1
  102. package/dist/{useSplitTransfersApi-DlRs4wYh.js → useSplitTransfersApi-CDzhSH8q.js} +2 -2
  103. package/dist/{useSplitTransfersApi-DlRs4wYh.js.map → useSplitTransfersApi-CDzhSH8q.js.map} +1 -1
  104. package/dist/{useTaxesApi-BuPeVUxI.js → useTaxesApi-CNyTbsgK.js} +2 -2
  105. package/dist/{useTaxesApi-BuPeVUxI.js.map → useTaxesApi-CNyTbsgK.js.map} +1 -1
  106. package/dist/{useVpasApi-wicZ6o_z.js → useVpasApi-X1KhsMZl.js} +2 -2
  107. package/dist/{useVpasApi-wicZ6o_z.js.map → useVpasApi-X1KhsMZl.js.map} +1 -1
  108. package/dist/v2/AccountsDashboard.js +4 -4
  109. package/dist/v2/AdminCancelRecurringPaymentButton.js +2 -2
  110. package/dist/v2/CashPaymentButton.js +2 -2
  111. package/dist/v2/ConfirmCashPaymentButton.js +2 -2
  112. package/dist/v2/CustomerCancelRecurringPaymentForm.js +2 -2
  113. package/dist/v2/ManualUpiConnect.js +2 -2
  114. package/dist/v2/ManualUpiPayment.js +5 -5
  115. package/dist/v2/ManualUpiPayment.js.map +1 -1
  116. package/dist/v2/ManualUpiPaymentConfirmButton.js +2 -2
  117. package/dist/v2/ManualUpiPaymentRejectButton.js +2 -2
  118. package/dist/v2/PaymentsDashboard.js +5 -5
  119. package/dist/v2/PayoutsDashboard.js +4 -4
  120. package/dist/v2/PayoutsPage.js +3 -3
  121. package/dist/v2/RazorpayConnect.js +2 -2
  122. package/dist/v2/RazorpayLinkedAccountForm.js +2 -2
  123. package/dist/v2/RazorpayPaymentButton.js +20 -11
  124. package/dist/v2/RazorpayPaymentButton.js.map +1 -1
  125. package/dist/v2/RazorpayWebsiteNotice.js +2 -2
  126. package/dist/v2/RazorpayWebsiteNotice.js.map +1 -1
  127. package/dist/v2/RecurringPaymentSettings.js +2 -2
  128. package/dist/v2/RefundsDashboard.js +5 -5
  129. package/dist/v2/SplitTransfersDashboard.js +4 -4
  130. package/dist/v2/StripeCheckoutSetting.js +2 -2
  131. package/dist/v2/StripeConnect.js +4 -4
  132. package/dist/v2/StripeManage.js +2 -2
  133. package/dist/v2/TaxesDashboard.js +2 -2
  134. package/dist/v2/index.js +23 -23
  135. package/package.json +14 -14
  136. package/dist/cjs/usePaymentApi-B198Hd_a.js +0 -21
  137. package/dist/cjs/usePaymentApi-B198Hd_a.js.map +0 -1
  138. package/dist/usePaymentApi-BzB3rzNe.js +0 -19
  139. package/dist/usePaymentApi-BzB3rzNe.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ManualUpiPayment.js","sources":["../../../app/javascript/src/v2/components/ManualUpiPayment/constants.js","../../../app/javascript/src/v2/components/ManualUpiPayment/UpiTransactionIdInput.jsx","../../../app/javascript/src/v2/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const UPI_TRANSACTION_ID_LENGTH = 12;\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { UPI_TRANSACTION_ID_LENGTH as LENGTH } from \"./constants\";\n\nconst toSlots = value =>\n Array.from({ length: LENGTH }, (_, index) => value[index] ?? \"\");\n\nconst UpiTransactionIdInput = ({ name = \"identifier\" }) => {\n const { t } = useTranslation();\n const [, meta, helpers] = useField(name);\n const inputsRef = useRef([]);\n const [slots, setSlots] = useState(() =>\n toSlots((meta.initialValue ?? \"\").toString())\n );\n\n const sync = nextSlots => {\n setSlots(nextSlots);\n helpers.setValue(nextSlots.join(\"\"));\n };\n\n const setDigit = (index, digit) =>\n sync(slots.map((slot, i) => (i === index ? digit : slot)));\n\n const focusBox = index => inputsRef.current[index]?.focus();\n\n const handleChange = (index, event) => {\n const sanitized = event.target.value.replace(/\\D/g, \"\");\n setDigit(index, sanitized ? sanitized[sanitized.length - 1] : \"\");\n if (sanitized && index < LENGTH - 1) focusBox(index + 1);\n };\n\n const handleKeyDown = (index, event) => {\n if (event.key === \"Backspace\" && !slots[index] && index > 0) {\n event.preventDefault();\n setDigit(index - 1, \"\");\n focusBox(index - 1);\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n focusBox(index - 1);\n } else if (event.key === \"ArrowRight\" && index < LENGTH - 1) {\n focusBox(index + 1);\n }\n };\n\n const handlePaste = event => {\n event.preventDefault();\n const pasted = event.clipboardData\n .getData(\"text\")\n .replace(/\\D/g, \"\")\n .slice(0, LENGTH);\n if (!pasted) return;\n\n sync(toSlots(pasted));\n focusBox(Math.min(pasted.length, LENGTH - 1));\n };\n\n const showError = meta.touched && meta.error;\n\n return (\n <div>\n <Typography className=\"mb-2\" variant=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.transaction.label\")}\n </Typography>\n <div className=\"flex flex-wrap gap-2\" onPaste={handlePaste}>\n {slots.map((slot, index) => (\n <input\n autoComplete=\"off\"\n className=\"h-10 w-8 neeto-ui-rounded border neeto-ui-border-gray-300 text-center text-base focus:neeto-ui-border-gray-500 focus:outline-none\"\n data-testid={`upi-transaction-id-box-${index}`}\n inputMode=\"numeric\"\n key={index}\n maxLength={1}\n ref={element => (inputsRef.current[index] = element)}\n type=\"text\"\n value={slot}\n onBlur={() => helpers.setTouched(true)}\n onChange={event => handleChange(index, event)}\n onFocus={event => event.target.select()}\n onKeyDown={event => handleKeyDown(index, event)}\n />\n ))}\n </div>\n {showError && (\n <Typography className=\"neeto-ui-text-error-500 mt-1\" variant=\"body3\">\n {meta.error}\n </Typography>\n )}\n </div>\n );\n};\n\nexport default UpiTransactionIdInput;\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { Button, Toastr, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form } from \"@bigbinary/neeto-atoms/formik\";\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { X } from \"lucide-react\";\nimport { noop, isPresent } from \"neetocist\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\nimport UpiTransactionIdInput from \"./UpiTransactionIdInput\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography className=\"neeto-ui-text-gray-600\" variant=\"body2\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"flex flex-wrap gap-8\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 120, height: 120 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n variant=\"body2\"\n weight=\"medium\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <UpiTransactionIdInput name=\"identifier\" />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 border-border\" />\n <Typography className=\"uppercase\" color=\"muted\" variant=\"body2\">\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 border-border\" />\n </div>\n <div>\n <Typography className=\"mb-2\" variant=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 rounded border border-border\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -end-2 -top-2 rounded-full bg-background shadow-sm\"\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-border p-6 transition-colors hover:border-ring\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl text-muted-foreground\" />\n <Typography\n className=\"mt-1 text-blue-600 hover:underline\"\n variant=\"caption\"\n weight=\"medium\"\n >\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography color=\"muted\" variant=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","UPI_TRANSACTION_ID_LENGTH","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","toSlots","Array","from","LENGTH","_","index","UpiTransactionIdInput","name","useTranslation","meta","helpers","useField","inputsRef","useRef","slots","setSlots","useState","initialValue","sync","nextSlots","setValue","join","setDigit","digit","map","slot","i","focusBox","current","focus","handleChange","event","sanitized","target","replace","handleKeyDown","key","preventDefault","handlePaste","pasted","clipboardData","getData","slice","Math","min","showError","touched","error","_jsxs","children","_jsx","Typography","className","variant","weight","onPaste","autoComplete","inputMode","maxLength","ref","element","type","onBlur","setTouched","onChange","onFocus","select","onKeyDown","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","fileInputRef","setScreenshotFile","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","file","files","size","Toastr","maxSize","handleRemoveScreenshot","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","Form","formikProps","onSubmit","initialValues","dirty","_Fragment","count","vpaId","QRCodeImage","style","width","height","getQrCodeValue","color","alt","src","Button","icon","X","onClick","role","tabIndex","click","e","accept","ActionBlock","cancelButtonProps","label","disabled","submitButtonProps","loading"],"mappings":"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"}
1
+ {"version":3,"file":"ManualUpiPayment.js","sources":["../../../app/javascript/src/v2/components/ManualUpiPayment/constants.js","../../../app/javascript/src/v2/components/ManualUpiPayment/UpiTransactionIdInput.jsx","../../../app/javascript/src/v2/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const UPI_TRANSACTION_ID_LENGTH = 12;\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { useField } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { UPI_TRANSACTION_ID_LENGTH as LENGTH } from \"./constants\";\n\nconst toSlots = value =>\n Array.from({ length: LENGTH }, (_, index) => value[index] ?? \"\");\n\nconst UpiTransactionIdInput = ({ name = \"identifier\" }) => {\n const { t } = useTranslation();\n const [, meta, helpers] = useField(name);\n const inputsRef = useRef([]);\n const [slots, setSlots] = useState(() =>\n toSlots((meta.initialValue ?? \"\").toString())\n );\n\n const sync = nextSlots => {\n setSlots(nextSlots);\n helpers.setValue(nextSlots.join(\"\"));\n };\n\n const setDigit = (index, digit) =>\n sync(slots.map((slot, i) => (i === index ? digit : slot)));\n\n const focusBox = index => inputsRef.current[index]?.focus();\n\n const handleChange = (index, event) => {\n const sanitized = event.target.value.replace(/\\D/g, \"\");\n setDigit(index, sanitized ? sanitized[sanitized.length - 1] : \"\");\n if (sanitized && index < LENGTH - 1) focusBox(index + 1);\n };\n\n const handleKeyDown = (index, event) => {\n if (event.key === \"Backspace\" && !slots[index] && index > 0) {\n event.preventDefault();\n setDigit(index - 1, \"\");\n focusBox(index - 1);\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n focusBox(index - 1);\n } else if (event.key === \"ArrowRight\" && index < LENGTH - 1) {\n focusBox(index + 1);\n }\n };\n\n const handlePaste = event => {\n event.preventDefault();\n const pasted = event.clipboardData\n .getData(\"text\")\n .replace(/\\D/g, \"\")\n .slice(0, LENGTH);\n if (!pasted) return;\n\n sync(toSlots(pasted));\n focusBox(Math.min(pasted.length, LENGTH - 1));\n };\n\n const showError = meta.touched && meta.error;\n\n return (\n <div>\n <Typography className=\"mb-2\" variant=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.transaction.label\")}\n </Typography>\n <div className=\"flex flex-wrap gap-2\" onPaste={handlePaste}>\n {slots.map((slot, index) => (\n <input\n autoComplete=\"off\"\n className=\"h-10 w-8 rounded border border-gray-300 text-center text-base focus:border-gray-500 focus:outline-none\"\n data-testid={`upi-transaction-id-box-${index}`}\n inputMode=\"numeric\"\n key={index}\n maxLength={1}\n ref={element => (inputsRef.current[index] = element)}\n type=\"text\"\n value={slot}\n onBlur={() => helpers.setTouched(true)}\n onChange={event => handleChange(index, event)}\n onFocus={event => event.target.select()}\n onKeyDown={event => handleKeyDown(index, event)}\n />\n ))}\n </div>\n {showError && (\n <Typography className=\"text-error-500 mt-1\" variant=\"body3\">\n {meta.error}\n </Typography>\n )}\n </div>\n );\n};\n\nexport default UpiTransactionIdInput;\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { Button, Toastr, Typography } from \"@bigbinary/neeto-atoms\";\nimport { ActionBlock, Form } from \"@bigbinary/neeto-atoms/formik\";\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { X } from \"lucide-react\";\nimport { noop, isPresent } from \"neetocist\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\nimport UpiTransactionIdInput from \"./UpiTransactionIdInput\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography className=\"text-gray-600\" variant=\"body2\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"flex flex-wrap gap-8\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 120, height: 120 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n variant=\"body2\"\n weight=\"medium\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <UpiTransactionIdInput name=\"identifier\" />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 border-border\" />\n <Typography className=\"uppercase\" color=\"muted\" variant=\"body2\">\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 border-border\" />\n </div>\n <div>\n <Typography className=\"mb-2\" variant=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 rounded border border-border\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -end-2 -top-2 rounded-full bg-background shadow-sm\"\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-border p-6 transition-colors hover:border-ring\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl text-muted-foreground\" />\n <Typography\n className=\"mt-1 text-blue-600 hover:underline\"\n variant=\"caption\"\n weight=\"medium\"\n >\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography color=\"muted\" variant=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","UPI_TRANSACTION_ID_LENGTH","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","toSlots","Array","from","LENGTH","_","index","UpiTransactionIdInput","name","useTranslation","meta","helpers","useField","inputsRef","useRef","slots","setSlots","useState","initialValue","sync","nextSlots","setValue","join","setDigit","digit","map","slot","i","focusBox","current","focus","handleChange","event","sanitized","target","replace","handleKeyDown","key","preventDefault","handlePaste","pasted","clipboardData","getData","slice","Math","min","showError","touched","error","_jsxs","children","_jsx","Typography","className","variant","weight","onPaste","autoComplete","inputMode","maxLength","ref","element","type","onBlur","setTouched","onChange","onFocus","select","onKeyDown","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","fileInputRef","setScreenshotFile","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","file","files","size","Toastr","maxSize","handleRemoveScreenshot","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","Form","formikProps","onSubmit","initialValues","dirty","_Fragment","count","vpaId","QRCodeImage","style","width","height","getQrCodeValue","color","alt","src","Button","icon","X","onClick","role","tabIndex","click","e","accept","ActionBlock","cancelButtonProps","label","disabled","submitButtonProps","loading"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
+ var react = require('react');
3
4
  var neetoAtoms = require('@bigbinary/neeto-atoms');
4
5
  var neetocist = require('neetocist');
5
6
  var ramda = require('ramda');
6
7
  var reactI18next = require('react-i18next');
7
- var usePaymentApi = require('../usePaymentApi-B198Hd_a.js');
8
+ var razorpayCheckoutOutcome = require('../razorpayCheckoutOutcome-DwerRK1B.js');
8
9
  var constants = require('../index-CpEnC-Gq.js');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
  require('@tanstack/react-query');
@@ -43,11 +44,13 @@ const RazorpayPaymentButton = ({
43
44
  onBeforePayment = neetocist.noop,
44
45
  onSuccessfulPayment = neetocist.noop,
45
46
  onFailedPayment = neetocist.noop,
47
+ onPaymentCreated = neetocist.noop,
46
48
  onError = neetocist.noop
47
49
  }) => {
48
50
  const {
49
51
  t
50
52
  } = reactI18next.useTranslation();
53
+ const paymentRef = react.useRef(null);
51
54
  const openRazorpayCheckout = async options => {
52
55
  const script = await loadScript("https://checkout.razorpay.com/v1/checkout.js");
53
56
  if (!script) {
@@ -69,16 +72,22 @@ const RazorpayPaymentButton = ({
69
72
  });
70
73
  checkout.open();
71
74
  };
72
- const handlePayment = response => {
73
- if (neetocist.isNotPresent(response?.razorpay_signature)) {
74
- onFailedPayment();
75
- return;
76
- }
77
- onSuccessfulPayment();
78
- };
75
+ const handlePayment = response => razorpayCheckoutOutcome.verifyCheckoutPayment({
76
+ payment: paymentRef.current,
77
+ response,
78
+ onSuccessfulPayment,
79
+ onFailedPayment
80
+ });
81
+ const handleDismiss = () => razorpayCheckoutOutcome.resolveDismissedCheckout({
82
+ payment: paymentRef.current,
83
+ onSuccessfulPayment,
84
+ onFailedPayment
85
+ });
79
86
  const handleSuccess = ({
80
87
  payment
81
88
  }) => {
89
+ paymentRef.current = payment;
90
+ onPaymentCreated(payment);
82
91
  if (payment?.status === "successful") {
83
92
  return onSuccessfulPayment();
84
93
  }
@@ -96,7 +105,7 @@ const RazorpayPaymentButton = ({
96
105
  },
97
106
  modal: {
98
107
  confirm_close: true,
99
- ondismiss: onFailedPayment
108
+ ondismiss: handleDismiss
100
109
  },
101
110
  handler: handlePayment,
102
111
  theme: {
@@ -111,7 +120,7 @@ const RazorpayPaymentButton = ({
111
120
  const {
112
121
  isPending,
113
122
  mutate: createRazorpayOrder
114
- } = usePaymentApi.useCreateRazorpayPayment({
123
+ } = razorpayCheckoutOutcome.useCreateRazorpayPayment({
115
124
  onSuccess: handleSuccess,
116
125
  onError
117
126
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RazorpayPaymentButton.js","sources":["../../../app/javascript/src/v2/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { Button } from \"@bigbinary/neeto-atoms\";\nimport { isNotPresent, noop, findBy } from \"neetocist\";\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 contact,\n customAmount,\n isDisabled,\n isLoading,\n name,\n tip,\n theme = {},\n isPreserveDetailsChecked = false,\n numberOfInstallments = 1,\n payableType = null,\n onBeforePayment = noop,\n onSuccessfulPayment = noop,\n onFailedPayment = noop,\n onError = 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\n checkout.on(\"payment.failed\", response => {\n const errorDescription = response?.error?.description;\n const errorReason = response?.error?.reason;\n logger.error(\"Razorpay payment failed:\", {\n description: errorDescription,\n reason: errorReason,\n });\n onFailedPayment({ errorDescription, errorReason });\n });\n\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 themePrimaryColor = findBy(\n { key: \"primary_color\" },\n theme?.properties\n )?.value;\n\n const options = {\n key: payment.publicKey,\n order_id: payment.orderIdentifier,\n remember_customer: true,\n customer_id: payment.customerIdentifier,\n prefill: { name, email },\n modal: { confirm_close: true, ondismiss: onFailedPayment },\n handler: handlePayment,\n theme: { color: themePrimaryColor ?? \"#0da84c\" },\n };\n\n if (isPreserveDetailsChecked) {\n options[\"recurring\"] = \"1\";\n }\n\n return openRazorpayCheckout(\n mergeDeepLeft(RAZORPAY_PAYMENT_BUTTON_OPTIONS, options)\n );\n };\n\n const { isPending, mutate: createRazorpayOrder } = useCreateRazorpayPayment({\n onSuccess: handleSuccess,\n onError,\n });\n\n const handleClick = () => {\n onBeforePayment();\n const payload = {\n payableId,\n payableType,\n discountCode,\n customAmount,\n tipAttributes: tip,\n numberOfInstallments,\n customerAttributes: { email, name, contact },\n isCardPreservingEnabled: isPreserveDetailsChecked,\n };\n createRazorpayOrder(payload);\n };\n\n return (\n <Button\n disabled={isPending || isDisabled}\n label={label || t(\"neetoPayments.common.pay\")}\n loading={isPending || 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","label","payableId","discountCode","email","contact","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","onError","t","useTranslation","openRazorpayCheckout","options","logger","error","checkout","window","Razorpay","on","response","errorDescription","description","errorReason","reason","open","handlePayment","isNotPresent","razorpay_signature","handleSuccess","payment","status","themePrimaryColor","findBy","key","properties","value","publicKey","order_id","orderIdentifier","remember_customer","customer_id","customerIdentifier","prefill","modal","confirm_close","ondismiss","handler","color","mergeDeepLeft","RAZORPAY_PAYMENT_BUTTON_OPTIONS","isPending","mutate","createRazorpayOrder","useCreateRazorpayPayment","onSuccess","handleClick","payload","tipAttributes","customerAttributes","isCardPreservingEnabled","_jsx","Button","disabled","loading","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"RazorpayPaymentButton.js","sources":["../../../app/javascript/src/v2/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { useRef } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { noop, findBy } from \"neetocist\";\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\";\nimport {\n verifyCheckoutPayment,\n resolveDismissedCheckout,\n} from \"utils/razorpayCheckoutOutcome\";\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 contact,\n customAmount,\n isDisabled,\n isLoading,\n name,\n tip,\n theme = {},\n isPreserveDetailsChecked = false,\n numberOfInstallments = 1,\n payableType = null,\n onBeforePayment = noop,\n onSuccessfulPayment = noop,\n onFailedPayment = noop,\n onPaymentCreated = noop,\n onError = noop,\n}) => {\n const { t } = useTranslation();\n const paymentRef = useRef(null);\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\n checkout.on(\"payment.failed\", response => {\n const errorDescription = response?.error?.description;\n const errorReason = response?.error?.reason;\n logger.error(\"Razorpay payment failed:\", {\n description: errorDescription,\n reason: errorReason,\n });\n onFailedPayment({ errorDescription, errorReason });\n });\n\n checkout.open();\n };\n\n const handlePayment = response =>\n verifyCheckoutPayment({\n payment: paymentRef.current,\n response,\n onSuccessfulPayment,\n onFailedPayment,\n });\n\n const handleDismiss = () =>\n resolveDismissedCheckout({\n payment: paymentRef.current,\n onSuccessfulPayment,\n onFailedPayment,\n });\n\n const handleSuccess = ({ payment }) => {\n paymentRef.current = payment;\n onPaymentCreated(payment);\n\n if (payment?.status === \"successful\") {\n return onSuccessfulPayment();\n }\n\n const themePrimaryColor = findBy(\n { key: \"primary_color\" },\n theme?.properties\n )?.value;\n\n const options = {\n key: payment.publicKey,\n order_id: payment.orderIdentifier,\n remember_customer: true,\n customer_id: payment.customerIdentifier,\n prefill: { name, email },\n modal: { confirm_close: true, ondismiss: handleDismiss },\n handler: handlePayment,\n theme: { color: themePrimaryColor ?? \"#0da84c\" },\n };\n\n if (isPreserveDetailsChecked) {\n options[\"recurring\"] = \"1\";\n }\n\n return openRazorpayCheckout(\n mergeDeepLeft(RAZORPAY_PAYMENT_BUTTON_OPTIONS, options)\n );\n };\n\n const { isPending, mutate: createRazorpayOrder } = useCreateRazorpayPayment({\n onSuccess: handleSuccess,\n onError,\n });\n\n const handleClick = () => {\n onBeforePayment();\n const payload = {\n payableId,\n payableType,\n discountCode,\n customAmount,\n tipAttributes: tip,\n numberOfInstallments,\n customerAttributes: { email, name, contact },\n isCardPreservingEnabled: isPreserveDetailsChecked,\n };\n createRazorpayOrder(payload);\n };\n\n return (\n <Button\n disabled={isPending || isDisabled}\n label={label || t(\"neetoPayments.common.pay\")}\n loading={isPending || 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","label","payableId","discountCode","email","contact","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","onPaymentCreated","onError","t","useTranslation","paymentRef","useRef","openRazorpayCheckout","options","logger","error","checkout","window","Razorpay","on","response","errorDescription","description","errorReason","reason","open","handlePayment","verifyCheckoutPayment","payment","current","handleDismiss","resolveDismissedCheckout","handleSuccess","status","themePrimaryColor","findBy","key","properties","value","publicKey","order_id","orderIdentifier","remember_customer","customer_id","customerIdentifier","prefill","modal","confirm_close","ondismiss","handler","color","mergeDeepLeft","RAZORPAY_PAYMENT_BUTTON_OPTIONS","isPending","mutate","createRazorpayOrder","useCreateRazorpayPayment","onSuccess","handleClick","payload","tipAttributes","customerAttributes","isCardPreservingEnabled","_jsx","Button","disabled","loading","onClick"],"mappings":"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"}
@@ -40,7 +40,7 @@ const RazorpayWebsiteNotice = ({
40
40
  })
41
41
  }, host))
42
42
  }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
43
- className: "neeto-ui-text-gray-500",
43
+ className: "text-gray-500",
44
44
  variant: "body3",
45
45
  children: t("neetoPayments.razorpayWebsiteNotice.ignoreNote")
46
46
  })]
@@ -59,7 +59,7 @@ const RazorpayWebsiteNotice = ({
59
59
  hosts: usageHosts
60
60
  })
61
61
  }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
62
- className: "neeto-ui-text-gray-500",
62
+ className: "text-gray-500",
63
63
  variant: "body3",
64
64
  children: t("neetoPayments.razorpayWebsiteNotice.ignoreNote")
65
65
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"RazorpayWebsiteNotice.js","sources":["../../../app/javascript/src/v2/components/RazorpayWebsiteNotice.jsx"],"sourcesContent":["import { Callout, Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { pluck, uniq } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RazorpayWebsiteNotice = ({\n websiteHosts = [],\n crossProductRazorpayUsage = null,\n}) => {\n const { t } = useTranslation();\n\n const usages = crossProductRazorpayUsage?.usages ?? [];\n const usageHosts = uniq(pluck(\"host\", usages)).join(\", \");\n\n return (\n <>\n {isPresent(websiteHosts) && (\n <Callout className=\"my-2\" variant=\"info\">\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"h5\">\n {t(\"neetoPayments.razorpayWebsiteNotice.addUrlTitle\", {\n product: globalProps.appName,\n })}\n </Typography>\n <Typography variant=\"body2\">\n {t(\"neetoPayments.razorpayWebsiteNotice.addUrlBody\")}\n </Typography>\n <ul className=\"list-disc pl-5\">\n {websiteHosts.map(host => (\n <li key={host}>\n <Typography variant=\"body2\" weight=\"semibold\">\n {host}\n </Typography>\n </li>\n ))}\n </ul>\n <Typography className=\"neeto-ui-text-gray-500\" variant=\"body3\">\n {t(\"neetoPayments.razorpayWebsiteNotice.ignoreNote\")}\n </Typography>\n </div>\n </Callout>\n )}\n {isPresent(usages) && (\n <Callout className=\"my-2\" variant=\"warning\">\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"h5\">\n {t(\"neetoPayments.razorpayWebsiteNotice.crossProductTitle\")}\n </Typography>\n <Typography variant=\"body2\">\n {t(\"neetoPayments.razorpayWebsiteNotice.crossProductBody\", {\n hosts: usageHosts,\n })}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-500\" variant=\"body3\">\n {t(\"neetoPayments.razorpayWebsiteNotice.ignoreNote\")}\n </Typography>\n </div>\n </Callout>\n )}\n </>\n );\n};\n\nexport default RazorpayWebsiteNotice;\n"],"names":["RazorpayWebsiteNotice","websiteHosts","crossProductRazorpayUsage","t","useTranslation","usages","usageHosts","uniq","pluck","join","_jsxs","_Fragment","children","isPresent","_jsx","Callout","className","variant","Typography","product","globalProps","appName","map","host","weight","hosts"],"mappings":";;;;;;;;;AAMA,MAAMA,qBAAqB,GAAGA,CAAC;AAC7BC,EAAAA,YAAY,GAAG,EAAE;AACjBC,EAAAA,yBAAyB,GAAG;AAC9B,CAAC,KAAK;EACJ,MAAM;AAAEC,IAAAA;GAAG,GAAGC,2BAAc,EAAE;AAE9B,EAAA,MAAMC,MAAM,GAAGH,yBAAyB,EAAEG,MAAM,IAAI,EAAE;AACtD,EAAA,MAAMC,UAAU,GAAGC,UAAI,CAACC,WAAK,CAAC,MAAM,EAAEH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;EAEzD,oBACEC,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,CACGC,mBAAS,CAACZ,YAAY,CAAC,iBACtBa,cAAA,CAACC,kBAAO,EAAA;AAACC,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,OAAO,EAAC,MAAM;AAAAL,MAAAA,QAAA,eACtCF,eAAA,CAAA,KAAA,EAAA;AAAKM,QAAAA,SAAS,EAAC,qBAAqB;QAAAJ,QAAA,EAAA,cAClCE,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,IAAI;AAAAL,UAAAA,QAAA,EACrBT,CAAC,CAAC,iDAAiD,EAAE;YACpDgB,OAAO,EAAEC,wBAAW,CAACC;WACtB;AAAC,SACQ,CAAC,eACbP,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EACxBT,CAAC,CAAC,gDAAgD;SACzC,CAAC,eACbW,cAAA,CAAA,IAAA,EAAA;AAAIE,UAAAA,SAAS,EAAC,gBAAgB;AAAAJ,UAAAA,QAAA,EAC3BX,YAAY,CAACqB,GAAG,CAACC,IAAI,iBACpBT,cAAA,CAAA,IAAA,EAAA;YAAAF,QAAA,eACEE,cAAA,CAACI,qBAAU,EAAA;AAACD,cAAAA,OAAO,EAAC,OAAO;AAACO,cAAAA,MAAM,EAAC,UAAU;AAAAZ,cAAAA,QAAA,EAC1CW;aACS;AAAC,WAAA,EAHNA,IAIL,CACL;AAAC,SACA,CAAC,eACLT,cAAA,CAACI,qBAAU,EAAA;AAACF,UAAAA,SAAS,EAAC,wBAAwB;AAACC,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EAC3DT,CAAC,CAAC,gDAAgD;AAAC,SAC1C,CAAC;OACV;KACE,CACV,EACAU,mBAAS,CAACR,MAAM,CAAC,iBAChBS,cAAA,CAACC,kBAAO,EAAA;AAACC,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,OAAO,EAAC,SAAS;AAAAL,MAAAA,QAAA,eACzCF,eAAA,CAAA,KAAA,EAAA;AAAKM,QAAAA,SAAS,EAAC,qBAAqB;QAAAJ,QAAA,EAAA,cAClCE,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,IAAI;UAAAL,QAAA,EACrBT,CAAC,CAAC,uDAAuD;AAAC,SACjD,CAAC,eACbW,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,OAAO;AAAAL,UAAAA,QAAA,EACxBT,CAAC,CAAC,sDAAsD,EAAE;AACzDsB,YAAAA,KAAK,EAAEnB;WACR;AAAC,SACQ,CAAC,eACbQ,cAAA,CAACI,qBAAU,EAAA;AAACF,UAAAA,SAAS,EAAC,wBAAwB;AAACC,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EAC3DT,CAAC,CAAC,gDAAgD;AAAC,SAC1C,CAAC;OACV;AAAC,KACC,CACV;AAAA,GACD,CAAC;AAEP;;;;"}
1
+ {"version":3,"file":"RazorpayWebsiteNotice.js","sources":["../../../app/javascript/src/v2/components/RazorpayWebsiteNotice.jsx"],"sourcesContent":["import { Callout, Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { pluck, uniq } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RazorpayWebsiteNotice = ({\n websiteHosts = [],\n crossProductRazorpayUsage = null,\n}) => {\n const { t } = useTranslation();\n\n const usages = crossProductRazorpayUsage?.usages ?? [];\n const usageHosts = uniq(pluck(\"host\", usages)).join(\", \");\n\n return (\n <>\n {isPresent(websiteHosts) && (\n <Callout className=\"my-2\" variant=\"info\">\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"h5\">\n {t(\"neetoPayments.razorpayWebsiteNotice.addUrlTitle\", {\n product: globalProps.appName,\n })}\n </Typography>\n <Typography variant=\"body2\">\n {t(\"neetoPayments.razorpayWebsiteNotice.addUrlBody\")}\n </Typography>\n <ul className=\"list-disc pl-5\">\n {websiteHosts.map(host => (\n <li key={host}>\n <Typography variant=\"body2\" weight=\"semibold\">\n {host}\n </Typography>\n </li>\n ))}\n </ul>\n <Typography className=\"text-gray-500\" variant=\"body3\">\n {t(\"neetoPayments.razorpayWebsiteNotice.ignoreNote\")}\n </Typography>\n </div>\n </Callout>\n )}\n {isPresent(usages) && (\n <Callout className=\"my-2\" variant=\"warning\">\n <div className=\"flex flex-col gap-1\">\n <Typography variant=\"h5\">\n {t(\"neetoPayments.razorpayWebsiteNotice.crossProductTitle\")}\n </Typography>\n <Typography variant=\"body2\">\n {t(\"neetoPayments.razorpayWebsiteNotice.crossProductBody\", {\n hosts: usageHosts,\n })}\n </Typography>\n <Typography className=\"text-gray-500\" variant=\"body3\">\n {t(\"neetoPayments.razorpayWebsiteNotice.ignoreNote\")}\n </Typography>\n </div>\n </Callout>\n )}\n </>\n );\n};\n\nexport default RazorpayWebsiteNotice;\n"],"names":["RazorpayWebsiteNotice","websiteHosts","crossProductRazorpayUsage","t","useTranslation","usages","usageHosts","uniq","pluck","join","_jsxs","_Fragment","children","isPresent","_jsx","Callout","className","variant","Typography","product","globalProps","appName","map","host","weight","hosts"],"mappings":";;;;;;;;;AAMA,MAAMA,qBAAqB,GAAGA,CAAC;AAC7BC,EAAAA,YAAY,GAAG,EAAE;AACjBC,EAAAA,yBAAyB,GAAG;AAC9B,CAAC,KAAK;EACJ,MAAM;AAAEC,IAAAA;GAAG,GAAGC,2BAAc,EAAE;AAE9B,EAAA,MAAMC,MAAM,GAAGH,yBAAyB,EAAEG,MAAM,IAAI,EAAE;AACtD,EAAA,MAAMC,UAAU,GAAGC,UAAI,CAACC,WAAK,CAAC,MAAM,EAAEH,MAAM,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;EAEzD,oBACEC,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,CACGC,mBAAS,CAACZ,YAAY,CAAC,iBACtBa,cAAA,CAACC,kBAAO,EAAA;AAACC,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,OAAO,EAAC,MAAM;AAAAL,MAAAA,QAAA,eACtCF,eAAA,CAAA,KAAA,EAAA;AAAKM,QAAAA,SAAS,EAAC,qBAAqB;QAAAJ,QAAA,EAAA,cAClCE,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,IAAI;AAAAL,UAAAA,QAAA,EACrBT,CAAC,CAAC,iDAAiD,EAAE;YACpDgB,OAAO,EAAEC,wBAAW,CAACC;WACtB;AAAC,SACQ,CAAC,eACbP,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EACxBT,CAAC,CAAC,gDAAgD;SACzC,CAAC,eACbW,cAAA,CAAA,IAAA,EAAA;AAAIE,UAAAA,SAAS,EAAC,gBAAgB;AAAAJ,UAAAA,QAAA,EAC3BX,YAAY,CAACqB,GAAG,CAACC,IAAI,iBACpBT,cAAA,CAAA,IAAA,EAAA;YAAAF,QAAA,eACEE,cAAA,CAACI,qBAAU,EAAA;AAACD,cAAAA,OAAO,EAAC,OAAO;AAACO,cAAAA,MAAM,EAAC,UAAU;AAAAZ,cAAAA,QAAA,EAC1CW;aACS;AAAC,WAAA,EAHNA,IAIL,CACL;AAAC,SACA,CAAC,eACLT,cAAA,CAACI,qBAAU,EAAA;AAACF,UAAAA,SAAS,EAAC,eAAe;AAACC,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EAClDT,CAAC,CAAC,gDAAgD;AAAC,SAC1C,CAAC;OACV;KACE,CACV,EACAU,mBAAS,CAACR,MAAM,CAAC,iBAChBS,cAAA,CAACC,kBAAO,EAAA;AAACC,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,OAAO,EAAC,SAAS;AAAAL,MAAAA,QAAA,eACzCF,eAAA,CAAA,KAAA,EAAA;AAAKM,QAAAA,SAAS,EAAC,qBAAqB;QAAAJ,QAAA,EAAA,cAClCE,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,IAAI;UAAAL,QAAA,EACrBT,CAAC,CAAC,uDAAuD;AAAC,SACjD,CAAC,eACbW,cAAA,CAACI,qBAAU,EAAA;AAACD,UAAAA,OAAO,EAAC,OAAO;AAAAL,UAAAA,QAAA,EACxBT,CAAC,CAAC,sDAAsD,EAAE;AACzDsB,YAAAA,KAAK,EAAEnB;WACR;AAAC,SACQ,CAAC,eACbQ,cAAA,CAACI,qBAAU,EAAA;AAACF,UAAAA,SAAS,EAAC,eAAe;AAACC,UAAAA,OAAO,EAAC,OAAO;UAAAL,QAAA,EAClDT,CAAC,CAAC,gDAAgD;AAAC,SAC1C,CAAC;OACV;AAAC,KACC,CACV;AAAA,GACD,CAAC;AAEP;;;;"}
@@ -84,7 +84,7 @@ require('@bigbinary/neeto-molecules/v2/Container');
84
84
  require('../useIntegrationsApi-CNrrE2OH.js');
85
85
  require('@bigbinary/neeto-molecules/v2/PhoneNumber');
86
86
  require('../useBusinessTypesApi-D_td8mux.js');
87
- require('../usePaymentApi-B198Hd_a.js');
87
+ require('../razorpayCheckoutOutcome-DwerRK1B.js');
88
88
  require('neetocommons/initializers');
89
89
  require('../useRecurringSettingsApi-CDA5wZnB.js');
90
90
  require('../useRefundsApi-enBsXWAk.js');
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'i18next';
2
2
  import 'neetocommons/constants';
3
- export { A as ASSOCIATED_TABLE_COLUMNS, B as BASE_URL, C as CURRENCY_OPTIONS, y as DASHBOARD_KIND, D as DEFAULT_PAGE_VALUES, z as DEFAULT_SORT_PROPERTIES, o as DEFAULT_TAG_STYLE, E as ERROR_TYPE, K as FILTER_COLUMNS, M as MAX_POLLING_TIME, J as PAYMENT_KIND, q as PAYMENT_PROVIDERS, L as PAYMENT_STATUS_TYPE, P as POLLING_INTERVAL, N as RAZORPAY_CURRENCY_OPTIONS, R as RAZORPAY_PAYMENT_BUTTON_OPTIONS, O as REFUND_STATUS_TYPE, S as SORT_DIRECTIONS, F as STRIPE_CONNECT_ENDPOINT, Q as STRIPE_CURRENCY_OPTIONS, V as STRIPE_DASHBOARD_LINK, T as TAG_STYLE, W as TIP_KIND, U as UN_HIDEABLE_COLUMNS, Z as ZERO_DECIMAL_CURRENCIES } from './index-CajHy3NQ.js';
3
+ export { A as ASSOCIATED_TABLE_COLUMNS, B as BASE_URL, C as CURRENCY_OPTIONS, y as DASHBOARD_KIND, D as DEFAULT_PAGE_VALUES, z as DEFAULT_SORT_PROPERTIES, h as DEFAULT_TAG_STYLE, E as ERROR_TYPE, K as FILTER_COLUMNS, M as MAX_POLLING_TIME, J as PAYMENT_KIND, q as PAYMENT_PROVIDERS, L as PAYMENT_STATUS_TYPE, P as POLLING_INTERVAL, N as RAZORPAY_CURRENCY_OPTIONS, R as RAZORPAY_PAYMENT_BUTTON_OPTIONS, O as REFUND_STATUS_TYPE, S as SORT_DIRECTIONS, F as STRIPE_CONNECT_ENDPOINT, Q as STRIPE_CURRENCY_OPTIONS, V as STRIPE_DASHBOARD_LINK, T as TAG_STYLE, W as TIP_KIND, U as UN_HIDEABLE_COLUMNS, Z as ZERO_DECIMAL_CURRENCIES } from './index-CpGnAY9G.js';
4
4
  import 'decimal.js';
5
5
  import 'neetocist';
6
6
  import 'neetocommons/utils';
@@ -1,6 +1,6 @@
1
1
  import { camelToSnakeCase } from 'neetocist';
2
2
  import { isEmpty, assoc, modify, concat } from 'ramda';
3
- import { D as DEFAULT_PAGE_VALUES } from './index-CajHy3NQ.js';
3
+ import { D as DEFAULT_PAGE_VALUES } from './index-CpGnAY9G.js';
4
4
 
5
5
  const buildEnforcedFilter = (enforceFilter, filterableColumns) => {
6
6
  const {
@@ -74,4 +74,4 @@ const buildRowData = ({
74
74
  }));
75
75
 
76
76
  export { buildPayload as a, buildDefaultPageProperties as b, buildRowData as c, mergeEnforcedFilters as m };
77
- //# sourceMappingURL=dashboard-Ba2uhKXD.js.map
77
+ //# sourceMappingURL=dashboard-BP47wvu-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-Ba2uhKXD.js","sources":["../app/javascript/src/utils/dashboard.js"],"sourcesContent":["import { camelToSnakeCase } from \"neetocist\";\nimport { assoc, concat, isEmpty, modify } from \"ramda\";\n\nconst buildEnforcedFilter = (enforceFilter, filterableColumns) => {\n const { key, value, rule, node } = enforceFilter;\n const filterConfig = filterableColumns.find(col => col.key === key);\n\n if (!filterConfig) return null;\n\n return {\n conditions: [\n {\n key,\n node: node || filterConfig.node,\n model: filterConfig.model,\n type: filterConfig.type,\n values: value,\n rule,\n value,\n },\n ],\n };\n};\n\nexport const mergeEnforcedFilters = (\n filters = [],\n enforceFilterValues = [],\n filterableColumns = []\n) => {\n if (isEmpty(enforceFilterValues)) return filters;\n\n // Build full filter objects from enforced values using filterableColumns config\n const enforcedFilters = enforceFilterValues\n .map(enforceFilter => buildEnforcedFilter(enforceFilter, filterableColumns))\n .filter(Boolean);\n\n // Simply append enforced filters to existing filters\n return concat(filters, enforcedFilters);\n};\n\nimport { DEFAULT_PAGE_VALUES } from \"src/constants\";\n\nconst processSortProperties = sortProperties => {\n if (sortProperties.sortBy === \"payment_amount\") {\n return assoc(\n \"sortBy\",\n \"neeto_payments_engine_payments.amount\",\n sortProperties\n );\n }\n\n if (\n sortProperties.sortBy === \"email\" ||\n sortProperties.sortBy === \"first_name\"\n ) {\n return modify(\"sortBy\", concat(\"users.\"), sortProperties);\n }\n\n if (sortProperties.sortBy === \"payable,ends_at\") {\n return assoc(\"sortBy\", \"bookings.ends_at\", sortProperties);\n }\n\n return sortProperties;\n};\n\nexport const buildDefaultPageProperties = tabs =>\n tabs.reduce(\n (pageProperties, tab) => ({\n ...pageProperties,\n [tab]: DEFAULT_PAGE_VALUES,\n }),\n {}\n );\n\nexport const buildPayload = ({\n tab,\n filters,\n pageProperties,\n sortProperties = {},\n payoutId = null,\n}) => ({\n tab: camelToSnakeCase(tab),\n payoutId,\n page: pageProperties[tab]?.page,\n pageSize: pageProperties[tab]?.pageSize,\n filters,\n ...processSortProperties(sortProperties),\n});\n\nexport const buildRowData = ({ data, pageProperties = {}, tab = \"all\" }) =>\n data.map((element, index) => ({\n ...element,\n payable: element.payable,\n identifier: element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) +\n index +\n 1,\n }));\n"],"names":["buildEnforcedFilter","enforceFilter","filterableColumns","key","value","rule","node","filterConfig","find","col","conditions","model","type","values","mergeEnforcedFilters","filters","enforceFilterValues","isEmpty","enforcedFilters","map","filter","Boolean","concat","processSortProperties","sortProperties","sortBy","assoc","modify","buildDefaultPageProperties","tabs","reduce","pageProperties","tab","DEFAULT_PAGE_VALUES","buildPayload","payoutId","camelToSnakeCase","page","pageSize","buildRowData","data","element","index","payable","identifier","id"],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-BP47wvu-.js","sources":["../app/javascript/src/utils/dashboard.js"],"sourcesContent":["import { camelToSnakeCase } from \"neetocist\";\nimport { assoc, concat, isEmpty, modify } from \"ramda\";\n\nconst buildEnforcedFilter = (enforceFilter, filterableColumns) => {\n const { key, value, rule, node } = enforceFilter;\n const filterConfig = filterableColumns.find(col => col.key === key);\n\n if (!filterConfig) return null;\n\n return {\n conditions: [\n {\n key,\n node: node || filterConfig.node,\n model: filterConfig.model,\n type: filterConfig.type,\n values: value,\n rule,\n value,\n },\n ],\n };\n};\n\nexport const mergeEnforcedFilters = (\n filters = [],\n enforceFilterValues = [],\n filterableColumns = []\n) => {\n if (isEmpty(enforceFilterValues)) return filters;\n\n // Build full filter objects from enforced values using filterableColumns config\n const enforcedFilters = enforceFilterValues\n .map(enforceFilter => buildEnforcedFilter(enforceFilter, filterableColumns))\n .filter(Boolean);\n\n // Simply append enforced filters to existing filters\n return concat(filters, enforcedFilters);\n};\n\nimport { DEFAULT_PAGE_VALUES } from \"src/constants\";\n\nconst processSortProperties = sortProperties => {\n if (sortProperties.sortBy === \"payment_amount\") {\n return assoc(\n \"sortBy\",\n \"neeto_payments_engine_payments.amount\",\n sortProperties\n );\n }\n\n if (\n sortProperties.sortBy === \"email\" ||\n sortProperties.sortBy === \"first_name\"\n ) {\n return modify(\"sortBy\", concat(\"users.\"), sortProperties);\n }\n\n if (sortProperties.sortBy === \"payable,ends_at\") {\n return assoc(\"sortBy\", \"bookings.ends_at\", sortProperties);\n }\n\n return sortProperties;\n};\n\nexport const buildDefaultPageProperties = tabs =>\n tabs.reduce(\n (pageProperties, tab) => ({\n ...pageProperties,\n [tab]: DEFAULT_PAGE_VALUES,\n }),\n {}\n );\n\nexport const buildPayload = ({\n tab,\n filters,\n pageProperties,\n sortProperties = {},\n payoutId = null,\n}) => ({\n tab: camelToSnakeCase(tab),\n payoutId,\n page: pageProperties[tab]?.page,\n pageSize: pageProperties[tab]?.pageSize,\n filters,\n ...processSortProperties(sortProperties),\n});\n\nexport const buildRowData = ({ data, pageProperties = {}, tab = \"all\" }) =>\n data.map((element, index) => ({\n ...element,\n payable: element.payable,\n identifier: element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) +\n index +\n 1,\n }));\n"],"names":["buildEnforcedFilter","enforceFilter","filterableColumns","key","value","rule","node","filterConfig","find","col","conditions","model","type","values","mergeEnforcedFilters","filters","enforceFilterValues","isEmpty","enforcedFilters","map","filter","Boolean","concat","processSortProperties","sortProperties","sortBy","assoc","modify","buildDefaultPageProperties","tabs","reduce","pageProperties","tab","DEFAULT_PAGE_VALUES","buildPayload","payoutId","camelToSnakeCase","page","pageSize","buildRowData","data","element","index","payable","identifier","id"],"mappings":";;;;AAGA,MAAMA,mBAAmB,GAAGA,CAACC,aAAa,EAAEC,iBAAiB,KAAK;EAChE,MAAM;IAAEC,GAAG;IAAEC,KAAK;IAAEC,IAAI;AAAEC,IAAAA;AAAK,GAAC,GAAGL,aAAa;AAChD,EAAA,MAAMM,YAAY,GAAGL,iBAAiB,CAACM,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACN,GAAG,KAAKA,GAAG,CAAC;AAEnE,EAAA,IAAI,CAACI,YAAY,EAAE,OAAO,IAAI;EAE9B,OAAO;AACLG,IAAAA,UAAU,EAAE,CACV;MACEP,GAAG;AACHG,MAAAA,IAAI,EAAEA,IAAI,IAAIC,YAAY,CAACD,IAAI;MAC/BK,KAAK,EAAEJ,YAAY,CAACI,KAAK;MACzBC,IAAI,EAAEL,YAAY,CAACK,IAAI;AACvBC,MAAAA,MAAM,EAAET,KAAK;MACbC,IAAI;AACJD,MAAAA;KACD;GAEJ;AACH,CAAC;AAEM,MAAMU,oBAAoB,GAAGA,CAClCC,OAAO,GAAG,EAAE,EACZC,mBAAmB,GAAG,EAAE,EACxBd,iBAAiB,GAAG,EAAE,KACnB;AACH,EAAA,IAAIe,OAAO,CAACD,mBAAmB,CAAC,EAAE,OAAOD,OAAO;;AAEhD;AACA,EAAA,MAAMG,eAAe,GAAGF,mBAAmB,CACxCG,GAAG,CAAClB,aAAa,IAAID,mBAAmB,CAACC,aAAa,EAAEC,iBAAiB,CAAC,CAAC,CAC3EkB,MAAM,CAACC,OAAO,CAAC;;AAElB;AACA,EAAA,OAAOC,MAAM,CAACP,OAAO,EAAEG,eAAe,CAAC;AACzC;AAIA,MAAMK,qBAAqB,GAAGC,cAAc,IAAI;AAC9C,EAAA,IAAIA,cAAc,CAACC,MAAM,KAAK,gBAAgB,EAAE;AAC9C,IAAA,OAAOC,KAAK,CACV,QAAQ,EACR,uCAAuC,EACvCF,cACF,CAAC;AACH,EAAA;EAEA,IACEA,cAAc,CAACC,MAAM,KAAK,OAAO,IACjCD,cAAc,CAACC,MAAM,KAAK,YAAY,EACtC;IACA,OAAOE,MAAM,CAAC,QAAQ,EAAEL,MAAM,CAAC,QAAQ,CAAC,EAAEE,cAAc,CAAC;AAC3D,EAAA;AAEA,EAAA,IAAIA,cAAc,CAACC,MAAM,KAAK,iBAAiB,EAAE;AAC/C,IAAA,OAAOC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,EAAEF,cAAc,CAAC;AAC5D,EAAA;AAEA,EAAA,OAAOA,cAAc;AACvB,CAAC;AAEM,MAAMI,0BAA0B,GAAGC,IAAI,IAC5CA,IAAI,CAACC,MAAM,CACT,CAACC,cAAc,EAAEC,GAAG,MAAM;AACxB,EAAA,GAAGD,cAAc;AACjB,EAAA,CAACC,GAAG,GAAGC;AACT,CAAC,CAAC,EACF,EACF;AAEK,MAAMC,YAAY,GAAGA,CAAC;EAC3BF,GAAG;EACHjB,OAAO;EACPgB,cAAc;EACdP,cAAc,GAAG,EAAE;AACnBW,EAAAA,QAAQ,GAAG;AACb,CAAC,MAAM;AACLH,EAAAA,GAAG,EAAEI,gBAAgB,CAACJ,GAAG,CAAC;EAC1BG,QAAQ;AACRE,EAAAA,IAAI,EAAEN,cAAc,CAACC,GAAG,CAAC,EAAEK,IAAI;AAC/BC,EAAAA,QAAQ,EAAEP,cAAc,CAACC,GAAG,CAAC,EAAEM,QAAQ;EACvCvB,OAAO;EACP,GAAGQ,qBAAqB,CAACC,cAAc;AACzC,CAAC;AAEM,MAAMe,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAET,cAAc,GAAG,EAAE;AAAEC,EAAAA,GAAG,GAAG;AAAM,CAAC,KACrEQ,IAAI,CAACrB,GAAG,CAAC,CAACsB,OAAO,EAAEC,KAAK,MAAM;AAC5B,EAAA,GAAGD,OAAO;EACVE,OAAO,EAAEF,OAAO,CAACE,OAAO;AACxBC,EAAAA,UAAU,EAAEH,OAAO;AACnBI,EAAAA,EAAE,EAAE5B,OAAO,CAACc,cAAc,CAAC,GACvBW,KAAK,GAAG,CAAC,GACTX,cAAc,CAACC,GAAG,CAAC,EAAEM,QAAQ,IAAIP,cAAc,CAACC,GAAG,CAAC,EAAEK,IAAI,GAAG,CAAC,CAAC,GAC/DK,KAAK,GACL;AACN,CAAC,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- import { g as getAddressElementOptions } from './index-CajHy3NQ.js';
1
+ import { g as getAddressElementOptions } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { a as getAmountInLargestCurrencyUnit } from './index-CajHy3NQ.js';
1
+ import { c as getAmountInLargestCurrencyUnit } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { c as getAmountInSmallestCurrencyUnit } from './index-CajHy3NQ.js';
1
+ import { a as getAmountInSmallestCurrencyUnit } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { d as getAmountWithAppliedTax } from './index-CajHy3NQ.js';
1
+ import { k as getAmountWithAppliedTax } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { e as getFormattedAmount } from './index-CajHy3NQ.js';
1
+ import { d as getFormattedAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { f as getFormattedDiscountedAmount } from './index-CajHy3NQ.js';
1
+ import { l as getFormattedDiscountedAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { h as getFormattedDiscountedPercentage } from './index-CajHy3NQ.js';
1
+ import { m as getFormattedDiscountedPercentage } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { i as getFormattedTaxAmount } from './index-CajHy3NQ.js';
1
+ import { e as getFormattedTaxAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { j as getFormattedTipAmount } from './index-CajHy3NQ.js';
1
+ import { i as getFormattedTipAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { k as getQrCodeValue } from './index-CajHy3NQ.js';
1
+ import { o as getQrCodeValue } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { l as getTaxAmount } from './index-CajHy3NQ.js';
1
+ import { j as getTaxAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { m as getTipAmount } from './index-CajHy3NQ.js';
1
+ import { f as getTipAmount } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -1,4 +1,4 @@
1
- import { n as hasAmountToPay } from './index-CajHy3NQ.js';
1
+ import { n as hasAmountToPay } from './index-CpGnAY9G.js';
2
2
  import 'i18next';
3
3
  import 'neetocommons/constants';
4
4
  import 'decimal.js';
@@ -804,5 +804,5 @@ const ERROR_TYPE = {
804
804
  processing_error: "processing_error"
805
805
  };
806
806
 
807
- export { ASSOCIATED_TABLE_COLUMNS as A, BASE_URL as B, CURRENCY_OPTIONS as C, DEFAULT_PAGE_VALUES as D, ERROR_TYPE as E, STRIPE_CONNECT_ENDPOINT as F, buildStripeAccountLink as G, preProcessStatus as H, getTagStyle as I, PAYMENT_KIND as J, FILTER_COLUMNS as K, PAYMENT_STATUS_TYPE as L, MAX_POLLING_TIME as M, RAZORPAY_CURRENCY_OPTIONS as N, REFUND_STATUS_TYPE as O, POLLING_INTERVAL as P, STRIPE_CURRENCY_OPTIONS as Q, RAZORPAY_PAYMENT_BUTTON_OPTIONS as R, SORT_DIRECTIONS as S, TAG_STYLE as T, UN_HIDEABLE_COLUMNS as U, STRIPE_DASHBOARD_LINK as V, TIP_KIND as W, ZERO_DECIMAL_CURRENCIES as Z, getAmountInLargestCurrencyUnit as a, buildStripeTransactionLink as b, getAmountInSmallestCurrencyUnit as c, getAmountWithAppliedTax as d, getFormattedAmount as e, getFormattedDiscountedAmount as f, getAddressElementOptions as g, getFormattedDiscountedPercentage as h, getFormattedTaxAmount as i, getFormattedTipAmount as j, getQrCodeValue as k, getTaxAmount as l, getTipAmount as m, hasAmountToPay as n, DEFAULT_TAG_STYLE as o, buildStripePayoutLink as p, PAYMENT_PROVIDERS as q, formatAmount as r, formatCurrency as s, getUniquePaymentProviders as t, uuidV4 as u, buildDefaultTableColumns as v, processDataIndex as w, shouldTabsVisible as x, DASHBOARD_KIND as y, DEFAULT_SORT_PROPERTIES as z };
808
- //# sourceMappingURL=index-CajHy3NQ.js.map
807
+ export { ASSOCIATED_TABLE_COLUMNS as A, BASE_URL as B, CURRENCY_OPTIONS as C, DEFAULT_PAGE_VALUES as D, ERROR_TYPE as E, STRIPE_CONNECT_ENDPOINT as F, buildStripeAccountLink as G, preProcessStatus as H, getTagStyle as I, PAYMENT_KIND as J, FILTER_COLUMNS as K, PAYMENT_STATUS_TYPE as L, MAX_POLLING_TIME as M, RAZORPAY_CURRENCY_OPTIONS as N, REFUND_STATUS_TYPE as O, POLLING_INTERVAL as P, STRIPE_CURRENCY_OPTIONS as Q, RAZORPAY_PAYMENT_BUTTON_OPTIONS as R, SORT_DIRECTIONS as S, TAG_STYLE as T, UN_HIDEABLE_COLUMNS as U, STRIPE_DASHBOARD_LINK as V, TIP_KIND as W, ZERO_DECIMAL_CURRENCIES as Z, getAmountInSmallestCurrencyUnit as a, buildStripeTransactionLink as b, getAmountInLargestCurrencyUnit as c, getFormattedAmount as d, getFormattedTaxAmount as e, getTipAmount as f, getAddressElementOptions as g, DEFAULT_TAG_STYLE as h, getFormattedTipAmount as i, getTaxAmount as j, getAmountWithAppliedTax as k, getFormattedDiscountedAmount as l, getFormattedDiscountedPercentage as m, hasAmountToPay as n, getQrCodeValue as o, buildStripePayoutLink as p, PAYMENT_PROVIDERS as q, formatAmount as r, formatCurrency as s, getUniquePaymentProviders as t, uuidV4 as u, buildDefaultTableColumns as v, processDataIndex as w, shouldTabsVisible as x, DASHBOARD_KIND as y, DEFAULT_SORT_PROPERTIES as z };
808
+ //# sourceMappingURL=index-CpGnAY9G.js.map