All files / src/pages/AcquirerPortal/AcquirerSettings AcquirerCategoryCodes.tsx

0% Statements 0/9
100% Branches 0/0
0% Functions 0/3
0% Lines 0/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 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 83 84 85                                                                                                                                                                         
import { GiveWithMissingPermissionModule } from "@common/GiveWithMissingPermissionModule";
import AcquirerDetailsCategoryCodesNew from "@components/AcquirerSettings/BusinessDetails/Configuration/AcquirerDetailsCategoryCodesNew";
import FadeUpWrapper from "@components/animation/FadeUpWrapper";
import RESOURCE_BASE, { OPERATIONS } from "@constants/permissions";
import { SettingsFormWrapperV2 } from "@features/MerchantPortal/MerchantSettings/components/atomsV2";
import {
  useAccessControl,
  WithAccessControl,
} from "@features/Permissions/AccessControl";
import useUpdateEnterpriseFees from "@hooks/enterprise-api/settings/useUpdateEnterpriseFees";
import { Stack } from "@mui/material";
import { palette } from "@palette";
import { useAppSelector } from "@redux/hooks";
import GiveText from "@shared/Text/GiveText";
import { FormProvider } from "react-hook-form";
 
const ACTION_BAR_HEIGHT = "68px";
 
const AcquirerCategoryCodes = () => {
  const { handleSubmit, isLoading, isDisabled, methods } =
    useUpdateEnterpriseFees("acquirer");
 
  const isUpdateAllowed = useAccessControl({
    resource: RESOURCE_BASE.ACQUIRER,
    operation: OPERATIONS.UPDATE,
  });
 
  const { reset } = methods;
 
  const hasNotMerchantsPermission = useAppSelector(
    (state) => state.app.permissions?.["get-merchant-by-id"],
  );
 
  return (
    <GiveWithMissingPermissionModule
      sectionName="Configuration section"
      notAuthorized={hasNotMerchantsPermission}
    >
      <FormProvider {...methods}>
        <SettingsFormWrapperV2
          isDirty={methods.formState.isDirty}
          formProps={{
            onSubmit: methods.handleSubmit(handleSubmit),
          }}
          formActions={{
            formName: "acquirer-category-codes-form",
            primaryAction: {
              label: "Save",
              disabled: isDisabled,
            },
            secondaryAction: {
              label: "Discard changes",
              onClick: () => reset(),
              disabled: isDisabled,
            },
          }}
          sx={{
            paddingBottom: ACTION_BAR_HEIGHT,
          }}
        >
          <FadeUpWrapper delay={50}>
            <GiveText>Merchant Category Codes (MCC)</GiveText>
          </FadeUpWrapper>
          <Stack gap={2}>
            <FadeUpWrapper delay={150}>
              <WithAccessControl
                resource={RESOURCE_BASE.CATEGORY_CODE}
                operation={OPERATIONS.LIST}
                withPortal
              >
                <AcquirerDetailsCategoryCodesNew
                  isUpdateAllowed={isUpdateAllowed}
                  useScrollBox={false}
                />
              </WithAccessControl>
            </FadeUpWrapper>
          </Stack>
        </SettingsFormWrapperV2>
      </FormProvider>
    </GiveWithMissingPermissionModule>
  );
};
 
export default AcquirerCategoryCodes;