@bigbinary/neeto-payments-frontend 6.1.15 → 6.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/javascript/src/translations/en.json +1 -0
- package/dist/PaymentsDashboard.js +7 -0
- package/dist/PaymentsDashboard.js.map +1 -1
- package/dist/RazorpayPaymentButton.js +14 -0
- package/dist/RazorpayPaymentButton.js.map +1 -1
- package/dist/cjs/PaymentsDashboard.js +7 -0
- package/dist/cjs/PaymentsDashboard.js.map +1 -1
- package/dist/cjs/RazorpayPaymentButton.js +14 -0
- package/dist/cjs/RazorpayPaymentButton.js.map +1 -1
- package/package.json +4 -4
|
@@ -246,6 +246,13 @@ const getDefaultColumns = dashboardKind => {
|
|
|
246
246
|
render: renderDate,
|
|
247
247
|
sorter: true,
|
|
248
248
|
position: 6
|
|
249
|
+
}, {
|
|
250
|
+
title: t("neetoPayments.common.notes"),
|
|
251
|
+
dataIndex: "notes",
|
|
252
|
+
key: "notes",
|
|
253
|
+
width: 250,
|
|
254
|
+
sorter: false,
|
|
255
|
+
position: 10
|
|
249
256
|
}];
|
|
250
257
|
if (dashboardKind === "connected") {
|
|
251
258
|
columns = concat([{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentsDashboard.js","sources":["../app/javascript/src/apis/payments.js","../app/javascript/src/hooks/reactQuery/usePaymentsApi.js","../app/javascript/src/components/PaymentsDashboard/constants.js","../app/javascript/src/components/PaymentsDashboard/columns/utils.jsx","../app/javascript/src/components/PaymentsDashboard/utils.js","../app/javascript/src/components/PaymentsDashboard/List.jsx","../app/javascript/src/components/PaymentsDashboard/TopSection.jsx","../app/javascript/src/components/PaymentsDashboard/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = payload =>\n axios.get(`${BASE_URL}/api/v1/payments`, { params: payload });\n\nconst paymentsApi = { list };\n\nexport default paymentsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport paymentsApi from \"apis/payments\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchPayments = (payload = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.PAYMENTS_LIST, payload],\n queryFn: () => paymentsApi.list(payload),\n ...options,\n });\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { map } from \"ramda\";\n\nimport { PAYMENT_PROVIDERS } from \"src/constants\";\n\nexport const COLUMNS_STORAGE_KEY = \"paymentsDashboard\";\n\nexport const PAYMENT_DASHBOARD_TAB = {\n all: \"all\",\n successful: \"successful\",\n declined: \"declined\",\n refunded: \"refunded\",\n pending: \"pending\",\n rejected: \"rejected\",\n confirmation_pending: \"confirmation_pending\",\n};\n\nexport const SEARCH_PROPS = {\n node: \"identifier,\",\n key: \"search_term\",\n model: \"NeetoPaymentsEngine::Payment,\",\n};\n\nexport const FILTER_COLUMNS = [\n {\n key: \"payment_provider\",\n label: t(\"neetoPayments.common.paymentProvider\"),\n node: \"payment_provider\",\n type: \"single_option\",\n values: [\n ...map(toLabelAndValue, PAYMENT_PROVIDERS),\n { label: t(\"neetoPayments.common.upi\").toUpperCase(), value: \"eupi\" },\n ],\n },\n {\n key: \"amount\",\n label: t(\"neetoPayments.common.amount\"),\n node: \"amount\",\n type: \"decimal\",\n },\n {\n key: \"payment_time\",\n label: t(\"neetoPayments.common.paymentTime\"),\n node: \"payment_at\",\n type: \"date\",\n },\n];\n\nexport const TAG_STYLE = {\n initiated: \"info\",\n declined: \"danger\",\n successful: \"success\",\n refunded: \"secondary\",\n cancelled: \"secondary\",\n pending: \"warning\",\n paid: \"success\",\n failed: \"danger\",\n in_transit: \"info\",\n rejected: \"danger\",\n confirmationPending: \"warning\",\n};\n\nexport const PAYMENT_PROVIDER = { eupi: \"eupi\" };\n\nexport const DEFAULT_SORT_PROPERTIES = {\n sortBy: \"payment_at\",\n orderBy: \"DESC\",\n};\n","import { t } from \"i18next\";\nimport { snakeToCamelCase, humanize, isPresent, isNotPresent } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag, Tooltip, Typography } from \"neetoui\";\nimport { concat, curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { DEFAULT_TAG_STYLE } from \"src/constants\";\nimport { formatAmount, formatCurrency } from \"utils\";\n\nimport { TAG_STYLE, PAYMENT_PROVIDER } from \"../constants\";\n\nconst renderIdentifier = (identifier, { receiptUrl }) => {\n const isTemporaryIdentifier = identifier?.startsWith(\"temp_\");\n\n if (isTemporaryIdentifier) {\n return (\n <Tooltip\n content={t(\"neetoPayments.tooltipContent.paymentIdentifierUnavailable\")}\n position=\"top\"\n >\n <div className=\"text-center\">\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n </div>\n </Tooltip>\n );\n }\n\n return (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={receiptUrl}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n );\n};\n\nconst getTagStyle = status => TAG_STYLE[status] || DEFAULT_TAG_STYLE;\n\nconst preProcessStatus = (type, status, record = {}) => {\n if (type === \"payment\") {\n return record.isRefunded ? \"refunded\" : status;\n }\n\n return snakeToCamelCase(status);\n};\n\nconst renderStatus = curry((type, status, record) => {\n if (isNotPresent(status)) {\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n }\n\n const processedStatus = preProcessStatus(type, status, record);\n\n return (\n <Tooltip\n content={t(`neetoPayments.tooltipContent.${type}.${processedStatus}`)}\n position=\"top\"\n >\n <div className=\"w-fit\">\n <Tag\n style={getTagStyle(snakeToCamelCase(processedStatus))}\n label={humanize(\n t(`neetoPayments.tagLabels.${type}.${processedStatus}`)\n )}\n />\n </div>\n </Tooltip>\n );\n});\n\nconst renderPaymentProvider = paymentProvider => {\n if (paymentProvider === PAYMENT_PROVIDER.eupi) {\n return t(\"neetoPayments.common.upi\");\n }\n\n return humanize(paymentProvider);\n};\n\nconst renderDate = date => {\n if (isPresent(date)) {\n return <DateFormat.DateTime {...{ date }} />;\n }\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nconst renderPayoutTraceId = value => {\n if (isPresent(value)) return value;\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nexport const getDefaultColumns = dashboardKind => {\n let columns = [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n position: 0,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n position: 1,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.provider\"),\n dataIndex: \"paymentProvider\",\n key: \"paymentProvider\",\n width: 150,\n render: renderPaymentProvider,\n position: 2,\n sorter: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 150,\n render: renderStatus(\"transaction\"),\n sorter: true,\n position: 3,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.totalAmount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.taxAmount\"),\n dataIndex: \"taxAmount\",\n key: \"taxAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.tipAmount\"),\n dataIndex: \"tipAmount\",\n key: \"tipAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.currency\"),\n dataIndex: \"currency\",\n key: \"currency\",\n width: 180,\n sorter: true,\n render: formatCurrency,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.paymentTime\"),\n dataIndex: \"paymentAt\",\n key: \"paymentTime\",\n width: 190,\n render: renderDate,\n sorter: true,\n position: 6,\n },\n ];\n\n if (dashboardKind === \"connected\") {\n columns = concat(\n [\n {\n title: t(\"neetoPayments.common.payoutStatus\"),\n dataIndex: [\"payout\", \"status\"],\n key: \"payoutStatus\",\n width: 200,\n render: renderStatus(\"payout\"),\n sorter: false,\n position: 7,\n },\n {\n title: t(\"neetoPayments.common.payoutArrivalDate\"),\n dataIndex: [\"payout\", \"arrivalDate\"],\n key: \"payoutArrivalDate\",\n width: 235,\n render: renderDate,\n sorter: true,\n position: 8,\n },\n {\n title: t(\"neetoPayments.common.payoutTraceId\"),\n dataIndex: [\"payout\", \"traceId\", \"value\"],\n key: \"payoutTraceId\",\n width: 205,\n render: renderPayoutTraceId,\n sorter: false,\n position: 9,\n },\n ],\n columns\n );\n }\n\n return columns;\n};\n","import {\n map,\n prop,\n concat,\n mergeDeepWith,\n mergeLeft,\n isNil,\n reject,\n isEmpty,\n} from \"ramda\";\n\nimport { FILTER_COLUMNS, SEARCH_PROPS } from \"./constants\";\n\nexport const buildSearchProps = (searchProps, searchTerm) =>\n mergeDeepWith(\n concat,\n SEARCH_PROPS,\n mergeLeft({ value: searchTerm.trim() }, searchProps)\n );\n\nexport const buildFilterColumns = (payableEntityColumns = []) =>\n reject(\n isNil,\n concat(FILTER_COLUMNS, map(prop(\"filterProps\"), payableEntityColumns))\n );\n\nexport const buildRowData = ({ payments, pageProperties = {} }) =>\n payments?.map((element, index) => ({\n ...element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties.pageSize * (pageProperties.page - 1) + index + 1,\n }));\n","import { useMemo, useCallback } from \"react\";\n\nimport { camelToSnakeCase, isNotPresent, isPresent, humanize } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n buildDefaultTableColumns,\n getUniquePaymentProviders,\n processDataIndex,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport { buildRowData } from \"./utils\";\n\nconst List = ({\n dashboardKind,\n isFetching,\n payments,\n payableEntityColumns,\n setSortProperties,\n pageProperties,\n handleTablePagination,\n views,\n}) => {\n const { t } = useTranslation();\n\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = useMemo(() => views[tab], [views, tab]);\n const isMultipleProvidersExist = useMemo(\n () => getUniquePaymentProviders(payments ?? []).length > 1,\n [payments]\n );\n\n const defaultColumns = useMemo(\n () => getDefaultColumns(dashboardKind),\n [dashboardKind]\n );\n\n const allColumns = useMemo(\n () =>\n buildDefaultTableColumns({\n payableEntityColumns,\n isMultipleProvidersExist,\n defaultColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }),\n [payableEntityColumns, isMultipleProvidersExist, defaultColumns, tab]\n );\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(`${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`, allColumns);\n\n const handleTableChange = useCallback(\n (_, __, sorter) => {\n setSortProperties(\n isPresent(sorter?.column)\n ? {\n sortBy: camelToSnakeCase(processDataIndex(sorter.field)),\n orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\",\n }\n : DEFAULT_SORT_PROPERTIES\n );\n },\n [setSortProperties]\n );\n\n const rowData = useMemo(\n () => buildRowData({ payments, pageProperties, tab }),\n [payments, pageProperties, tab]\n );\n\n if (isNotPresent(payments)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.emptyState.payments\")\n : t(\"neetoPayments.emptyState.paymentsWithStatus\", {\n status: humanize(tab),\n })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={paymentsCount > pageProperties?.pageSize}>\n <Table\n {...{ rowData }}\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={paymentsCount}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties?.pageSize,\n total: paymentsCount,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { startTransition, useState } from \"react\";\n\nimport { isPresent, snakeToCamelCase, humanize } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { mergeLeft, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { UN_HIDEABLE_COLUMNS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n processDataIndex,\n shouldTabsVisible,\n buildDefaultTableColumns,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB } from \"./constants\";\n\nconst TopSection = ({\n views,\n filters,\n setFilters,\n filterableColumns,\n searchKeywordProps,\n payableEntityColumns,\n setIsExportModalOpen,\n dashboardKind,\n}) => {\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = views?.[tab];\n const isPaymentCountVisible =\n paymentsCount > 0 || (paymentsCount === 0 && isPresent(filters));\n const isFilterButtonVisible = isPaymentCountVisible || isPresent(filters);\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n const handleTabChange = tab => {\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: DEFAULT_PAGE_INDEX,\n page_size: DEFAULT_PAGE_SIZE,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.payments\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: searchKeywordProps.placeholder,\n className:\n searchKeywordProps.placeholder.length > 30 ? \"w-96\" : \"w-64\",\n }\n }\n />\n {shouldTabsVisible(views) && (\n <Tab>\n {Object.keys(PAYMENT_DASHBOARD_TAB).map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${snakeToCamelCase(item)}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPaymentCountVisible && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.countOf.payment\", { count: paymentsCount })\n : t(\"neetoPayments.countOf.paymentWithStatus\", {\n count: paymentsCount,\n status: humanize(tab),\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData: buildDefaultTableColumns({\n defaultColumns: getDefaultColumns(dashboardKind),\n payableEntityColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }).map(modify(\"dataIndex\", processDataIndex)),\n fixedColumns: UN_HIDEABLE_COLUMNS,\n tableKey: `${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`,\n }}\n downloadButtonProps={{\n onClick: () => setIsExportModalOpen(true),\n }}\n filterProps={{\n columns: filterableColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={filterableColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n </>\n );\n};\n\nexport default TopSection;\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { Spinner } from \"neetoui\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ExportModal from \"components/Common/ExportModal\";\nimport { useFetchPayments } from \"hooks/reactQuery/usePaymentsApi\";\nimport { DEFAULT_PAGE_VALUES, DASHBOARD_KIND } from \"src/constants\";\nimport { mergeEnforcedFilters } from \"utils/dashboard\";\n\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport List from \"./List\";\nimport TopSection from \"./TopSection\";\nimport { buildFilterColumns, buildSearchProps } from \"./utils\";\n\nconst PaymentsDashboard = ({\n searchProps,\n payableEntityColumns,\n holdableIds = {},\n enforceFilterValues = [],\n dashboardKind = \"platform\",\n}) => {\n const { searchTerm = \"\" } = getQueryParams();\n const filterableColumns = buildFilterColumns(payableEntityColumns);\n const searchKeywordProps = buildSearchProps(searchProps, searchTerm);\n\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_VALUES);\n const [isExportModalOpen, setIsExportModalOpen] = useState(false);\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...filterableColumns, searchKeywordProps])\n );\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n // Merge enforced filters with user-selected filters for API payload\n // Enforced filters are included in API requests but not reflected in URL\n const apiFilters = useMemo(\n () =>\n mergeEnforcedFilters(\n filters,\n enforceFilterValues,\n filterableColumns\n ),\n [filters, enforceFilterValues, filterableColumns]\n );\n\n const payload = {\n dashboardKind,\n holdableIds,\n tab,\n filters: apiFilters,\n ...pageProperties,\n ...sortProperties,\n };\n\n const {\n data: { payments, views } = {},\n isFetching,\n isPending: isPaymentsLoaidng,\n } = useFetchPayments(payload, { enabled: true });\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties({ page, pageSize });\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n if (isPaymentsLoaidng) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <TopSection\n {...{\n dashboardKind,\n filterableColumns,\n filters,\n pageProperties,\n payableEntityColumns,\n searchKeywordProps,\n setFilters,\n setIsExportModalOpen,\n setPageProperties,\n setSortProperties,\n views,\n }}\n />\n <List\n {...{\n dashboardKind,\n handleTablePagination,\n isFetching,\n pageProperties,\n payableEntityColumns,\n payments,\n setSortProperties,\n views,\n }}\n />\n <ExportModal\n {...{\n holdableIds,\n isExportModalOpen,\n setIsExportModalOpen,\n sortProperties,\n }}\n dashboardKind={DASHBOARD_KIND.payments}\n filters={apiFilters}\n />\n </>\n );\n};\n\nexport default PaymentsDashboard;\n"],"names":["list","payload","axios","get","BASE_URL","params","paymentsApi","useFetchPayments","options","useQuery","queryKey","QUERY_KEYS","PAYMENTS_LIST","queryFn","PAYMENT_DASHBOARD_TAB","all","successful","declined","refunded","pending","rejected","confirmation_pending","SEARCH_PROPS","node","key","model","FILTER_COLUMNS","label","t","type","values","map","toLabelAndValue","PAYMENT_PROVIDERS","toUpperCase","value","TAG_STYLE","initiated","cancelled","paid","failed","in_transit","confirmationPending","PAYMENT_PROVIDER","eupi","DEFAULT_SORT_PROPERTIES","sortBy","orderBy","renderIdentifier","identifier","receiptUrl","isTemporaryIdentifier","startsWith","_jsx","Tooltip","content","position","children","className","Typography","style","CopyButtonWrapper","Button","href","size","target","getTagStyle","status","DEFAULT_TAG_STYLE","preProcessStatus","record","isRefunded","snakeToCamelCase","renderStatus","curry","isNotPresent","processedStatus","Tag","humanize","renderPaymentProvider","paymentProvider","renderDate","date","isPresent","DateFormat","DateTime","renderPayoutTraceId","getDefaultColumns","dashboardKind","columns","title","dataIndex","width","isHidable","render","sorter","formatAmount","formatCurrency","concat","buildSearchProps","searchProps","searchTerm","mergeDeepWith","mergeLeft","trim","buildFilterColumns","payableEntityColumns","reject","isNil","prop","buildRowData","payments","pageProperties","element","index","id","isEmpty","pageSize","page","List","isFetching","setSortProperties","handleTablePagination","views","useTranslation","tab","getQueryParams","paymentsCount","useMemo","isMultipleProvidersExist","getUniquePaymentProviders","length","defaultColumns","allColumns","buildDefaultTableColumns","isAllTab","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","PAYMENTS_TABLE","handleTableChange","useCallback","_","__","column","camelToSnakeCase","processDataIndex","field","order","rowData","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","columnData","currentPageNumber","handlePageChange","loading","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","TopSection","filters","setFilters","filterableColumns","searchKeywordProps","setIsExportModalOpen","isFilterPaneOpen","setIsFilterPaneOpen","useState","history","useHistory","isPaymentCountVisible","isFilterButtonVisible","handleFiltersChange","startTransition","handleTabChange","queryParams","toCamelCase","newParams","DEFAULT_PAGE_INDEX","page_size","DEFAULT_PAGE_SIZE","push","buildUrl","window","location","pathname","_jsxs","_Fragment","Header","placeholder","shouldTabsVisible","Tab","Object","keys","item","Item","active","onClick","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","modify","fixedColumns","UN_HIDEABLE_COLUMNS","tableKey","downloadButtonProps","filterProps","isOpen","keyword","setIsOpen","FiltersBar","setIsPaneOpen","PaymentsDashboard","holdableIds","enforceFilterValues","sortProperties","setPageProperties","DEFAULT_PAGE_VALUES","isExportModalOpen","buildFiltersFromURL","apiFilters","mergeEnforcedFilters","data","isPending","isPaymentsLoaidng","enabled","useEffect","Spinner","ExportModal","DASHBOARD_KIND"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAMA,IAAI,GAAGC,OAAO,IAClBC,KAAK,CAACC,GAAG,CAAC,CAAA,EAAGC,QAAQ,CAAA,gBAAA,CAAkB,EAAE;AAAEC,EAAAA,MAAM,EAAEJ;AAAQ,CAAC,CAAC;AAE/D,MAAMK,WAAW,GAAG;AAAEN,EAAAA;AAAK,CAAC;;ACFrB,MAAMO,gBAAgB,GAAGA,CAACN,OAAO,GAAG,EAAE,EAAEO,OAAO,GAAG,EAAE,KACzDC,QAAQ,CAAC;AACPC,EAAAA,QAAQ,EAAE,CAACC,UAAU,CAACC,aAAa,EAAEX,OAAO,CAAC;EAC7CY,OAAO,EAAEA,MAAMP,WAAW,CAACN,IAAI,CAACC,OAAO,CAAC;EACxC,GAAGO;AACL,CAAC,CAAC;;ACFG,MAAMM,qBAAqB,GAAG;AACnCC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,oBAAoB,EAAE;AACxB,CAAC;AAEM,MAAMC,YAAY,GAAG;AAC1BC,EAAAA,IAAI,EAAE,aAAa;AACnBC,EAAAA,GAAG,EAAE,aAAa;AAClBC,EAAAA,KAAK,EAAE;AACT,CAAC;AAEM,MAAMC,cAAc,GAAG,CAC5B;AACEF,EAAAA,GAAG,EAAE,kBAAkB;AACvBG,EAAAA,KAAK,EAAEC,CAAC,CAAC,sCAAsC,CAAC;AAChDL,EAAAA,IAAI,EAAE,kBAAkB;AACxBM,EAAAA,IAAI,EAAE,eAAe;EACrBC,MAAM,EAAE,CACN,GAAGC,GAAG,CAACC,eAAe,EAAEC,iBAAiB,CAAC,EAC1C;IAAEN,KAAK,EAAEC,CAAC,CAAC,0BAA0B,CAAC,CAACM,WAAW,EAAE;AAAEC,IAAAA,KAAK,EAAE;GAAQ;AAEzE,CAAC,EACD;AACEX,EAAAA,GAAG,EAAE,QAAQ;AACbG,EAAAA,KAAK,EAAEC,CAAC,CAAC,6BAA6B,CAAC;AACvCL,EAAAA,IAAI,EAAE,QAAQ;AACdM,EAAAA,IAAI,EAAE;AACR,CAAC,EACD;AACEL,EAAAA,GAAG,EAAE,cAAc;AACnBG,EAAAA,KAAK,EAAEC,CAAC,CAAC,kCAAkC,CAAC;AAC5CL,EAAAA,IAAI,EAAE,YAAY;AAClBM,EAAAA,IAAI,EAAE;AACR,CAAC,CACF;AAEM,MAAMO,SAAS,GAAG;AACvBC,EAAAA,SAAS,EAAE,MAAM;AACjBpB,EAAAA,QAAQ,EAAE,QAAQ;AAClBD,EAAAA,UAAU,EAAE,SAAS;AACrBE,EAAAA,QAAQ,EAAE,WAAW;AACrBoB,EAAAA,SAAS,EAAE,WAAW;AACtBnB,EAAAA,OAAO,EAAE,SAAS;AAClBoB,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,UAAU,EAAE,MAAM;AAClBrB,EAAAA,QAAQ,EAAE,QAAQ;AAClBsB,EAAAA,mBAAmB,EAAE;AACvB,CAAC;AAEM,MAAMC,gBAAgB,GAAG;AAAEC,EAAAA,IAAI,EAAE;AAAO,CAAC;AAEzC,MAAMC,uBAAuB,GAAG;AACrCC,EAAAA,MAAM,EAAE,YAAY;AACpBC,EAAAA,OAAO,EAAE;AACX,CAAC;;ACxDD,MAAMC,gBAAgB,GAAGA,CAACC,UAAU,EAAE;AAAEC,EAAAA;AAAW,CAAC,KAAK;AACvD,EAAA,MAAMC,qBAAqB,GAAGF,UAAU,EAAEG,UAAU,CAAC,OAAO,CAAC;AAE7D,EAAA,IAAID,qBAAqB,EAAE;IACzB,oBACEE,GAAA,CAACC,OAAO,EAAA;AACNC,MAAAA,OAAO,EAAE3B,CAAC,CAAC,2DAA2D,CAAE;AACxE4B,MAAAA,QAAQ,EAAC,KAAK;AAAAC,MAAAA,QAAA,eAEdJ,GAAA,CAAA,KAAA,EAAA;AAAKK,QAAAA,SAAS,EAAC,aAAa;QAAAD,QAAA,eAC1BJ,GAAA,CAACM,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;UAAAH,QAAA,EACtB7B,CAAC,CAAC,mCAAmC;SAC5B;OACT;AAAC,KACC,CAAC;AAEd;EAEA,oBACEyB,GAAA,CAACQ,iBAAiB,EAAA;AAACN,IAAAA,OAAO,EAAEN,UAAW;IAAAQ,QAAA,eACrCJ,GAAA,CAACS,MAAM,EAAA;AACLC,MAAAA,IAAI,EAAEb,UAAW;AACjBvB,MAAAA,KAAK,EAAEsB,UAAW;AAClBe,MAAAA,IAAI,EAAC,OAAO;AACZJ,MAAAA,KAAK,EAAC,MAAM;AACZK,MAAAA,MAAM,EAAC;KACR;AAAC,GACe,CAAC;AAExB,CAAC;AAED,MAAMC,WAAW,GAAGC,MAAM,IAAI/B,SAAS,CAAC+B,MAAM,CAAC,IAAIC,iBAAiB;AAEpE,MAAMC,gBAAgB,GAAGA,CAACxC,IAAI,EAAEsC,MAAM,EAAEG,MAAM,GAAG,EAAE,KAAK;EACtD,IAAIzC,IAAI,KAAK,SAAS,EAAE;AACtB,IAAA,OAAOyC,MAAM,CAACC,UAAU,GAAG,UAAU,GAAGJ,MAAM;AAChD;EAEA,OAAOK,gBAAgB,CAACL,MAAM,CAAC;AACjC,CAAC;AAED,MAAMM,YAAY,GAAGC,KAAK,CAAC,CAAC7C,IAAI,EAAEsC,MAAM,EAAEG,MAAM,KAAK;AACnD,EAAA,IAAIK,YAAY,CAACR,MAAM,CAAC,EAAE;IACxB,oBACEd,GAAA,CAACM,UAAU,EAAA;AAACC,MAAAA,KAAK,EAAC,OAAO;MAAAH,QAAA,EACtB7B,CAAC,CAAC,mCAAmC;AAAC,KAC7B,CAAC;AAEjB;EAEA,MAAMgD,eAAe,GAAGP,gBAAgB,CAACxC,IAAI,EAAEsC,MAAM,EAAEG,MAAM,CAAC;EAE9D,oBACEjB,GAAA,CAACC,OAAO,EAAA;IACNC,OAAO,EAAE3B,CAAC,CAAC,CAAA,6BAAA,EAAgCC,IAAI,CAAI+C,CAAAA,EAAAA,eAAe,EAAE,CAAE;AACtEpB,IAAAA,QAAQ,EAAC,KAAK;AAAAC,IAAAA,QAAA,eAEdJ,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,OAAO;MAAAD,QAAA,eACpBJ,GAAA,CAACwB,GAAG,EAAA;AACFjB,QAAAA,KAAK,EAAEM,WAAW,CAACM,gBAAgB,CAACI,eAAe,CAAC,CAAE;QACtDjD,KAAK,EAAEmD,QAAQ,CACblD,CAAC,CAAC,2BAA2BC,IAAI,CAAA,CAAA,EAAI+C,eAAe,CAAA,CAAE,CACxD;OACD;KACE;AAAC,GACC,CAAC;AAEd,CAAC,CAAC;AAEF,MAAMG,qBAAqB,GAAGC,eAAe,IAAI;AAC/C,EAAA,IAAIA,eAAe,KAAKrC,gBAAgB,CAACC,IAAI,EAAE;IAC7C,OAAOhB,CAAC,CAAC,0BAA0B,CAAC;AACtC;EAEA,OAAOkD,QAAQ,CAACE,eAAe,CAAC;AAClC,CAAC;AAED,MAAMC,UAAU,GAAGC,IAAI,IAAI;AACzB,EAAA,IAAIC,SAAS,CAACD,IAAI,CAAC,EAAE;AACnB,IAAA,oBAAO7B,GAAA,CAAC+B,UAAU,CAACC,QAAQ,EAAA;AAAOH,MAAAA;AAAI,KAAK,CAAC;AAC9C;EAEA,oBACE7B,GAAA,CAACM,UAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,OAAO;IAAAH,QAAA,EACtB7B,CAAC,CAAC,mCAAmC;AAAC,GAC7B,CAAC;AAEjB,CAAC;AAED,MAAM0D,mBAAmB,GAAGnD,KAAK,IAAI;AACnC,EAAA,IAAIgD,SAAS,CAAChD,KAAK,CAAC,EAAE,OAAOA,KAAK;EAElC,oBACEkB,GAAA,CAACM,UAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,OAAO;IAAAH,QAAA,EACtB7B,CAAC,CAAC,mCAAmC;AAAC,GAC7B,CAAC;AAEjB,CAAC;AAEM,MAAM2D,iBAAiB,GAAGC,aAAa,IAAI;EAChD,IAAIC,OAAO,GAAG,CACZ;AACEC,IAAAA,KAAK,EAAE9D,CAAC,CAAC,yBAAyB,CAAC;AACnC+D,IAAAA,SAAS,EAAE,IAAI;AACfnE,IAAAA,GAAG,EAAE,IAAI;AACToE,IAAAA,KAAK,EAAE,EAAE;AACTpC,IAAAA,QAAQ,EAAE,CAAC;AACXqC,IAAAA,SAAS,EAAE;AACb,GAAC,EACD;AACEH,IAAAA,KAAK,EAAE9D,CAAC,CAAC,iCAAiC,CAAC;AAC3C+D,IAAAA,SAAS,EAAE,YAAY;AACvBnE,IAAAA,GAAG,EAAE,YAAY;AACjBoE,IAAAA,KAAK,EAAE,GAAG;AACVE,IAAAA,MAAM,EAAE9C,gBAAgB;AACxBQ,IAAAA,QAAQ,EAAE,CAAC;AACXqC,IAAAA,SAAS,EAAE;AACb,GAAC,EACD;AACEH,IAAAA,KAAK,EAAE9D,CAAC,CAAC,+BAA+B,CAAC;AACzC+D,IAAAA,SAAS,EAAE,iBAAiB;AAC5BnE,IAAAA,GAAG,EAAE,iBAAiB;AACtBoE,IAAAA,KAAK,EAAE,GAAG;AACVE,IAAAA,MAAM,EAAEf,qBAAqB;AAC7BvB,IAAAA,QAAQ,EAAE,CAAC;AACXuC,IAAAA,MAAM,EAAE;AACV,GAAC,EACD;AACEL,IAAAA,KAAK,EAAE9D,CAAC,CAAC,6BAA6B,CAAC;AACvC+D,IAAAA,SAAS,EAAE,QAAQ;AACnBnE,IAAAA,GAAG,EAAE,QAAQ;AACboE,IAAAA,KAAK,EAAE,GAAG;AACVE,IAAAA,MAAM,EAAErB,YAAY,CAAC,aAAa,CAAC;AACnCsB,IAAAA,MAAM,EAAE,IAAI;AACZvC,IAAAA,QAAQ,EAAE,CAAC;AACXqC,IAAAA,SAAS,EAAE;AACb,GAAC,EACD;AACEH,IAAAA,KAAK,EAAE9D,CAAC,CAAC,kCAAkC,CAAC;AAC5C+D,IAAAA,SAAS,EAAE,QAAQ;AACnBnE,IAAAA,GAAG,EAAE,QAAQ;AACboE,IAAAA,KAAK,EAAE,GAAG;AACVG,IAAAA,MAAM,EAAE,IAAI;AACZD,IAAAA,MAAM,EAAEE,YAAY;AACpBxC,IAAAA,QAAQ,EAAE;AACZ,GAAC,EACD;AACEkC,IAAAA,KAAK,EAAE9D,CAAC,CAAC,gCAAgC,CAAC;AAC1C+D,IAAAA,SAAS,EAAE,WAAW;AACtBnE,IAAAA,GAAG,EAAE,WAAW;AAChBoE,IAAAA,KAAK,EAAE,GAAG;AACVG,IAAAA,MAAM,EAAE,IAAI;AACZD,IAAAA,MAAM,EAAEE,YAAY;AACpBxC,IAAAA,QAAQ,EAAE;AACZ,GAAC,EACD;AACEkC,IAAAA,KAAK,EAAE9D,CAAC,CAAC,gCAAgC,CAAC;AAC1C+D,IAAAA,SAAS,EAAE,WAAW;AACtBnE,IAAAA,GAAG,EAAE,WAAW;AAChBoE,IAAAA,KAAK,EAAE,GAAG;AACVG,IAAAA,MAAM,EAAE,IAAI;AACZD,IAAAA,MAAM,EAAEE,YAAY;AACpBxC,IAAAA,QAAQ,EAAE;AACZ,GAAC,EACD;AACEkC,IAAAA,KAAK,EAAE9D,CAAC,CAAC,+BAA+B,CAAC;AACzC+D,IAAAA,SAAS,EAAE,UAAU;AACrBnE,IAAAA,GAAG,EAAE,UAAU;AACfoE,IAAAA,KAAK,EAAE,GAAG;AACVG,IAAAA,MAAM,EAAE,IAAI;AACZD,IAAAA,MAAM,EAAEG,cAAc;AACtBzC,IAAAA,QAAQ,EAAE;AACZ,GAAC,EACD;AACEkC,IAAAA,KAAK,EAAE9D,CAAC,CAAC,kCAAkC,CAAC;AAC5C+D,IAAAA,SAAS,EAAE,WAAW;AACtBnE,IAAAA,GAAG,EAAE,aAAa;AAClBoE,IAAAA,KAAK,EAAE,GAAG;AACVE,IAAAA,MAAM,EAAEb,UAAU;AAClBc,IAAAA,MAAM,EAAE,IAAI;AACZvC,IAAAA,QAAQ,EAAE;AACZ,GAAC,CACF;EAED,IAAIgC,aAAa,KAAK,WAAW,EAAE;IACjCC,OAAO,GAAGS,MAAM,CACd,CACE;AACER,MAAAA,KAAK,EAAE9D,CAAC,CAAC,mCAAmC,CAAC;AAC7C+D,MAAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC/BnE,MAAAA,GAAG,EAAE,cAAc;AACnBoE,MAAAA,KAAK,EAAE,GAAG;AACVE,MAAAA,MAAM,EAAErB,YAAY,CAAC,QAAQ,CAAC;AAC9BsB,MAAAA,MAAM,EAAE,KAAK;AACbvC,MAAAA,QAAQ,EAAE;AACZ,KAAC,EACD;AACEkC,MAAAA,KAAK,EAAE9D,CAAC,CAAC,wCAAwC,CAAC;AAClD+D,MAAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;AACpCnE,MAAAA,GAAG,EAAE,mBAAmB;AACxBoE,MAAAA,KAAK,EAAE,GAAG;AACVE,MAAAA,MAAM,EAAEb,UAAU;AAClBc,MAAAA,MAAM,EAAE,IAAI;AACZvC,MAAAA,QAAQ,EAAE;AACZ,KAAC,EACD;AACEkC,MAAAA,KAAK,EAAE9D,CAAC,CAAC,oCAAoC,CAAC;AAC9C+D,MAAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;AACzCnE,MAAAA,GAAG,EAAE,eAAe;AACpBoE,MAAAA,KAAK,EAAE,GAAG;AACVE,MAAAA,MAAM,EAAER,mBAAmB;AAC3BS,MAAAA,MAAM,EAAE,KAAK;AACbvC,MAAAA,QAAQ,EAAE;KACX,CACF,EACDiC,OACF,CAAC;AACH;AAEA,EAAA,OAAOA,OAAO;AAChB,CAAC;;AC3NM,MAAMU,gBAAgB,GAAGA,CAACC,WAAW,EAAEC,UAAU,KACtDC,aAAa,CACXJ,MAAM,EACN5E,YAAY,EACZiF,SAAS,CAAC;AAAEpE,EAAAA,KAAK,EAAEkE,UAAU,CAACG,IAAI;AAAG,CAAC,EAAEJ,WAAW,CACrD,CAAC;AAEI,MAAMK,kBAAkB,GAAGA,CAACC,oBAAoB,GAAG,EAAE,KAC1DC,MAAM,CACJC,KAAK,EACLV,MAAM,CAACxE,cAAc,EAAEK,GAAG,CAAC8E,IAAI,CAAC,aAAa,CAAC,EAAEH,oBAAoB,CAAC,CACvE,CAAC;AAEI,MAAMI,YAAY,GAAGA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,cAAc,GAAG;AAAG,CAAC,KAC5DD,QAAQ,EAAEhF,GAAG,CAAC,CAACkF,OAAO,EAAEC,KAAK,MAAM;AACjC,EAAA,GAAGD,OAAO;EACVE,EAAE,EAAEC,OAAO,CAACJ,cAAc,CAAC,GACvBE,KAAK,GAAG,CAAC,GACTF,cAAc,CAACK,QAAQ,IAAIL,cAAc,CAACM,IAAI,GAAG,CAAC,CAAC,GAAGJ,KAAK,GAAG;AACpE,CAAC,CAAC,CAAC;;ACXL,MAAMK,IAAI,GAAGA,CAAC;EACZ/B,aAAa;EACbgC,UAAU;EACVT,QAAQ;EACRL,oBAAoB;EACpBe,iBAAiB;EACjBT,cAAc;EACdU,qBAAqB;AACrBC,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM;AAAE/F,IAAAA;GAAG,GAAGgG,cAAc,EAAE;EAE9B,MAAM;IAAEC,GAAG,GAAG/G,qBAAqB,CAACC;GAAK,GAAG+G,cAAc,EAAE;AAE5D,EAAA,MAAMC,aAAa,GAAGC,OAAO,CAAC,MAAML,KAAK,CAACE,GAAG,CAAC,EAAE,CAACF,KAAK,EAAEE,GAAG,CAAC,CAAC;AAC7D,EAAA,MAAMI,wBAAwB,GAAGD,OAAO,CACtC,MAAME,yBAAyB,CAACnB,QAAQ,IAAI,EAAE,CAAC,CAACoB,MAAM,GAAG,CAAC,EAC1D,CAACpB,QAAQ,CACX,CAAC;AAED,EAAA,MAAMqB,cAAc,GAAGJ,OAAO,CAC5B,MAAMzC,iBAAiB,CAACC,aAAa,CAAC,EACtC,CAACA,aAAa,CAChB,CAAC;AAED,EAAA,MAAM6C,UAAU,GAAGL,OAAO,CACxB,MACEM,wBAAwB,CAAC;IACvB5B,oBAAoB;IACpBuB,wBAAwB;IACxBG,cAAc;AACdG,IAAAA,QAAQ,EAAEV,GAAG,KAAK/G,qBAAqB,CAACC;GACzC,CAAC,EACJ,CAAC2F,oBAAoB,EAAEuB,wBAAwB,EAAEG,cAAc,EAAEP,GAAG,CACtE,CAAC;EAED,MAAM;IAAEW,2BAA2B;IAAEC,iBAAiB;AAAEC,IAAAA;AAAW,GAAC,GAClEC,sBAAsB,CAAC,CAAA,EAAGC,UAAU,CAACC,cAAc,CAAA,CAAA,EAAIhB,GAAG,CAAA,CAAE,EAAEQ,UAAU,CAAC;EAE3E,MAAMS,iBAAiB,GAAGC,WAAW,CACnC,CAACC,CAAC,EAAEC,EAAE,EAAElD,MAAM,KAAK;AACjB0B,IAAAA,iBAAiB,CACftC,SAAS,CAACY,MAAM,EAAEmD,MAAM,CAAC,GACrB;MACEpG,MAAM,EAAEqG,gBAAgB,CAACC,gBAAgB,CAACrD,MAAM,CAACsD,KAAK,CAAC,CAAC;MACxDtG,OAAO,EAAEgD,MAAM,CAACuD,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG;KAC9C,GACDzG,uBACN,CAAC;AACH,GAAC,EACD,CAAC4E,iBAAiB,CACpB,CAAC;AAED,EAAA,MAAM8B,OAAO,GAAGvB,OAAO,CACrB,MAAMlB,YAAY,CAAC;IAAEC,QAAQ;IAAEC,cAAc;AAAEa,IAAAA;GAAK,CAAC,EACrD,CAACd,QAAQ,EAAEC,cAAc,EAAEa,GAAG,CAChC,CAAC;AAED,EAAA,IAAIlD,YAAY,CAACoC,QAAQ,CAAC,EAAE;AAC1B,IAAA,oBACE1D,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,gDAAgD;MAAAD,QAAA,eAC7DJ,GAAA,CAACmG,MAAM,EAAA;AACL9D,QAAAA,KAAK,EACHmC,GAAG,KAAK/G,qBAAqB,CAACC,GAAG,GAC7Ba,CAAC,CAAC,mCAAmC,CAAC,GACtCA,CAAC,CAAC,6CAA6C,EAAE;UAC/CuC,MAAM,EAAEW,QAAQ,CAAC+C,GAAG;SACrB;OAER;AAAC,KACC,CAAC;AAEV;EAEA,oBACExE,GAAA,CAACoG,YAAY,EAAA;AAACC,IAAAA,aAAa,EAAE3B,aAAa,GAAGf,cAAc,EAAEK,QAAS;IAAA5D,QAAA,eACpEJ,GAAA,CAACsG,KAAK,EAAA;MACEJ,OAAO;MACbK,WAAW,EAAA,IAAA;AACXC,MAAAA,aAAa,EAAE,KAAM;AACrBC,MAAAA,UAAU,EAAErB,iBAAkB;MAC9BsB,iBAAiB,EAAE/C,cAAc,EAAEM,IAAK;AACxC0C,MAAAA,gBAAgB,EAAEtC,qBAAsB;MACxCuC,OAAO,EAAEzC,UAAU,IAAIgB,2BAA4B;AACnD0B,MAAAA,YAAY,EAAE,KAAM;AACpBC,MAAAA,cAAc,EAAEC,eAAgB;AAChCC,MAAAA,UAAU,EAAEtC,aAAc;AAC1BuC,MAAAA,eAAe,EAAE;AACfC,QAAAA,eAAe,EAAE,IAAI;AACrBC,QAAAA,gBAAgB,EAAE,IAAI;QACtBnD,QAAQ,EAAEL,cAAc,EAAEK,QAAQ;AAClCoD,QAAAA,KAAK,EAAE1C;OACP;AACF2C,MAAAA,QAAQ,EAAE5B,iBAAkB;AAC5B6B,MAAAA,YAAY,EAAEA,CAAC;AAAEnJ,QAAAA;OAAK,KAAKkH,UAAU,CAAClH,GAAG;KAC1C;AAAC,GACU,CAAC;AAEnB,CAAC;;AC/FD,MAAMoJ,UAAU,GAAGA,CAAC;EAClBjD,KAAK;EACLkD,OAAO;EACPC,UAAU;EACVC,iBAAiB;EACjBC,kBAAkB;EAClBtE,oBAAoB;EACpBuE,oBAAoB;AACpBzF,EAAAA;AACF,CAAC,KAAK;EACJ,MAAM,CAAC0F,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EAE/D,MAAM;AAAExJ,IAAAA;GAAG,GAAGgG,cAAc,EAAE;AAC9B,EAAA,MAAMyD,OAAO,GAAGC,UAAU,EAAE;EAC5B,MAAM;IAAEzD,GAAG,GAAG/G,qBAAqB,CAACC;GAAK,GAAG+G,cAAc,EAAE;AAE5D,EAAA,MAAMC,aAAa,GAAGJ,KAAK,GAAGE,GAAG,CAAC;AAClC,EAAA,MAAM0D,qBAAqB,GACzBxD,aAAa,GAAG,CAAC,IAAKA,aAAa,KAAK,CAAC,IAAI5C,SAAS,CAAC0F,OAAO,CAAE;AAClE,EAAA,MAAMW,qBAAqB,GAAGD,qBAAqB,IAAIpG,SAAS,CAAC0F,OAAO,CAAC;EAEzE,MAAMY,mBAAmB,GAAGZ,OAAO,IAAI;AACrCa,IAAAA,eAAe,CAAC,MAAM;MACpBZ,UAAU,CAACD,OAAO,CAAC;AACrB,KAAC,CAAC;GACH;EAED,MAAMc,eAAe,GAAG9D,GAAG,IAAI;IAC7B,MAAM+D,WAAW,GAAG9D,cAAc,CAAC;AAAE+D,MAAAA,WAAW,EAAE;AAAM,KAAC,CAAC;AAC1D,IAAA,MAAMC,SAAS,GAAG;MAChBjE,GAAG;AACHP,MAAAA,IAAI,EAAEyE,kBAAkB;AACxBC,MAAAA,SAAS,EAAEC;KACZ;AAEDZ,IAAAA,OAAO,CAACa,IAAI,CACVC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAE/F,SAAS,CAACuF,SAAS,EAAEF,WAAW,CAAC,CACtE,CAAC;GACF;EAED,oBACEW,IAAA,CAAAC,QAAA,EAAA;IAAA/I,QAAA,EAAA,cACEJ,GAAA,CAACoJ,MAAM,EAAA;AACL/G,MAAAA,KAAK,EAAE9D,CAAC,CAAC,8BAA8B,CAAE;MACzCwE,WAAW,EACToF,qBAAqB,IAAI;QACvBkB,WAAW,EAAE1B,kBAAkB,CAAC0B,WAAW;QAC3ChJ,SAAS,EACPsH,kBAAkB,CAAC0B,WAAW,CAACvE,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG;AAC1D;KAEH,CAAC,EACDwE,iBAAiB,CAAChF,KAAK,CAAC,iBACvBtE,GAAA,CAACuJ,GAAG,EAAA;AAAAnJ,MAAAA,QAAA,EACDoJ,MAAM,CAACC,IAAI,CAAChM,qBAAqB,CAAC,CAACiB,GAAG,CAACgL,IAAI,iBAC1C1J,GAAA,CAACuJ,GAAG,CAACI,IAAI,EAAA;QACPC,MAAM,EAAEpF,GAAG,KAAKkF,IAAK;AAErBG,QAAAA,OAAO,EAAEA,MAAMvB,eAAe,CAACoB,IAAI,CAAE;QAAAtJ,QAAA,EAEpC7B,CAAC,CAAC,CAAA,qBAAA,EAAwB4C,gBAAgB,CAACuI,IAAI,CAAC,CAAE,CAAA;AAAC,OAAA,EAH/CA,IAIG,CACX;AAAC,KACC,CACN,eACD1J,GAAA,CAAC8J,SAAS,EAAA;AACRzJ,MAAAA,SAAS,EAAC,MAAM;AAChB0J,MAAAA,eAAe,EACb7B,qBAAqB,iBACnBlI,GAAA,CAACM,UAAU,EAAA;AACTD,QAAAA,SAAS,EAAC,sCAAsC;AAChD2J,QAAAA,SAAS,EAAC,IAAI;QAAA5J,QAAA,EAEboE,GAAG,KAAK/G,qBAAqB,CAACC,GAAG,GAC9Ba,CAAC,CAAC,+BAA+B,EAAE;AAAE0L,UAAAA,KAAK,EAAEvF;AAAc,SAAC,CAAC,GAC5DnG,CAAC,CAAC,yCAAyC,EAAE;AAC3C0L,UAAAA,KAAK,EAAEvF,aAAa;UACpB5D,MAAM,EAAEW,QAAQ,CAAC+C,GAAG;SACrB;AAAC,OACI,CAEf;AACD0F,MAAAA,gBAAgB,EACd/B,qBAAqB,iBACnBnI,GAAA,CAAC8J,SAAS,CAACK,UAAU,EAAA;AACnBC,QAAAA,kBAAkB,EAAE;UAClB3D,UAAU,EAAExB,wBAAwB,CAAC;AACnCF,YAAAA,cAAc,EAAE7C,iBAAiB,CAACC,aAAa,CAAC;YAChDkB,oBAAoB;AACpB6B,YAAAA,QAAQ,EAAEV,GAAG,KAAK/G,qBAAqB,CAACC;WACzC,CAAC,CAACgB,GAAG,CAAC2L,MAAM,CAAC,WAAW,EAAEtE,gBAAgB,CAAC,CAAC;AAC7CuE,UAAAA,YAAY,EAAEC,mBAAmB;AACjCC,UAAAA,QAAQ,EAAE,CAAGjF,EAAAA,UAAU,CAACC,cAAc,IAAIhB,GAAG,CAAA;SAC7C;AACFiG,QAAAA,mBAAmB,EAAE;AACnBZ,UAAAA,OAAO,EAAEA,MAAMjC,oBAAoB,CAAC,IAAI;SACxC;AACF8C,QAAAA,WAAW,EAAE;AACXtI,UAAAA,OAAO,EAAEsF,iBAAiB;AAC1BiD,UAAAA,MAAM,EAAE9C,gBAAgB;AACxB+C,UAAAA,OAAO,EAAEjD,kBAAkB;AAC3BkD,UAAAA,SAAS,EAAE/C,mBAAmB;AAC9BT,UAAAA,QAAQ,EAAEe;AACZ;OACD;AAEJ,KACF,CAAC,eACFpI,GAAA,CAAC8K,GAAU,EAAA;AACT1I,MAAAA,OAAO,EAAEsF,iBAAkB;AAC3BkD,MAAAA,OAAO,EAAEjD,kBAAmB;AAC5BoD,MAAAA,aAAa,EAAEjD,mBAAoB;AACnCT,MAAAA,QAAQ,EAAEe;AAAoB,KAC/B,CAAC;AAAA,GACF,CAAC;AAEP,CAAC;;ACzHK4C,MAAAA,iBAAiB,GAAGA,CAAC;EACzBjI,WAAW;EACXM,oBAAoB;EACpB4H,WAAW,GAAG,EAAE;AAChBC,EAAAA,mBAAmB,GAAG,EAAE;AACxB/I,EAAAA,aAAa,GAAG;AAClB,CAAC,KAAK;EACJ,MAAM;AAAEa,IAAAA,UAAU,GAAG;GAAI,GAAGyB,cAAc,EAAE;AAC5C,EAAA,MAAMiD,iBAAiB,GAAGtE,kBAAkB,CAACC,oBAAoB,CAAC;AAClE,EAAA,MAAMsE,kBAAkB,GAAG7E,gBAAgB,CAACC,WAAW,EAAEC,UAAU,CAAC;EAEpE,MAAM,CAACmI,cAAc,EAAE/G,iBAAiB,CAAC,GAAG2D,QAAQ,CAACvI,uBAAuB,CAAC;EAC7E,MAAM,CAACmE,cAAc,EAAEyH,iBAAiB,CAAC,GAAGrD,QAAQ,CAACsD,mBAAmB,CAAC;EACzE,MAAM,CAACC,iBAAiB,EAAE1D,oBAAoB,CAAC,GAAGG,QAAQ,CAAC,KAAK,CAAC;AACjE,EAAA,MAAM,CAACP,OAAO,EAAEC,UAAU,CAAC,GAAGM,QAAQ,CACpCwD,mBAAmB,CAAC,CAAC,GAAG7D,iBAAiB,EAAEC,kBAAkB,CAAC,CAChE,CAAC;AACD,EAAA,MAAMK,OAAO,GAAGC,UAAU,EAAE;EAC5B,MAAM;IAAEzD,GAAG,GAAG/G,qBAAqB,CAACC;GAAK,GAAG+G,cAAc,EAAE;;AAE5D;AACA;EACA,MAAM+G,UAAU,GAAG7G,OAAO,CACxB,MACE8G,oBAAoB,CAClBjE,OAAO,EACP0D,mBAAmB,EACnBxD,iBACF,CAAC,EACH,CAACF,OAAO,EAAE0D,mBAAmB,EAAExD,iBAAiB,CAClD,CAAC;AAED,EAAA,MAAM9K,OAAO,GAAG;IACduF,aAAa;IACb8I,WAAW;IACXzG,GAAG;AACHgD,IAAAA,OAAO,EAAEgE,UAAU;AACnB,IAAA,GAAG7H,cAAc;IACjB,GAAGwH;GACJ;EAED,MAAM;AACJO,IAAAA,IAAI,EAAE;MAAEhI,QAAQ;AAAEY,MAAAA;KAAO,GAAG,EAAE;IAC9BH,UAAU;AACVwH,IAAAA,SAAS,EAAEC;AACb,GAAC,GAAG1O,gBAAgB,CAACN,OAAO,EAAE;AAAEiP,IAAAA,OAAO,EAAE;AAAK,GAAC,CAAC;AAEhD,EAAA,MAAMxH,qBAAqB,GAAGA,CAACJ,IAAI,EAAED,QAAQ,KAAK;IAChD,MAAMuE,WAAW,GAAG9D,cAAc,CAAC;AAAE+D,MAAAA,WAAW,EAAE;AAAM,KAAC,CAAC;AAC1DR,IAAAA,OAAO,CAACa,IAAI,CACVC,QAAQ,CACNC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EACxB/F,SAAS,CAAC;MAAEe,IAAI;AAAE0E,MAAAA,SAAS,EAAE3E;AAAS,KAAC,EAAEuE,WAAW,CACtD,CACF,CAAC;AACD6C,IAAAA,iBAAiB,CAAC;MAAEnH,IAAI;AAAED,MAAAA;AAAS,KAAC,CAAC;GACtC;AAED8H,EAAAA,SAAS,CAAC,MAAM;AACdzH,IAAAA,qBAAqB,CAACqE,kBAAkB,EAAEE,iBAAiB,CAAC;IAC5DxE,iBAAiB,CAAC5E,uBAAuB,CAAC;AAC5C,GAAC,EAAE,CAACgI,OAAO,EAAEhD,GAAG,CAAC,CAAC;AAElB,EAAA,IAAIoH,iBAAiB,EAAE;AACrB,IAAA,oBACE5L,GAAA,CAAA,KAAA,EAAA;AAAKK,MAAAA,SAAS,EAAC,gDAAgD;AAAAD,MAAAA,QAAA,eAC7DJ,GAAA,CAAC+L,OAAO,EAAE,EAAA;AAAC,KACR,CAAC;AAEV;EAEA,oBACE7C,IAAA,CAAAC,QAAA,EAAA;IAAA/I,QAAA,EAAA,cACEJ,GAAA,CAACuH,UAAU,EAAA;MAEPpF,aAAa;MACbuF,iBAAiB;MACjBF,OAAO;MACP7D,cAAc;MACdN,oBAAoB;MACpBsE,kBAAkB;MAClBF,UAAU;MACVG,oBAAoB;MACpBwD,iBAAiB;MACjBhH,iBAAiB;AACjBE,MAAAA;AAAK,KAER,CAAC,eACFtE,GAAA,CAACkE,IAAI,EAAA;MAED/B,aAAa;MACbkC,qBAAqB;MACrBF,UAAU;MACVR,cAAc;MACdN,oBAAoB;MACpBK,QAAQ;MACRU,iBAAiB;AACjBE,MAAAA;AAAK,KAER,CAAC,eACFtE,GAAA,CAACgM,WAAW,EAAA;MAERf,WAAW;MACXK,iBAAiB;MACjB1D,oBAAoB;MACpBuD,cAAc;MAEhBhJ,aAAa,EAAE8J,cAAc,CAACvI,QAAS;AACvC8D,MAAAA,OAAO,EAAEgE;AAAW,KACrB,CAAC;AAAA,GACF,CAAC;AAEP;;;;"}
|
|
1
|
+
{"version":3,"file":"PaymentsDashboard.js","sources":["../app/javascript/src/apis/payments.js","../app/javascript/src/hooks/reactQuery/usePaymentsApi.js","../app/javascript/src/components/PaymentsDashboard/constants.js","../app/javascript/src/components/PaymentsDashboard/columns/utils.jsx","../app/javascript/src/components/PaymentsDashboard/utils.js","../app/javascript/src/components/PaymentsDashboard/List.jsx","../app/javascript/src/components/PaymentsDashboard/TopSection.jsx","../app/javascript/src/components/PaymentsDashboard/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = payload =>\n axios.get(`${BASE_URL}/api/v1/payments`, { params: payload });\n\nconst paymentsApi = { list };\n\nexport default paymentsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport paymentsApi from \"apis/payments\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchPayments = (payload = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.PAYMENTS_LIST, payload],\n queryFn: () => paymentsApi.list(payload),\n ...options,\n });\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { map } from \"ramda\";\n\nimport { PAYMENT_PROVIDERS } from \"src/constants\";\n\nexport const COLUMNS_STORAGE_KEY = \"paymentsDashboard\";\n\nexport const PAYMENT_DASHBOARD_TAB = {\n all: \"all\",\n successful: \"successful\",\n declined: \"declined\",\n refunded: \"refunded\",\n pending: \"pending\",\n rejected: \"rejected\",\n confirmation_pending: \"confirmation_pending\",\n};\n\nexport const SEARCH_PROPS = {\n node: \"identifier,\",\n key: \"search_term\",\n model: \"NeetoPaymentsEngine::Payment,\",\n};\n\nexport const FILTER_COLUMNS = [\n {\n key: \"payment_provider\",\n label: t(\"neetoPayments.common.paymentProvider\"),\n node: \"payment_provider\",\n type: \"single_option\",\n values: [\n ...map(toLabelAndValue, PAYMENT_PROVIDERS),\n { label: t(\"neetoPayments.common.upi\").toUpperCase(), value: \"eupi\" },\n ],\n },\n {\n key: \"amount\",\n label: t(\"neetoPayments.common.amount\"),\n node: \"amount\",\n type: \"decimal\",\n },\n {\n key: \"payment_time\",\n label: t(\"neetoPayments.common.paymentTime\"),\n node: \"payment_at\",\n type: \"date\",\n },\n];\n\nexport const TAG_STYLE = {\n initiated: \"info\",\n declined: \"danger\",\n successful: \"success\",\n refunded: \"secondary\",\n cancelled: \"secondary\",\n pending: \"warning\",\n paid: \"success\",\n failed: \"danger\",\n in_transit: \"info\",\n rejected: \"danger\",\n confirmationPending: \"warning\",\n};\n\nexport const PAYMENT_PROVIDER = { eupi: \"eupi\" };\n\nexport const DEFAULT_SORT_PROPERTIES = {\n sortBy: \"payment_at\",\n orderBy: \"DESC\",\n};\n","import { t } from \"i18next\";\nimport { snakeToCamelCase, humanize, isPresent, isNotPresent } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag, Tooltip, Typography } from \"neetoui\";\nimport { concat, curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { DEFAULT_TAG_STYLE } from \"src/constants\";\nimport { formatAmount, formatCurrency } from \"utils\";\n\nimport { TAG_STYLE, PAYMENT_PROVIDER } from \"../constants\";\n\nconst renderIdentifier = (identifier, { receiptUrl }) => {\n const isTemporaryIdentifier = identifier?.startsWith(\"temp_\");\n\n if (isTemporaryIdentifier) {\n return (\n <Tooltip\n content={t(\"neetoPayments.tooltipContent.paymentIdentifierUnavailable\")}\n position=\"top\"\n >\n <div className=\"text-center\">\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n </div>\n </Tooltip>\n );\n }\n\n return (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={receiptUrl}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n );\n};\n\nconst getTagStyle = status => TAG_STYLE[status] || DEFAULT_TAG_STYLE;\n\nconst preProcessStatus = (type, status, record = {}) => {\n if (type === \"payment\") {\n return record.isRefunded ? \"refunded\" : status;\n }\n\n return snakeToCamelCase(status);\n};\n\nconst renderStatus = curry((type, status, record) => {\n if (isNotPresent(status)) {\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n }\n\n const processedStatus = preProcessStatus(type, status, record);\n\n return (\n <Tooltip\n content={t(`neetoPayments.tooltipContent.${type}.${processedStatus}`)}\n position=\"top\"\n >\n <div className=\"w-fit\">\n <Tag\n style={getTagStyle(snakeToCamelCase(processedStatus))}\n label={humanize(\n t(`neetoPayments.tagLabels.${type}.${processedStatus}`)\n )}\n />\n </div>\n </Tooltip>\n );\n});\n\nconst renderPaymentProvider = paymentProvider => {\n if (paymentProvider === PAYMENT_PROVIDER.eupi) {\n return t(\"neetoPayments.common.upi\");\n }\n\n return humanize(paymentProvider);\n};\n\nconst renderDate = date => {\n if (isPresent(date)) {\n return <DateFormat.DateTime {...{ date }} />;\n }\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nconst renderPayoutTraceId = value => {\n if (isPresent(value)) return value;\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nexport const getDefaultColumns = dashboardKind => {\n let columns = [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n position: 0,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n position: 1,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.provider\"),\n dataIndex: \"paymentProvider\",\n key: \"paymentProvider\",\n width: 150,\n render: renderPaymentProvider,\n position: 2,\n sorter: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 150,\n render: renderStatus(\"transaction\"),\n sorter: true,\n position: 3,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.totalAmount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.taxAmount\"),\n dataIndex: \"taxAmount\",\n key: \"taxAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.tipAmount\"),\n dataIndex: \"tipAmount\",\n key: \"tipAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.currency\"),\n dataIndex: \"currency\",\n key: \"currency\",\n width: 180,\n sorter: true,\n render: formatCurrency,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.paymentTime\"),\n dataIndex: \"paymentAt\",\n key: \"paymentTime\",\n width: 190,\n render: renderDate,\n sorter: true,\n position: 6,\n },\n {\n title: t(\"neetoPayments.common.notes\"),\n dataIndex: \"notes\",\n key: \"notes\",\n width: 250,\n sorter: false,\n position: 10,\n },\n ];\n\n if (dashboardKind === \"connected\") {\n columns = concat(\n [\n {\n title: t(\"neetoPayments.common.payoutStatus\"),\n dataIndex: [\"payout\", \"status\"],\n key: \"payoutStatus\",\n width: 200,\n render: renderStatus(\"payout\"),\n sorter: false,\n position: 7,\n },\n {\n title: t(\"neetoPayments.common.payoutArrivalDate\"),\n dataIndex: [\"payout\", \"arrivalDate\"],\n key: \"payoutArrivalDate\",\n width: 235,\n render: renderDate,\n sorter: true,\n position: 8,\n },\n {\n title: t(\"neetoPayments.common.payoutTraceId\"),\n dataIndex: [\"payout\", \"traceId\", \"value\"],\n key: \"payoutTraceId\",\n width: 205,\n render: renderPayoutTraceId,\n sorter: false,\n position: 9,\n },\n ],\n columns\n );\n }\n\n return columns;\n};\n","import {\n map,\n prop,\n concat,\n mergeDeepWith,\n mergeLeft,\n isNil,\n reject,\n isEmpty,\n} from \"ramda\";\n\nimport { FILTER_COLUMNS, SEARCH_PROPS } from \"./constants\";\n\nexport const buildSearchProps = (searchProps, searchTerm) =>\n mergeDeepWith(\n concat,\n SEARCH_PROPS,\n mergeLeft({ value: searchTerm.trim() }, searchProps)\n );\n\nexport const buildFilterColumns = (payableEntityColumns = []) =>\n reject(\n isNil,\n concat(FILTER_COLUMNS, map(prop(\"filterProps\"), payableEntityColumns))\n );\n\nexport const buildRowData = ({ payments, pageProperties = {} }) =>\n payments?.map((element, index) => ({\n ...element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties.pageSize * (pageProperties.page - 1) + index + 1,\n }));\n","import { useMemo, useCallback } from \"react\";\n\nimport { camelToSnakeCase, isNotPresent, isPresent, humanize } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n buildDefaultTableColumns,\n getUniquePaymentProviders,\n processDataIndex,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport { buildRowData } from \"./utils\";\n\nconst List = ({\n dashboardKind,\n isFetching,\n payments,\n payableEntityColumns,\n setSortProperties,\n pageProperties,\n handleTablePagination,\n views,\n}) => {\n const { t } = useTranslation();\n\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = useMemo(() => views[tab], [views, tab]);\n const isMultipleProvidersExist = useMemo(\n () => getUniquePaymentProviders(payments ?? []).length > 1,\n [payments]\n );\n\n const defaultColumns = useMemo(\n () => getDefaultColumns(dashboardKind),\n [dashboardKind]\n );\n\n const allColumns = useMemo(\n () =>\n buildDefaultTableColumns({\n payableEntityColumns,\n isMultipleProvidersExist,\n defaultColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }),\n [payableEntityColumns, isMultipleProvidersExist, defaultColumns, tab]\n );\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(`${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`, allColumns);\n\n const handleTableChange = useCallback(\n (_, __, sorter) => {\n setSortProperties(\n isPresent(sorter?.column)\n ? {\n sortBy: camelToSnakeCase(processDataIndex(sorter.field)),\n orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\",\n }\n : DEFAULT_SORT_PROPERTIES\n );\n },\n [setSortProperties]\n );\n\n const rowData = useMemo(\n () => buildRowData({ payments, pageProperties, tab }),\n [payments, pageProperties, tab]\n );\n\n if (isNotPresent(payments)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.emptyState.payments\")\n : t(\"neetoPayments.emptyState.paymentsWithStatus\", {\n status: humanize(tab),\n })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={paymentsCount > pageProperties?.pageSize}>\n <Table\n {...{ rowData }}\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={paymentsCount}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties?.pageSize,\n total: paymentsCount,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { startTransition, useState } from \"react\";\n\nimport { isPresent, snakeToCamelCase, humanize } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { mergeLeft, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { UN_HIDEABLE_COLUMNS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n processDataIndex,\n shouldTabsVisible,\n buildDefaultTableColumns,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB } from \"./constants\";\n\nconst TopSection = ({\n views,\n filters,\n setFilters,\n filterableColumns,\n searchKeywordProps,\n payableEntityColumns,\n setIsExportModalOpen,\n dashboardKind,\n}) => {\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = views?.[tab];\n const isPaymentCountVisible =\n paymentsCount > 0 || (paymentsCount === 0 && isPresent(filters));\n const isFilterButtonVisible = isPaymentCountVisible || isPresent(filters);\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n const handleTabChange = tab => {\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: DEFAULT_PAGE_INDEX,\n page_size: DEFAULT_PAGE_SIZE,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.payments\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: searchKeywordProps.placeholder,\n className:\n searchKeywordProps.placeholder.length > 30 ? \"w-96\" : \"w-64\",\n }\n }\n />\n {shouldTabsVisible(views) && (\n <Tab>\n {Object.keys(PAYMENT_DASHBOARD_TAB).map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${snakeToCamelCase(item)}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPaymentCountVisible && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.countOf.payment\", { count: paymentsCount })\n : t(\"neetoPayments.countOf.paymentWithStatus\", {\n count: paymentsCount,\n status: humanize(tab),\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData: buildDefaultTableColumns({\n defaultColumns: getDefaultColumns(dashboardKind),\n payableEntityColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }).map(modify(\"dataIndex\", processDataIndex)),\n fixedColumns: UN_HIDEABLE_COLUMNS,\n tableKey: `${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`,\n }}\n downloadButtonProps={{\n onClick: () => setIsExportModalOpen(true),\n }}\n filterProps={{\n columns: filterableColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={filterableColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n </>\n );\n};\n\nexport default TopSection;\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { Spinner } from \"neetoui\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ExportModal from \"components/Common/ExportModal\";\nimport { useFetchPayments } from \"hooks/reactQuery/usePaymentsApi\";\nimport { DEFAULT_PAGE_VALUES, DASHBOARD_KIND } from \"src/constants\";\nimport { mergeEnforcedFilters } from \"utils/dashboard\";\n\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport List from \"./List\";\nimport TopSection from \"./TopSection\";\nimport { buildFilterColumns, buildSearchProps } from \"./utils\";\n\nconst PaymentsDashboard = ({\n searchProps,\n payableEntityColumns,\n holdableIds = {},\n enforceFilterValues = [],\n dashboardKind = \"platform\",\n}) => {\n const { searchTerm = \"\" } = getQueryParams();\n const filterableColumns = buildFilterColumns(payableEntityColumns);\n const searchKeywordProps = buildSearchProps(searchProps, searchTerm);\n\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_VALUES);\n const [isExportModalOpen, setIsExportModalOpen] = useState(false);\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...filterableColumns, searchKeywordProps])\n );\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n // Merge enforced filters with user-selected filters for API payload\n // Enforced filters are included in API requests but not reflected in URL\n const apiFilters = useMemo(\n () =>\n mergeEnforcedFilters(\n filters,\n enforceFilterValues,\n filterableColumns\n ),\n [filters, enforceFilterValues, filterableColumns]\n );\n\n const payload = {\n dashboardKind,\n holdableIds,\n tab,\n filters: apiFilters,\n ...pageProperties,\n ...sortProperties,\n };\n\n const {\n data: { payments, views } = {},\n isFetching,\n isPending: isPaymentsLoaidng,\n } = useFetchPayments(payload, { enabled: true });\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties({ page, pageSize });\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n if (isPaymentsLoaidng) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <TopSection\n {...{\n dashboardKind,\n filterableColumns,\n filters,\n pageProperties,\n payableEntityColumns,\n searchKeywordProps,\n setFilters,\n setIsExportModalOpen,\n setPageProperties,\n setSortProperties,\n views,\n }}\n />\n <List\n {...{\n dashboardKind,\n handleTablePagination,\n isFetching,\n pageProperties,\n payableEntityColumns,\n payments,\n setSortProperties,\n views,\n }}\n />\n <ExportModal\n {...{\n holdableIds,\n isExportModalOpen,\n setIsExportModalOpen,\n sortProperties,\n }}\n dashboardKind={DASHBOARD_KIND.payments}\n filters={apiFilters}\n />\n </>\n );\n};\n\nexport default PaymentsDashboard;\n"],"names":["list","payload","axios","get","BASE_URL","params","paymentsApi","useFetchPayments","options","useQuery","queryKey","QUERY_KEYS","PAYMENTS_LIST","queryFn","PAYMENT_DASHBOARD_TAB","all","successful","declined","refunded","pending","rejected","confirmation_pending","SEARCH_PROPS","node","key","model","FILTER_COLUMNS","label","t","type","values","map","toLabelAndValue","PAYMENT_PROVIDERS","toUpperCase","value","TAG_STYLE","initiated","cancelled","paid","failed","in_transit","confirmationPending","PAYMENT_PROVIDER","eupi","DEFAULT_SORT_PROPERTIES","sortBy","orderBy","renderIdentifier","identifier","receiptUrl","isTemporaryIdentifier","startsWith","_jsx","Tooltip","content","position","children","className","Typography","style","CopyButtonWrapper","Button","href","size","target","getTagStyle","status","DEFAULT_TAG_STYLE","preProcessStatus","record","isRefunded","snakeToCamelCase","renderStatus","curry","isNotPresent","processedStatus","Tag","humanize","renderPaymentProvider","paymentProvider","renderDate","date","isPresent","DateFormat","DateTime","renderPayoutTraceId","getDefaultColumns","dashboardKind","columns","title","dataIndex","width","isHidable","render","sorter","formatAmount","formatCurrency","concat","buildSearchProps","searchProps","searchTerm","mergeDeepWith","mergeLeft","trim","buildFilterColumns","payableEntityColumns","reject","isNil","prop","buildRowData","payments","pageProperties","element","index","id","isEmpty","pageSize","page","List","isFetching","setSortProperties","handleTablePagination","views","useTranslation","tab","getQueryParams","paymentsCount","useMemo","isMultipleProvidersExist","getUniquePaymentProviders","length","defaultColumns","allColumns","buildDefaultTableColumns","isAllTab","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","PAYMENTS_TABLE","handleTableChange","useCallback","_","__","column","camelToSnakeCase","processDataIndex","field","order","rowData","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","columnData","currentPageNumber","handlePageChange","loading","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","TopSection","filters","setFilters","filterableColumns","searchKeywordProps","setIsExportModalOpen","isFilterPaneOpen","setIsFilterPaneOpen","useState","history","useHistory","isPaymentCountVisible","isFilterButtonVisible","handleFiltersChange","startTransition","handleTabChange","queryParams","toCamelCase","newParams","DEFAULT_PAGE_INDEX","page_size","DEFAULT_PAGE_SIZE","push","buildUrl","window","location","pathname","_jsxs","_Fragment","Header","placeholder","shouldTabsVisible","Tab","Object","keys","item","Item","active","onClick","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","modify","fixedColumns","UN_HIDEABLE_COLUMNS","tableKey","downloadButtonProps","filterProps","isOpen","keyword","setIsOpen","FiltersBar","setIsPaneOpen","PaymentsDashboard","holdableIds","enforceFilterValues","sortProperties","setPageProperties","DEFAULT_PAGE_VALUES","isExportModalOpen","buildFiltersFromURL","apiFilters","mergeEnforcedFilters","data","isPending","isPaymentsLoaidng","enabled","useEffect","Spinner","ExportModal","DASHBOARD_KIND"],"mappings":"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"}
|
|
@@ -51,6 +51,20 @@ const RazorpayPaymentButton = ({
|
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
const checkout = new window.Razorpay(options);
|
|
54
|
+
|
|
55
|
+
// Listen for payment failure events to capture error details
|
|
56
|
+
checkout.on("payment.failed", response => {
|
|
57
|
+
const errorDescription = response?.error?.description;
|
|
58
|
+
const errorReason = response?.error?.reason;
|
|
59
|
+
logger.error("Razorpay payment failed:", {
|
|
60
|
+
description: errorDescription,
|
|
61
|
+
reason: errorReason
|
|
62
|
+
});
|
|
63
|
+
onFailedPayment({
|
|
64
|
+
errorDescription,
|
|
65
|
+
errorReason
|
|
66
|
+
});
|
|
67
|
+
});
|
|
54
68
|
checkout.open();
|
|
55
69
|
};
|
|
56
70
|
const handlePayment = response => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RazorpayPaymentButton.js","sources":["../app/javascript/src/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { isNotPresent, noop, findBy } from \"neetocist\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateRazorpayPayment } from \"hooks/reactQuery/razorpay/usePaymentApi\";\nimport { Button } from \"neetoui\";\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 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}) => {\n const { t } = useTranslation();\n\n const openRazorpayCheckout = async options => {\n const script = await loadScript(\n \"https://checkout.razorpay.com/v1/checkout.js\"\n );\n\n if (!script) {\n logger.error(t(\"neetoPayments.razorpay.loadError\"));\n\n return;\n }\n const checkout = new window.Razorpay(options);\n checkout.open();\n };\n\n const handlePayment = response => {\n if (isNotPresent(response?.razorpay_signature)) {\n onFailedPayment();\n\n return;\n }\n\n onSuccessfulPayment();\n };\n\n const handleSuccess = ({ payment }) => {\n if (payment?.status === \"successful\") {\n return onSuccessfulPayment();\n }\n\n const 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 });\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 },\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","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","t","useTranslation","openRazorpayCheckout","options","logger","error","checkout","window","Razorpay","
|
|
1
|
+
{"version":3,"file":"RazorpayPaymentButton.js","sources":["../app/javascript/src/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { isNotPresent, noop, findBy } from \"neetocist\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateRazorpayPayment } from \"hooks/reactQuery/razorpay/usePaymentApi\";\nimport { Button } from \"neetoui\";\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 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}) => {\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 // Listen for payment failure events to capture error details\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 });\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 },\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","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","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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"}
|
|
@@ -248,6 +248,13 @@ const getDefaultColumns = dashboardKind => {
|
|
|
248
248
|
render: renderDate,
|
|
249
249
|
sorter: true,
|
|
250
250
|
position: 6
|
|
251
|
+
}, {
|
|
252
|
+
title: i18next.t("neetoPayments.common.notes"),
|
|
253
|
+
dataIndex: "notes",
|
|
254
|
+
key: "notes",
|
|
255
|
+
width: 250,
|
|
256
|
+
sorter: false,
|
|
257
|
+
position: 10
|
|
251
258
|
}];
|
|
252
259
|
if (dashboardKind === "connected") {
|
|
253
260
|
columns = ramda.concat([{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentsDashboard.js","sources":["../../app/javascript/src/apis/payments.js","../../app/javascript/src/hooks/reactQuery/usePaymentsApi.js","../../app/javascript/src/components/PaymentsDashboard/constants.js","../../app/javascript/src/components/PaymentsDashboard/columns/utils.jsx","../../app/javascript/src/components/PaymentsDashboard/utils.js","../../app/javascript/src/components/PaymentsDashboard/List.jsx","../../app/javascript/src/components/PaymentsDashboard/TopSection.jsx","../../app/javascript/src/components/PaymentsDashboard/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = payload =>\n axios.get(`${BASE_URL}/api/v1/payments`, { params: payload });\n\nconst paymentsApi = { list };\n\nexport default paymentsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport paymentsApi from \"apis/payments\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchPayments = (payload = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.PAYMENTS_LIST, payload],\n queryFn: () => paymentsApi.list(payload),\n ...options,\n });\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { map } from \"ramda\";\n\nimport { PAYMENT_PROVIDERS } from \"src/constants\";\n\nexport const COLUMNS_STORAGE_KEY = \"paymentsDashboard\";\n\nexport const PAYMENT_DASHBOARD_TAB = {\n all: \"all\",\n successful: \"successful\",\n declined: \"declined\",\n refunded: \"refunded\",\n pending: \"pending\",\n rejected: \"rejected\",\n confirmation_pending: \"confirmation_pending\",\n};\n\nexport const SEARCH_PROPS = {\n node: \"identifier,\",\n key: \"search_term\",\n model: \"NeetoPaymentsEngine::Payment,\",\n};\n\nexport const FILTER_COLUMNS = [\n {\n key: \"payment_provider\",\n label: t(\"neetoPayments.common.paymentProvider\"),\n node: \"payment_provider\",\n type: \"single_option\",\n values: [\n ...map(toLabelAndValue, PAYMENT_PROVIDERS),\n { label: t(\"neetoPayments.common.upi\").toUpperCase(), value: \"eupi\" },\n ],\n },\n {\n key: \"amount\",\n label: t(\"neetoPayments.common.amount\"),\n node: \"amount\",\n type: \"decimal\",\n },\n {\n key: \"payment_time\",\n label: t(\"neetoPayments.common.paymentTime\"),\n node: \"payment_at\",\n type: \"date\",\n },\n];\n\nexport const TAG_STYLE = {\n initiated: \"info\",\n declined: \"danger\",\n successful: \"success\",\n refunded: \"secondary\",\n cancelled: \"secondary\",\n pending: \"warning\",\n paid: \"success\",\n failed: \"danger\",\n in_transit: \"info\",\n rejected: \"danger\",\n confirmationPending: \"warning\",\n};\n\nexport const PAYMENT_PROVIDER = { eupi: \"eupi\" };\n\nexport const DEFAULT_SORT_PROPERTIES = {\n sortBy: \"payment_at\",\n orderBy: \"DESC\",\n};\n","import { t } from \"i18next\";\nimport { snakeToCamelCase, humanize, isPresent, isNotPresent } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag, Tooltip, Typography } from \"neetoui\";\nimport { concat, curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { DEFAULT_TAG_STYLE } from \"src/constants\";\nimport { formatAmount, formatCurrency } from \"utils\";\n\nimport { TAG_STYLE, PAYMENT_PROVIDER } from \"../constants\";\n\nconst renderIdentifier = (identifier, { receiptUrl }) => {\n const isTemporaryIdentifier = identifier?.startsWith(\"temp_\");\n\n if (isTemporaryIdentifier) {\n return (\n <Tooltip\n content={t(\"neetoPayments.tooltipContent.paymentIdentifierUnavailable\")}\n position=\"top\"\n >\n <div className=\"text-center\">\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n </div>\n </Tooltip>\n );\n }\n\n return (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={receiptUrl}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n );\n};\n\nconst getTagStyle = status => TAG_STYLE[status] || DEFAULT_TAG_STYLE;\n\nconst preProcessStatus = (type, status, record = {}) => {\n if (type === \"payment\") {\n return record.isRefunded ? \"refunded\" : status;\n }\n\n return snakeToCamelCase(status);\n};\n\nconst renderStatus = curry((type, status, record) => {\n if (isNotPresent(status)) {\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n }\n\n const processedStatus = preProcessStatus(type, status, record);\n\n return (\n <Tooltip\n content={t(`neetoPayments.tooltipContent.${type}.${processedStatus}`)}\n position=\"top\"\n >\n <div className=\"w-fit\">\n <Tag\n style={getTagStyle(snakeToCamelCase(processedStatus))}\n label={humanize(\n t(`neetoPayments.tagLabels.${type}.${processedStatus}`)\n )}\n />\n </div>\n </Tooltip>\n );\n});\n\nconst renderPaymentProvider = paymentProvider => {\n if (paymentProvider === PAYMENT_PROVIDER.eupi) {\n return t(\"neetoPayments.common.upi\");\n }\n\n return humanize(paymentProvider);\n};\n\nconst renderDate = date => {\n if (isPresent(date)) {\n return <DateFormat.DateTime {...{ date }} />;\n }\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nconst renderPayoutTraceId = value => {\n if (isPresent(value)) return value;\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nexport const getDefaultColumns = dashboardKind => {\n let columns = [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n position: 0,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n position: 1,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.provider\"),\n dataIndex: \"paymentProvider\",\n key: \"paymentProvider\",\n width: 150,\n render: renderPaymentProvider,\n position: 2,\n sorter: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 150,\n render: renderStatus(\"transaction\"),\n sorter: true,\n position: 3,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.totalAmount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.taxAmount\"),\n dataIndex: \"taxAmount\",\n key: \"taxAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.tipAmount\"),\n dataIndex: \"tipAmount\",\n key: \"tipAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.currency\"),\n dataIndex: \"currency\",\n key: \"currency\",\n width: 180,\n sorter: true,\n render: formatCurrency,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.paymentTime\"),\n dataIndex: \"paymentAt\",\n key: \"paymentTime\",\n width: 190,\n render: renderDate,\n sorter: true,\n position: 6,\n },\n ];\n\n if (dashboardKind === \"connected\") {\n columns = concat(\n [\n {\n title: t(\"neetoPayments.common.payoutStatus\"),\n dataIndex: [\"payout\", \"status\"],\n key: \"payoutStatus\",\n width: 200,\n render: renderStatus(\"payout\"),\n sorter: false,\n position: 7,\n },\n {\n title: t(\"neetoPayments.common.payoutArrivalDate\"),\n dataIndex: [\"payout\", \"arrivalDate\"],\n key: \"payoutArrivalDate\",\n width: 235,\n render: renderDate,\n sorter: true,\n position: 8,\n },\n {\n title: t(\"neetoPayments.common.payoutTraceId\"),\n dataIndex: [\"payout\", \"traceId\", \"value\"],\n key: \"payoutTraceId\",\n width: 205,\n render: renderPayoutTraceId,\n sorter: false,\n position: 9,\n },\n ],\n columns\n );\n }\n\n return columns;\n};\n","import {\n map,\n prop,\n concat,\n mergeDeepWith,\n mergeLeft,\n isNil,\n reject,\n isEmpty,\n} from \"ramda\";\n\nimport { FILTER_COLUMNS, SEARCH_PROPS } from \"./constants\";\n\nexport const buildSearchProps = (searchProps, searchTerm) =>\n mergeDeepWith(\n concat,\n SEARCH_PROPS,\n mergeLeft({ value: searchTerm.trim() }, searchProps)\n );\n\nexport const buildFilterColumns = (payableEntityColumns = []) =>\n reject(\n isNil,\n concat(FILTER_COLUMNS, map(prop(\"filterProps\"), payableEntityColumns))\n );\n\nexport const buildRowData = ({ payments, pageProperties = {} }) =>\n payments?.map((element, index) => ({\n ...element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties.pageSize * (pageProperties.page - 1) + index + 1,\n }));\n","import { useMemo, useCallback } from \"react\";\n\nimport { camelToSnakeCase, isNotPresent, isPresent, humanize } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n buildDefaultTableColumns,\n getUniquePaymentProviders,\n processDataIndex,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport { buildRowData } from \"./utils\";\n\nconst List = ({\n dashboardKind,\n isFetching,\n payments,\n payableEntityColumns,\n setSortProperties,\n pageProperties,\n handleTablePagination,\n views,\n}) => {\n const { t } = useTranslation();\n\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = useMemo(() => views[tab], [views, tab]);\n const isMultipleProvidersExist = useMemo(\n () => getUniquePaymentProviders(payments ?? []).length > 1,\n [payments]\n );\n\n const defaultColumns = useMemo(\n () => getDefaultColumns(dashboardKind),\n [dashboardKind]\n );\n\n const allColumns = useMemo(\n () =>\n buildDefaultTableColumns({\n payableEntityColumns,\n isMultipleProvidersExist,\n defaultColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }),\n [payableEntityColumns, isMultipleProvidersExist, defaultColumns, tab]\n );\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(`${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`, allColumns);\n\n const handleTableChange = useCallback(\n (_, __, sorter) => {\n setSortProperties(\n isPresent(sorter?.column)\n ? {\n sortBy: camelToSnakeCase(processDataIndex(sorter.field)),\n orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\",\n }\n : DEFAULT_SORT_PROPERTIES\n );\n },\n [setSortProperties]\n );\n\n const rowData = useMemo(\n () => buildRowData({ payments, pageProperties, tab }),\n [payments, pageProperties, tab]\n );\n\n if (isNotPresent(payments)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.emptyState.payments\")\n : t(\"neetoPayments.emptyState.paymentsWithStatus\", {\n status: humanize(tab),\n })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={paymentsCount > pageProperties?.pageSize}>\n <Table\n {...{ rowData }}\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={paymentsCount}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties?.pageSize,\n total: paymentsCount,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { startTransition, useState } from \"react\";\n\nimport { isPresent, snakeToCamelCase, humanize } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { mergeLeft, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { UN_HIDEABLE_COLUMNS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n processDataIndex,\n shouldTabsVisible,\n buildDefaultTableColumns,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB } from \"./constants\";\n\nconst TopSection = ({\n views,\n filters,\n setFilters,\n filterableColumns,\n searchKeywordProps,\n payableEntityColumns,\n setIsExportModalOpen,\n dashboardKind,\n}) => {\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = views?.[tab];\n const isPaymentCountVisible =\n paymentsCount > 0 || (paymentsCount === 0 && isPresent(filters));\n const isFilterButtonVisible = isPaymentCountVisible || isPresent(filters);\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n const handleTabChange = tab => {\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: DEFAULT_PAGE_INDEX,\n page_size: DEFAULT_PAGE_SIZE,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.payments\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: searchKeywordProps.placeholder,\n className:\n searchKeywordProps.placeholder.length > 30 ? \"w-96\" : \"w-64\",\n }\n }\n />\n {shouldTabsVisible(views) && (\n <Tab>\n {Object.keys(PAYMENT_DASHBOARD_TAB).map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${snakeToCamelCase(item)}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPaymentCountVisible && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.countOf.payment\", { count: paymentsCount })\n : t(\"neetoPayments.countOf.paymentWithStatus\", {\n count: paymentsCount,\n status: humanize(tab),\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData: buildDefaultTableColumns({\n defaultColumns: getDefaultColumns(dashboardKind),\n payableEntityColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }).map(modify(\"dataIndex\", processDataIndex)),\n fixedColumns: UN_HIDEABLE_COLUMNS,\n tableKey: `${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`,\n }}\n downloadButtonProps={{\n onClick: () => setIsExportModalOpen(true),\n }}\n filterProps={{\n columns: filterableColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={filterableColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n </>\n );\n};\n\nexport default TopSection;\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { Spinner } from \"neetoui\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ExportModal from \"components/Common/ExportModal\";\nimport { useFetchPayments } from \"hooks/reactQuery/usePaymentsApi\";\nimport { DEFAULT_PAGE_VALUES, DASHBOARD_KIND } from \"src/constants\";\nimport { mergeEnforcedFilters } from \"utils/dashboard\";\n\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport List from \"./List\";\nimport TopSection from \"./TopSection\";\nimport { buildFilterColumns, buildSearchProps } from \"./utils\";\n\nconst PaymentsDashboard = ({\n searchProps,\n payableEntityColumns,\n holdableIds = {},\n enforceFilterValues = [],\n dashboardKind = \"platform\",\n}) => {\n const { searchTerm = \"\" } = getQueryParams();\n const filterableColumns = buildFilterColumns(payableEntityColumns);\n const searchKeywordProps = buildSearchProps(searchProps, searchTerm);\n\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_VALUES);\n const [isExportModalOpen, setIsExportModalOpen] = useState(false);\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...filterableColumns, searchKeywordProps])\n );\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n // Merge enforced filters with user-selected filters for API payload\n // Enforced filters are included in API requests but not reflected in URL\n const apiFilters = useMemo(\n () =>\n mergeEnforcedFilters(\n filters,\n enforceFilterValues,\n filterableColumns\n ),\n [filters, enforceFilterValues, filterableColumns]\n );\n\n const payload = {\n dashboardKind,\n holdableIds,\n tab,\n filters: apiFilters,\n ...pageProperties,\n ...sortProperties,\n };\n\n const {\n data: { payments, views } = {},\n isFetching,\n isPending: isPaymentsLoaidng,\n } = useFetchPayments(payload, { enabled: true });\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties({ page, pageSize });\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n if (isPaymentsLoaidng) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <TopSection\n {...{\n dashboardKind,\n filterableColumns,\n filters,\n pageProperties,\n payableEntityColumns,\n searchKeywordProps,\n setFilters,\n setIsExportModalOpen,\n setPageProperties,\n setSortProperties,\n views,\n }}\n />\n <List\n {...{\n dashboardKind,\n handleTablePagination,\n isFetching,\n pageProperties,\n payableEntityColumns,\n payments,\n setSortProperties,\n views,\n }}\n />\n <ExportModal\n {...{\n holdableIds,\n isExportModalOpen,\n setIsExportModalOpen,\n sortProperties,\n }}\n dashboardKind={DASHBOARD_KIND.payments}\n filters={apiFilters}\n />\n </>\n );\n};\n\nexport default PaymentsDashboard;\n"],"names":["list","payload","axios","get","BASE_URL","params","paymentsApi","useFetchPayments","options","useQuery","queryKey","QUERY_KEYS","PAYMENTS_LIST","queryFn","PAYMENT_DASHBOARD_TAB","all","successful","declined","refunded","pending","rejected","confirmation_pending","SEARCH_PROPS","node","key","model","FILTER_COLUMNS","label","t","type","values","map","toLabelAndValue","PAYMENT_PROVIDERS","toUpperCase","value","TAG_STYLE","initiated","cancelled","paid","failed","in_transit","confirmationPending","PAYMENT_PROVIDER","eupi","DEFAULT_SORT_PROPERTIES","sortBy","orderBy","renderIdentifier","identifier","receiptUrl","isTemporaryIdentifier","startsWith","_jsx","Tooltip","content","position","children","className","Typography","style","CopyButtonWrapper","Button","href","size","target","getTagStyle","status","DEFAULT_TAG_STYLE","preProcessStatus","record","isRefunded","snakeToCamelCase","renderStatus","curry","isNotPresent","processedStatus","Tag","humanize","renderPaymentProvider","paymentProvider","renderDate","date","isPresent","DateFormat","DateTime","renderPayoutTraceId","getDefaultColumns","dashboardKind","columns","title","dataIndex","width","isHidable","render","sorter","formatAmount","formatCurrency","concat","buildSearchProps","searchProps","searchTerm","mergeDeepWith","mergeLeft","trim","buildFilterColumns","payableEntityColumns","reject","isNil","prop","buildRowData","payments","pageProperties","element","index","id","isEmpty","pageSize","page","List","isFetching","setSortProperties","handleTablePagination","views","useTranslation","tab","getQueryParams","paymentsCount","useMemo","isMultipleProvidersExist","getUniquePaymentProviders","length","defaultColumns","allColumns","buildDefaultTableColumns","isAllTab","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","PAYMENTS_TABLE","handleTableChange","useCallback","_","__","column","camelToSnakeCase","processDataIndex","field","order","rowData","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","columnData","currentPageNumber","handlePageChange","loading","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","TopSection","filters","setFilters","filterableColumns","searchKeywordProps","setIsExportModalOpen","isFilterPaneOpen","setIsFilterPaneOpen","useState","history","useHistory","isPaymentCountVisible","isFilterButtonVisible","handleFiltersChange","startTransition","handleTabChange","queryParams","toCamelCase","newParams","DEFAULT_PAGE_INDEX","page_size","DEFAULT_PAGE_SIZE","push","buildUrl","window","location","pathname","_jsxs","_Fragment","Header","placeholder","shouldTabsVisible","Tab","Object","keys","item","Item","active","onClick","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","modify","fixedColumns","UN_HIDEABLE_COLUMNS","tableKey","downloadButtonProps","filterProps","isOpen","keyword","setIsOpen","FiltersBar","setIsPaneOpen","PaymentsDashboard","holdableIds","enforceFilterValues","sortProperties","setPageProperties","DEFAULT_PAGE_VALUES","isExportModalOpen","buildFiltersFromURL","apiFilters","mergeEnforcedFilters","data","isPending","isPaymentsLoaidng","enabled","useEffect","Spinner","ExportModal","DASHBOARD_KIND"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaymentsDashboard.js","sources":["../../app/javascript/src/apis/payments.js","../../app/javascript/src/hooks/reactQuery/usePaymentsApi.js","../../app/javascript/src/components/PaymentsDashboard/constants.js","../../app/javascript/src/components/PaymentsDashboard/columns/utils.jsx","../../app/javascript/src/components/PaymentsDashboard/utils.js","../../app/javascript/src/components/PaymentsDashboard/List.jsx","../../app/javascript/src/components/PaymentsDashboard/TopSection.jsx","../../app/javascript/src/components/PaymentsDashboard/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = payload =>\n axios.get(`${BASE_URL}/api/v1/payments`, { params: payload });\n\nconst paymentsApi = { list };\n\nexport default paymentsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport paymentsApi from \"apis/payments\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchPayments = (payload = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.PAYMENTS_LIST, payload],\n queryFn: () => paymentsApi.list(payload),\n ...options,\n });\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { map } from \"ramda\";\n\nimport { PAYMENT_PROVIDERS } from \"src/constants\";\n\nexport const COLUMNS_STORAGE_KEY = \"paymentsDashboard\";\n\nexport const PAYMENT_DASHBOARD_TAB = {\n all: \"all\",\n successful: \"successful\",\n declined: \"declined\",\n refunded: \"refunded\",\n pending: \"pending\",\n rejected: \"rejected\",\n confirmation_pending: \"confirmation_pending\",\n};\n\nexport const SEARCH_PROPS = {\n node: \"identifier,\",\n key: \"search_term\",\n model: \"NeetoPaymentsEngine::Payment,\",\n};\n\nexport const FILTER_COLUMNS = [\n {\n key: \"payment_provider\",\n label: t(\"neetoPayments.common.paymentProvider\"),\n node: \"payment_provider\",\n type: \"single_option\",\n values: [\n ...map(toLabelAndValue, PAYMENT_PROVIDERS),\n { label: t(\"neetoPayments.common.upi\").toUpperCase(), value: \"eupi\" },\n ],\n },\n {\n key: \"amount\",\n label: t(\"neetoPayments.common.amount\"),\n node: \"amount\",\n type: \"decimal\",\n },\n {\n key: \"payment_time\",\n label: t(\"neetoPayments.common.paymentTime\"),\n node: \"payment_at\",\n type: \"date\",\n },\n];\n\nexport const TAG_STYLE = {\n initiated: \"info\",\n declined: \"danger\",\n successful: \"success\",\n refunded: \"secondary\",\n cancelled: \"secondary\",\n pending: \"warning\",\n paid: \"success\",\n failed: \"danger\",\n in_transit: \"info\",\n rejected: \"danger\",\n confirmationPending: \"warning\",\n};\n\nexport const PAYMENT_PROVIDER = { eupi: \"eupi\" };\n\nexport const DEFAULT_SORT_PROPERTIES = {\n sortBy: \"payment_at\",\n orderBy: \"DESC\",\n};\n","import { t } from \"i18next\";\nimport { snakeToCamelCase, humanize, isPresent, isNotPresent } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag, Tooltip, Typography } from \"neetoui\";\nimport { concat, curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { DEFAULT_TAG_STYLE } from \"src/constants\";\nimport { formatAmount, formatCurrency } from \"utils\";\n\nimport { TAG_STYLE, PAYMENT_PROVIDER } from \"../constants\";\n\nconst renderIdentifier = (identifier, { receiptUrl }) => {\n const isTemporaryIdentifier = identifier?.startsWith(\"temp_\");\n\n if (isTemporaryIdentifier) {\n return (\n <Tooltip\n content={t(\"neetoPayments.tooltipContent.paymentIdentifierUnavailable\")}\n position=\"top\"\n >\n <div className=\"text-center\">\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n </div>\n </Tooltip>\n );\n }\n\n return (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={receiptUrl}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n );\n};\n\nconst getTagStyle = status => TAG_STYLE[status] || DEFAULT_TAG_STYLE;\n\nconst preProcessStatus = (type, status, record = {}) => {\n if (type === \"payment\") {\n return record.isRefunded ? \"refunded\" : status;\n }\n\n return snakeToCamelCase(status);\n};\n\nconst renderStatus = curry((type, status, record) => {\n if (isNotPresent(status)) {\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n }\n\n const processedStatus = preProcessStatus(type, status, record);\n\n return (\n <Tooltip\n content={t(`neetoPayments.tooltipContent.${type}.${processedStatus}`)}\n position=\"top\"\n >\n <div className=\"w-fit\">\n <Tag\n style={getTagStyle(snakeToCamelCase(processedStatus))}\n label={humanize(\n t(`neetoPayments.tagLabels.${type}.${processedStatus}`)\n )}\n />\n </div>\n </Tooltip>\n );\n});\n\nconst renderPaymentProvider = paymentProvider => {\n if (paymentProvider === PAYMENT_PROVIDER.eupi) {\n return t(\"neetoPayments.common.upi\");\n }\n\n return humanize(paymentProvider);\n};\n\nconst renderDate = date => {\n if (isPresent(date)) {\n return <DateFormat.DateTime {...{ date }} />;\n }\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nconst renderPayoutTraceId = value => {\n if (isPresent(value)) return value;\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nexport const getDefaultColumns = dashboardKind => {\n let columns = [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n position: 0,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n position: 1,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.provider\"),\n dataIndex: \"paymentProvider\",\n key: \"paymentProvider\",\n width: 150,\n render: renderPaymentProvider,\n position: 2,\n sorter: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 150,\n render: renderStatus(\"transaction\"),\n sorter: true,\n position: 3,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.totalAmount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.taxAmount\"),\n dataIndex: \"taxAmount\",\n key: \"taxAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.tipAmount\"),\n dataIndex: \"tipAmount\",\n key: \"tipAmount\",\n width: 200,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.currency\"),\n dataIndex: \"currency\",\n key: \"currency\",\n width: 180,\n sorter: true,\n render: formatCurrency,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.paymentTime\"),\n dataIndex: \"paymentAt\",\n key: \"paymentTime\",\n width: 190,\n render: renderDate,\n sorter: true,\n position: 6,\n },\n {\n title: t(\"neetoPayments.common.notes\"),\n dataIndex: \"notes\",\n key: \"notes\",\n width: 250,\n sorter: false,\n position: 10,\n },\n ];\n\n if (dashboardKind === \"connected\") {\n columns = concat(\n [\n {\n title: t(\"neetoPayments.common.payoutStatus\"),\n dataIndex: [\"payout\", \"status\"],\n key: \"payoutStatus\",\n width: 200,\n render: renderStatus(\"payout\"),\n sorter: false,\n position: 7,\n },\n {\n title: t(\"neetoPayments.common.payoutArrivalDate\"),\n dataIndex: [\"payout\", \"arrivalDate\"],\n key: \"payoutArrivalDate\",\n width: 235,\n render: renderDate,\n sorter: true,\n position: 8,\n },\n {\n title: t(\"neetoPayments.common.payoutTraceId\"),\n dataIndex: [\"payout\", \"traceId\", \"value\"],\n key: \"payoutTraceId\",\n width: 205,\n render: renderPayoutTraceId,\n sorter: false,\n position: 9,\n },\n ],\n columns\n );\n }\n\n return columns;\n};\n","import {\n map,\n prop,\n concat,\n mergeDeepWith,\n mergeLeft,\n isNil,\n reject,\n isEmpty,\n} from \"ramda\";\n\nimport { FILTER_COLUMNS, SEARCH_PROPS } from \"./constants\";\n\nexport const buildSearchProps = (searchProps, searchTerm) =>\n mergeDeepWith(\n concat,\n SEARCH_PROPS,\n mergeLeft({ value: searchTerm.trim() }, searchProps)\n );\n\nexport const buildFilterColumns = (payableEntityColumns = []) =>\n reject(\n isNil,\n concat(FILTER_COLUMNS, map(prop(\"filterProps\"), payableEntityColumns))\n );\n\nexport const buildRowData = ({ payments, pageProperties = {} }) =>\n payments?.map((element, index) => ({\n ...element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties.pageSize * (pageProperties.page - 1) + index + 1,\n }));\n","import { useMemo, useCallback } from \"react\";\n\nimport { camelToSnakeCase, isNotPresent, isPresent, humanize } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n buildDefaultTableColumns,\n getUniquePaymentProviders,\n processDataIndex,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport { buildRowData } from \"./utils\";\n\nconst List = ({\n dashboardKind,\n isFetching,\n payments,\n payableEntityColumns,\n setSortProperties,\n pageProperties,\n handleTablePagination,\n views,\n}) => {\n const { t } = useTranslation();\n\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = useMemo(() => views[tab], [views, tab]);\n const isMultipleProvidersExist = useMemo(\n () => getUniquePaymentProviders(payments ?? []).length > 1,\n [payments]\n );\n\n const defaultColumns = useMemo(\n () => getDefaultColumns(dashboardKind),\n [dashboardKind]\n );\n\n const allColumns = useMemo(\n () =>\n buildDefaultTableColumns({\n payableEntityColumns,\n isMultipleProvidersExist,\n defaultColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }),\n [payableEntityColumns, isMultipleProvidersExist, defaultColumns, tab]\n );\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(`${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`, allColumns);\n\n const handleTableChange = useCallback(\n (_, __, sorter) => {\n setSortProperties(\n isPresent(sorter?.column)\n ? {\n sortBy: camelToSnakeCase(processDataIndex(sorter.field)),\n orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\",\n }\n : DEFAULT_SORT_PROPERTIES\n );\n },\n [setSortProperties]\n );\n\n const rowData = useMemo(\n () => buildRowData({ payments, pageProperties, tab }),\n [payments, pageProperties, tab]\n );\n\n if (isNotPresent(payments)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.emptyState.payments\")\n : t(\"neetoPayments.emptyState.paymentsWithStatus\", {\n status: humanize(tab),\n })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={paymentsCount > pageProperties?.pageSize}>\n <Table\n {...{ rowData }}\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={paymentsCount}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties?.pageSize,\n total: paymentsCount,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { startTransition, useState } from \"react\";\n\nimport { isPresent, snakeToCamelCase, humanize } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { mergeLeft, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { UN_HIDEABLE_COLUMNS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n processDataIndex,\n shouldTabsVisible,\n buildDefaultTableColumns,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { PAYMENT_DASHBOARD_TAB } from \"./constants\";\n\nconst TopSection = ({\n views,\n filters,\n setFilters,\n filterableColumns,\n searchKeywordProps,\n payableEntityColumns,\n setIsExportModalOpen,\n dashboardKind,\n}) => {\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n const paymentsCount = views?.[tab];\n const isPaymentCountVisible =\n paymentsCount > 0 || (paymentsCount === 0 && isPresent(filters));\n const isFilterButtonVisible = isPaymentCountVisible || isPresent(filters);\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n const handleTabChange = tab => {\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: DEFAULT_PAGE_INDEX,\n page_size: DEFAULT_PAGE_SIZE,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.payments\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: searchKeywordProps.placeholder,\n className:\n searchKeywordProps.placeholder.length > 30 ? \"w-96\" : \"w-64\",\n }\n }\n />\n {shouldTabsVisible(views) && (\n <Tab>\n {Object.keys(PAYMENT_DASHBOARD_TAB).map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${snakeToCamelCase(item)}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPaymentCountVisible && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === PAYMENT_DASHBOARD_TAB.all\n ? t(\"neetoPayments.countOf.payment\", { count: paymentsCount })\n : t(\"neetoPayments.countOf.paymentWithStatus\", {\n count: paymentsCount,\n status: humanize(tab),\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData: buildDefaultTableColumns({\n defaultColumns: getDefaultColumns(dashboardKind),\n payableEntityColumns,\n isAllTab: tab === PAYMENT_DASHBOARD_TAB.all,\n }).map(modify(\"dataIndex\", processDataIndex)),\n fixedColumns: UN_HIDEABLE_COLUMNS,\n tableKey: `${TABLE_KEYS.PAYMENTS_TABLE}-${tab}`,\n }}\n downloadButtonProps={{\n onClick: () => setIsExportModalOpen(true),\n }}\n filterProps={{\n columns: filterableColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={filterableColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n </>\n );\n};\n\nexport default TopSection;\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { Spinner } from \"neetoui\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ExportModal from \"components/Common/ExportModal\";\nimport { useFetchPayments } from \"hooks/reactQuery/usePaymentsApi\";\nimport { DEFAULT_PAGE_VALUES, DASHBOARD_KIND } from \"src/constants\";\nimport { mergeEnforcedFilters } from \"utils/dashboard\";\n\nimport { PAYMENT_DASHBOARD_TAB, DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport List from \"./List\";\nimport TopSection from \"./TopSection\";\nimport { buildFilterColumns, buildSearchProps } from \"./utils\";\n\nconst PaymentsDashboard = ({\n searchProps,\n payableEntityColumns,\n holdableIds = {},\n enforceFilterValues = [],\n dashboardKind = \"platform\",\n}) => {\n const { searchTerm = \"\" } = getQueryParams();\n const filterableColumns = buildFilterColumns(payableEntityColumns);\n const searchKeywordProps = buildSearchProps(searchProps, searchTerm);\n\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_VALUES);\n const [isExportModalOpen, setIsExportModalOpen] = useState(false);\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...filterableColumns, searchKeywordProps])\n );\n const history = useHistory();\n const { tab = PAYMENT_DASHBOARD_TAB.all } = getQueryParams();\n\n // Merge enforced filters with user-selected filters for API payload\n // Enforced filters are included in API requests but not reflected in URL\n const apiFilters = useMemo(\n () =>\n mergeEnforcedFilters(\n filters,\n enforceFilterValues,\n filterableColumns\n ),\n [filters, enforceFilterValues, filterableColumns]\n );\n\n const payload = {\n dashboardKind,\n holdableIds,\n tab,\n filters: apiFilters,\n ...pageProperties,\n ...sortProperties,\n };\n\n const {\n data: { payments, views } = {},\n isFetching,\n isPending: isPaymentsLoaidng,\n } = useFetchPayments(payload, { enabled: true });\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties({ page, pageSize });\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n if (isPaymentsLoaidng) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <TopSection\n {...{\n dashboardKind,\n filterableColumns,\n filters,\n pageProperties,\n payableEntityColumns,\n searchKeywordProps,\n setFilters,\n setIsExportModalOpen,\n setPageProperties,\n setSortProperties,\n views,\n }}\n />\n <List\n {...{\n dashboardKind,\n handleTablePagination,\n isFetching,\n pageProperties,\n payableEntityColumns,\n payments,\n setSortProperties,\n views,\n }}\n />\n <ExportModal\n {...{\n holdableIds,\n isExportModalOpen,\n setIsExportModalOpen,\n sortProperties,\n }}\n dashboardKind={DASHBOARD_KIND.payments}\n filters={apiFilters}\n />\n </>\n );\n};\n\nexport default PaymentsDashboard;\n"],"names":["list","payload","axios","get","BASE_URL","params","paymentsApi","useFetchPayments","options","useQuery","queryKey","QUERY_KEYS","PAYMENTS_LIST","queryFn","PAYMENT_DASHBOARD_TAB","all","successful","declined","refunded","pending","rejected","confirmation_pending","SEARCH_PROPS","node","key","model","FILTER_COLUMNS","label","t","type","values","map","toLabelAndValue","PAYMENT_PROVIDERS","toUpperCase","value","TAG_STYLE","initiated","cancelled","paid","failed","in_transit","confirmationPending","PAYMENT_PROVIDER","eupi","DEFAULT_SORT_PROPERTIES","sortBy","orderBy","renderIdentifier","identifier","receiptUrl","isTemporaryIdentifier","startsWith","_jsx","Tooltip","content","position","children","className","Typography","style","CopyButtonWrapper","Button","href","size","target","getTagStyle","status","DEFAULT_TAG_STYLE","preProcessStatus","record","isRefunded","snakeToCamelCase","renderStatus","curry","isNotPresent","processedStatus","Tag","humanize","renderPaymentProvider","paymentProvider","renderDate","date","isPresent","DateFormat","DateTime","renderPayoutTraceId","getDefaultColumns","dashboardKind","columns","title","dataIndex","width","isHidable","render","sorter","formatAmount","formatCurrency","concat","buildSearchProps","searchProps","searchTerm","mergeDeepWith","mergeLeft","trim","buildFilterColumns","payableEntityColumns","reject","isNil","prop","buildRowData","payments","pageProperties","element","index","id","isEmpty","pageSize","page","List","isFetching","setSortProperties","handleTablePagination","views","useTranslation","tab","getQueryParams","paymentsCount","useMemo","isMultipleProvidersExist","getUniquePaymentProviders","length","defaultColumns","allColumns","buildDefaultTableColumns","isAllTab","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","PAYMENTS_TABLE","handleTableChange","useCallback","_","__","column","camelToSnakeCase","processDataIndex","field","order","rowData","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","columnData","currentPageNumber","handlePageChange","loading","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","TopSection","filters","setFilters","filterableColumns","searchKeywordProps","setIsExportModalOpen","isFilterPaneOpen","setIsFilterPaneOpen","useState","history","useHistory","isPaymentCountVisible","isFilterButtonVisible","handleFiltersChange","startTransition","handleTabChange","queryParams","toCamelCase","newParams","DEFAULT_PAGE_INDEX","page_size","DEFAULT_PAGE_SIZE","push","buildUrl","window","location","pathname","_jsxs","_Fragment","Header","placeholder","shouldTabsVisible","Tab","Object","keys","item","Item","active","onClick","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","modify","fixedColumns","UN_HIDEABLE_COLUMNS","tableKey","downloadButtonProps","filterProps","isOpen","keyword","setIsOpen","FiltersBar","setIsPaneOpen","PaymentsDashboard","holdableIds","enforceFilterValues","sortProperties","setPageProperties","DEFAULT_PAGE_VALUES","isExportModalOpen","buildFiltersFromURL","apiFilters","mergeEnforcedFilters","data","isPending","isPaymentsLoaidng","enabled","useEffect","Spinner","ExportModal","DASHBOARD_KIND"],"mappings":"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"}
|
|
@@ -53,6 +53,20 @@ const RazorpayPaymentButton = ({
|
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
const checkout = new window.Razorpay(options);
|
|
56
|
+
|
|
57
|
+
// Listen for payment failure events to capture error details
|
|
58
|
+
checkout.on("payment.failed", response => {
|
|
59
|
+
const errorDescription = response?.error?.description;
|
|
60
|
+
const errorReason = response?.error?.reason;
|
|
61
|
+
logger.error("Razorpay payment failed:", {
|
|
62
|
+
description: errorDescription,
|
|
63
|
+
reason: errorReason
|
|
64
|
+
});
|
|
65
|
+
onFailedPayment({
|
|
66
|
+
errorDescription,
|
|
67
|
+
errorReason
|
|
68
|
+
});
|
|
69
|
+
});
|
|
56
70
|
checkout.open();
|
|
57
71
|
};
|
|
58
72
|
const handlePayment = response => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RazorpayPaymentButton.js","sources":["../../app/javascript/src/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { isNotPresent, noop, findBy } from \"neetocist\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateRazorpayPayment } from \"hooks/reactQuery/razorpay/usePaymentApi\";\nimport { Button } from \"neetoui\";\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 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}) => {\n const { t } = useTranslation();\n\n const openRazorpayCheckout = async options => {\n const script = await loadScript(\n \"https://checkout.razorpay.com/v1/checkout.js\"\n );\n\n if (!script) {\n logger.error(t(\"neetoPayments.razorpay.loadError\"));\n\n return;\n }\n const checkout = new window.Razorpay(options);\n checkout.open();\n };\n\n const handlePayment = response => {\n if (isNotPresent(response?.razorpay_signature)) {\n onFailedPayment();\n\n return;\n }\n\n onSuccessfulPayment();\n };\n\n const handleSuccess = ({ payment }) => {\n if (payment?.status === \"successful\") {\n return onSuccessfulPayment();\n }\n\n const 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 });\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 },\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","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","t","useTranslation","openRazorpayCheckout","options","logger","error","checkout","window","Razorpay","
|
|
1
|
+
{"version":3,"file":"RazorpayPaymentButton.js","sources":["../../app/javascript/src/components/RazorpayPaymentButton.jsx"],"sourcesContent":["import { isNotPresent, noop, findBy } from \"neetocist\";\nimport { mergeDeepLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateRazorpayPayment } from \"hooks/reactQuery/razorpay/usePaymentApi\";\nimport { Button } from \"neetoui\";\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 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}) => {\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 // Listen for payment failure events to capture error details\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 });\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 },\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","customAmount","isDisabled","isLoading","name","tip","theme","isPreserveDetailsChecked","numberOfInstallments","payableType","onBeforePayment","noop","onSuccessfulPayment","onFailedPayment","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-payments-frontend",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.17",
|
|
4
4
|
"description": "To manage payments across the neeto products.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"homepage": "https://github.com/bigbinary/neeto-payments-nano",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"@babel/preset-typescript": "7.26.0",
|
|
62
62
|
"@babel/runtime": "7.26.10",
|
|
63
63
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
64
|
-
"@bigbinary/eslint-plugin-neeto": "1.8.
|
|
64
|
+
"@bigbinary/eslint-plugin-neeto": "1.8.1",
|
|
65
65
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
66
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
66
|
+
"@bigbinary/neeto-editor": "1.47.87",
|
|
67
67
|
"@bigbinary/neeto-filters-frontend": "4.3.30",
|
|
68
68
|
"@bigbinary/neeto-icons": "1.20.80",
|
|
69
69
|
"@dnd-kit/core": "6.3.1",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"peerDependencies": {
|
|
176
176
|
"@babel/runtime": "7.26.10",
|
|
177
177
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
178
|
-
"@bigbinary/neeto-editor": "1.47.
|
|
178
|
+
"@bigbinary/neeto-editor": "1.47.87",
|
|
179
179
|
"@bigbinary/neeto-filters-frontend": "4.3.30",
|
|
180
180
|
"@bigbinary/neeto-icons": "1.20.80",
|
|
181
181
|
"@dnd-kit/core": "6.3.1",
|