import type { ButtonProps, TooltipProps } from 'antd' import { Button, Tooltip } from 'antd' import { CSSProperties, FC, memo } from 'react' import { ConfigProvider } from '@/components/config-provider' import { useStyles } from './style' /** * @title 动作图标属性 * @description 继承自 `Button` 组件所有属性,除了 `title`, `type` 和 `size` */ export interface ActionIconProps extends Omit { /** * @title 鼠标类型 */ cursor?: CSSProperties['cursor']; /** * @title 动作提示 */ title?: TooltipProps['title']; /** * @title 提示位置 */ placement?: TooltipProps['placement']; /** * @title 图标 */ icon: ButtonProps['icon']; /** * @title 点击回调 */ onClick?: ButtonProps['onClick']; /** * @title 图标尺寸 */ size?: 'default' | 'large' | number; /** * @description 鼠标移入时候的延迟tooltip时间,默认 0.5 * @default 0.5 */ tooltipDelay?: number; /** * @description 是否展示小箭头,默认不展示 * @default false */ arrow?: boolean; bordered?: boolean; } const BaseActionIcon: FC = memo(({ placement, title, icon, cursor, onClick, className, bordered = false, arrow = false, size = 'default', tooltipDelay = 0.5, ...restProps }) => { const { styles, cx } = useStyles({ size, bordered, className }) const Icon = (