/* eslint-disable react/jsx-no-useless-fragment */ import CloseOutlined from '@ant-design/icons/CloseOutlined'; import classNames from 'classnames'; import { Panel } from 'rc-dialog'; import type { PanelProps } from 'rc-dialog/lib/Dialog/Content/Panel'; import * as React from 'react'; import Button from '../button'; import { convertLegacyProps } from '../button/button'; import { ConfigContext } from '../config-provider'; import useLocale from '../locale/useLocale'; import { ConfirmContent } from './ConfirmDialog'; import { getConfirmLocale } from './locale'; import type { ModalFuncProps, ModalProps } from './Modal'; import useStyle from './style'; export interface PurePanelProps extends Omit, Pick { prefixCls?: string; style?: React.CSSProperties; } export function renderCloseIcon(prefixCls: string, closeIcon?: React.ReactNode) { return ( {closeIcon || } ); } interface FooterProps { onOk?: React.MouseEventHandler; onCancel?: React.MouseEventHandler; } export const Footer: React.FC< FooterProps & Pick< ModalProps, | 'footer' | 'okText' | 'okType' | 'cancelText' | 'confirmLoading' | 'okButtonProps' | 'cancelButtonProps' > > = (props) => { const { okText, okType = 'primary', cancelText, confirmLoading, onOk, onCancel, okButtonProps, cancelButtonProps, footer, } = props; const locale = useLocale('Modal', getConfirmLocale()); return footer === undefined ? ( <> ) : ( (footer as React.ReactElement) ); }; const PurePanel: React.FC = (props) => { const { prefixCls: customizePrefixCls, className, closeIcon, closable, type, title, children, ...restProps } = props; const { getPrefixCls } = React.useContext(ConfigContext); const rootPrefixCls = getPrefixCls(); const prefixCls = customizePrefixCls || getPrefixCls('modal'); const [, hashId] = useStyle(prefixCls); const confirmPrefixCls = `${prefixCls}-confirm`; // Choose target props by confirm mark let additionalProps: Partial = {}; if (type) { additionalProps = { closable: closable ?? false, title: '', footer: '', children: ( ), }; } else { additionalProps = { closable: closable ?? true, title, footer: props.footer === null ? props.footer :