All files / libs/payout-definition/plans/views/hub/rule-designer/src/lib/drawer/navigation-blocker PlanHubConfirmLeaving.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 } from 'react';
import { FormattedMessage } from 'react-intl';

import { Button, Modal } from '@allshares/studio-design-system';

interface PlanHubConfirmLeavingProps {
  readonly isOpen: boolean;
  readonly onClose: () => void;
  readonly onConfirm: () => void;
  readonly onReviewChanges: () => void;
  readonly dirtyTokensCount: number;
}

export const PlanHubConfirmLeaving = memo(function PlanHubConfirmLeaving({
  isOpen,
  onReviewChanges,
  onConfirm,
  onClose,
  dirtyTokensCount,
}: PlanHubConfirmLeavingProps) {
  return (
    <Modal
      isOpen={isOpen}
      variant="danger"
      onClose={onClose}
    >
      <Modal.Content>
        <Modal.Header>
          <Modal.Title>
            <FormattedMessage defaultMessage="Changes are not saved" />
          </Modal.Title>
        </Modal.Header>
        <Modal.Body>
          <FormattedMessage
            defaultMessage="You have unsaved changes in {count, plural, one {one editor} other {# editors}}."
            values={{ count: dirtyTokensCount }}
          />
        </Modal.Body>
      </Modal.Content>
      <Modal.Actions>
        <Modal.CancelAction onClick={onClose}>
          <FormattedMessage defaultMessage="Continue editing" />
        </Modal.CancelAction>
        <Button
          variant="light"
          onClick={onReviewChanges}
        >
          <FormattedMessage defaultMessage="Review unsaved changes" />
        </Button>
        <Modal.MainAction onClick={onConfirm}>
          <FormattedMessage defaultMessage="Leave without saving" />
        </Modal.MainAction>
      </Modal.Actions>
    </Modal>
  );
});