All files / src/features/Processing ProcessingV2.tsx

100% Statements 8/8
100% Branches 4/4
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82                                      2x     154x       154x                               154x             154x   154x 154x         154x                                                
import { PortalRootContainerV2 } from "@components/Layout/LayoutV2";
import { useListManageMoneyTransactionsV2 } from "@features/MerchantPortal/ManageMoney/hooks/useListManageMoneyTransactionsV2";
import TransactionsTable from "./ProcessingTable";
import {
  QKEY_PROCESSING_LIST,
  QKEY_PROVIDER_PROCESSING,
} from "@constants/queryKeys";
import { useFormattedFilters } from "@shared/GiveFilter/hooks/useFormattedFilters";
import { PaginationMethodType } from "@components/VirtualList/api";
import { selectProcessingTab } from "@redux/slices/transactions";
import { useAppSelector } from "@redux/hooks";
import { tabNames } from "./hooks/useProcessingFilters";
import { TRANSACTIONS_TABLE_TYPES } from "@constants/constants";
import { MaintenanceBanner } from "@components/common/MaintenanceBanner";
 
type Props = {
  isEntreprise?: boolean;
};
 
const PAGINATION_METHOD: PaginationMethodType = "cursor";
 
function ProcessingV2({ isEntreprise }: Props) {
  const queryKey = isEntreprise
    ? QKEY_PROVIDER_PROCESSING
    : QKEY_PROCESSING_LIST;
 
  const { formattedFilterString } = useFormattedFilters({
    queryKey,
  });
 
  const {
    hasFilters,
    handleResetFilters,
    isLoading,
    allRows,
    page,
    setPage,
    setPageDispatcher,
    isFetching,
    totalRows,
    nextCursor,
    isFetchingNextPage,
  } = useListManageMoneyTransactionsV2({
    queryKey,
    paginationMethod: PAGINATION_METHOD,
    customFilterString: formattedFilterString,
    sortReduxKey: queryKey,
  });
 
  const tab = useAppSelector(selectProcessingTab);
 
  const getType = () => {
    return tab === tabNames.transfers
      ? TRANSACTIONS_TABLE_TYPES.TRANSFERS
      : "transactions";
  };
 
  return (
    <PortalRootContainerV2 data-testid="processing-page">
      <TransactionsTable
        type={getType()}
        allRows={allRows}
        isLoading={isLoading}
        isFetching={isFetching}
        isFetchingNextPage={isFetchingNextPage}
        totalRows={totalRows}
        hasFilters={hasFilters}
        handleResetFilters={handleResetFilters}
        page={page}
        setPageDispatcher={setPageDispatcher}
        setPage={setPage}
        queryKey={queryKey}
        enabledInfiniteScroll
        paginationMethod={PAGINATION_METHOD}
        nextCursor={nextCursor}
      />
    </PortalRootContainerV2>
  );
}
 
export default ProcessingV2;