All files / src/features/Settlements/components ProcessorDropdownFilter.tsx

100% Statements 11/11
100% Branches 2/2
100% Functions 3/3
100% Lines 9/9

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              1x             13x 13x   13x 8x 8x       4x     13x                                     1x            
import DropdownFilter from "@features/Merchants/MerchantsTable/components/DropdownFilter";
import { DropdownFilterProps } from "@features/Merchants/MerchantsTable/types";
import { useGetProcessors } from "@hooks/acquirer-api/merchants/useGetProcessors";
import { useGetCurrentMerchantId } from "@hooks/common";
import { useMemo } from "react";
import { processorMap } from "@features/Merchants/MerchantSidePanel/constants";
 
const ProcessorDropdownFilter = ({
  disabled,
  buttonProps,
}: {
  disabled?: boolean;
  buttonProps?: DropdownFilterProps["buttonProps"];
}) => {
  const { merchantId } = useGetCurrentMerchantId();
  const { data, isLoading } = useGetProcessors(merchantId);
 
  const options = useMemo(() => {
    if (!data) return defaultOptions;
    const processorOptions = data?.map((processor) => ({
      value: processor.name,
      label: processorMap[processor.name],
    }));
    return [...defaultOptions, ...processorOptions];
  }, [data]);
 
  return (
    <DropdownFilter
      options={options}
      queryKey="processorName"
      menuWidth={278}
      isLoading={isLoading}
      disabled={disabled}
      buttonProps={{
        variant: "filled",
        color: "light",
        sx: { minWidth: "fit-content", height: "40px" },
        ...buttonProps,
      }}
    />
  );
};
 
export default ProcessorDropdownFilter;
 
const defaultOptions = [
  {
    value: "all",
    label: "All Processors",
  },
];