// Copyright 2021 99cloud // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import React from 'react'; import { Modal } from 'antd'; import { CheckCircleOutlined, CloseCircleOutlined, QuestionCircleFilled, } from '@ant-design/icons'; import classnames from 'classnames'; import PropTypes from 'prop-types'; import { unescapeHtml } from 'utils/index'; import styles from './index.less'; const normalProps = { title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, onOk: PropTypes.func, onCancel: PropTypes.func, icon: PropTypes.node, isSubmitting: PropTypes.bool, cancelText: PropTypes.string, okText: PropTypes.string, className: PropTypes.string, }; const confirm = (props) => { const { title = t('Confirm'), content, onOk, onCancel, icon, okText = t('Confirm'), cancelText = t('Cancel'), className, } = props; Modal.confirm({ title, icon: icon || , className: classnames(styles['confirm-modal'], className), content: unescapeHtml(content), okText, cancelText, onOk() { return onOk && onOk(); }, onCancel() { onCancel && onCancel(); }, }); }; confirm.propTypes = normalProps; confirm.defaultProps = { title: t('Confirm'), icon: , isSubmitting: false, okText: t('Confirm'), cancelText: t('Cancel'), }; const error = (props) => { const newProps = { title: t('Error'), ...props, icon: , }; confirm(newProps); }; const warn = (props) => { const newProps = { title: t('Warn'), ...props, icon: , }; confirm(newProps); }; const success = (props) => { const newProps = { title: t('Success'), ...props, icon: , }; confirm(newProps); }; export default { confirm, error, warn, success, };