// @flow
import React from 'react';
import { Modal } from 'modal/modal';
import Button from 'component/button';
import Card from 'component/common/card';

type Props = {
  commentId: string, // sha256 digest identifying the comment
  deleterClaim: Claim,
  deleterIsModOrAdmin?: boolean,
  creatorClaim?: Claim,
  supportAmount?: any,
  setQuickReply: (any) => void,
  // --- redux ---
  doHideModal: () => void,
  doCommentAbandon: (string, Claim, ?boolean, ?Claim) => void,
};

function ModalRemoveComment(props: Props) {
  const {
    commentId,
    deleterClaim,
    deleterIsModOrAdmin,
    creatorClaim,
    supportAmount,
    setQuickReply,
    doHideModal,
    doCommentAbandon,
  } = props;

  return (
    <Modal isOpen contentLabel={__('Confirm Comment Deletion')} type="card" onAborted={doHideModal}>
      <Card
        title={__('Remove Comment')}
        body={
          <React.Fragment>
            <p>{__('Are you sure you want to remove this comment?')}</p>
            {Boolean(supportAmount) && (
              <p className="help error__text">
                {__('This comment has a tip associated with it which cannot be reverted.')}
              </p>
            )}
          </React.Fragment>
        }
        actions={
          <>
            <div className="section__actions">
              <Button
                button="primary"
                label={__('Remove')}
                onClick={() => {
                  doHideModal();
                  doCommentAbandon(commentId, deleterClaim, deleterIsModOrAdmin, creatorClaim);
                  if (setQuickReply) {
                    setQuickReply(undefined);
                  }
                }}
              />
              <Button button="link" label={__('Cancel')} onClick={doHideModal} />
            </div>
          </>
        }
      />
    </Modal>
  );
}

export default ModalRemoveComment;