All files / libs/payout-definition/plans/components/src/lib/plan-visibility/modals PlanVisibilityHideModal.tsx

0% Statements 0/56
0% Branches 0/1
0% Functions 0/1
0% Lines 0/56

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                                                                                                                 
import { memo, useCallback } from 'react';
import { FormattedMessage } from 'react-intl';

import { Modal } from '@allshares/studio-design-system';
import { PlanVisibility } from '@amalia/payout-definition/plans/types';
import { usePatchPlanVisibility } from '@amalia/payout-definition/state';

import { type PlanVisibilityModalCommonProps } from './types';

export type PlanVisibilityHideModalProps = PlanVisibilityModalCommonProps;

export const PlanVisibilityHideModal = memo(function PlanVisibilityHideModal({
  closeModal,
  isOpen,
  planId,
  planName,
}: PlanVisibilityHideModalProps) {
  const { mutate: patchPlanVisibility } = usePatchPlanVisibility(planId);

  const handleClickHidePlan = useCallback(() => {
    patchPlanVisibility({
      visibility: PlanVisibility.HIDDEN,
    });

    closeModal();
  }, [closeModal, patchPlanVisibility]);

  return (
    <Modal
      isOpen={isOpen}
      onClose={closeModal}
    >
      <Modal.Content>
        <Modal.Header>
          <Modal.Title>
            <FormattedMessage defaultMessage="Unpublish plan" />
          </Modal.Title>
        </Modal.Header>

        <Modal.Body>
          <FormattedMessage
            defaultMessage="Are you sure you want to unpublish the plan “<b>{planName}</b>”?{br}The statements for this plan will now be accessible exclusively to admins and hidden from assigned users."
            values={{ planName, b: (chunks) => <b>{chunks}</b> }}
          />
        </Modal.Body>
      </Modal.Content>

      <Modal.Actions>
        <Modal.CancelAction />
        <Modal.MainAction onClick={handleClickHidePlan}>
          <FormattedMessage defaultMessage="Confirm" />
        </Modal.MainAction>
      </Modal.Actions>
    </Modal>
  );
});