/**
 *  Copyright (c) 2024 Huawei Technologies Co., Ltd.
 *  openFuyao is licensed under Mulan PSL v2.
 *  You can use this software according to the terms and conditions of the Mulan PSL v2.
 *  You may obtain a copy of Mulan PSL v2 at:

 *       http://license.coscl.org.cn/MulanPSL2

 *   THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 *   EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 *   MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 *   See the Mulan PSL v2 for more details.
 */

import { Modal, Button, Checkbox } from 'antd';
import { ExclamationCircleFilled } from '@ant-design/icons';
import { Fragment } from 'openinula';
import { useIntl } from 'inula-intl';

/**
 *
 * @param title 对话框标题
 * @param open 控制对话框打开
 * @param cancelFn 取消函数回调
 * @param content 对话框内容 数组!
 * @param confirmFn 确认回调
 * @returns
 */
export default function ColocationDeleteModal({
  title,
  open,
  cancelFn,
  content,
  confirmFn,
  leftText,
  showCheck = false,
  isCheck = false,
  checkFn = () => {},
  checkboxText,
}) {
  const intl = useIntl();
  const defaultLeftText = leftText || intl.formatMessage({ id: 'common.confirm' });
  const defaultCheckboxText = checkboxText || intl.formatMessage({ id: 'message.understandRisk' });
  return (
    <Modal
      className="modal_flex_delete"
      open={open}
      title={title}
      onCancel={cancelFn}
      getContainer={false}
      destroyOnClose
      style={{
        top: '220px',
      }}
      footer={[
        <Fragment>
          <Button
            className={`${!isCheck && showCheck ? 'disabled_btn' : 'delete_btn'}`}
            onClick={confirmFn}
            disabled={!isCheck && showCheck}
          >
            {defaultLeftText}
          </Button>
          <Button className="cancel_btn" onClick={cancelFn}>
            {intl.formatMessage({ id: 'common.cancel' })}
          </Button>
        </Fragment>,
      ]}
    >
      <div className="modal_delete_content">
        <ExclamationCircleFilled className="warn_icon" />
        <div className="word_format">
          <div className="word_format_alarm">
            {content.map((item) => (
              <p className="format_text">{item}</p>
            ))}
            {!!showCheck && (
              <>
                <Checkbox
                  className="multi_checkbox"
                  checked={isCheck}
                  onChange={(e) => {
                    checkFn(e);
                  }}
                >
                  {defaultCheckboxText}
                </Checkbox>
                <div className="multi_checkbox" style={{ marginLeft: '24px' }}>
                  {intl.formatMessage({ id: 'message.caution' })}
                </div>
              </>
            )}
          </div>
        </div>
      </div>
    </Modal>
  );
}