import { Component } from 'react'; import Group from './Group'; import { IButtonDirectiveProps, ButtonDirective } from './Directive'; import { IPopoverHoverTriggerContext, PopoverHoverTriggerContext, } from '../popover'; export interface IButtonProps extends Omit< IButtonDirectiveProps>, 'children' >, React.HTMLAttributes { className?: string; style?: React.CSSProperties; href?: string; target?: string; htmlType?: React.ButtonHTMLAttributes['type']; download?: string; } export class Button extends Component { static defaultProps = { type: 'default', size: 'medium', htmlType: 'button', bordered: true, }; static Group = Group; static Directive = ButtonDirective; static contextType = PopoverHoverTriggerContext; context!: IPopoverHoverTriggerContext; render() { const { href, target, htmlType, type, size, block, disabled, loading, outline, bordered, icon, children, download, ...props } = this.props; return ( {href || target ? ( {children} ) : ( )} ); } } export default Button;