// @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
  commentIsMine: boolean, // if this comment was signed by an owned channel
  contentChannelPermanentUrl: any,
  closeModal: () => void,
  deleteComment: (string, ?string) => void,
  supportAmount?: any,
  setQuickReply: (any) => void,
};

function ModalRemoveComment(props: Props) {
  const {
    commentId,
    commentIsMine,
    contentChannelPermanentUrl,
    closeModal,
    deleteComment,
    supportAmount,
    setQuickReply,
  } = props;

  return (
    <Modal isOpen contentLabel={__('Confirm Comment Deletion')} type="card" onAborted={closeModal}>
      <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={() => {
                  closeModal();
                  deleteComment(commentId, commentIsMine ? undefined : contentChannelPermanentUrl);
                  if (setQuickReply) setQuickReply(undefined);
                }}
              />
              <Button button="link" label={__('Cancel')} onClick={closeModal} />
            </div>
          </>
        }
      />
    </Modal>
  );
}

export default ModalRemoveComment;