/**
 * @description 按钮组件
 * @author 阿怪
 * @date 2021/8/10 4:59 下午
 * @version v3.0.0
 *
 * 公司的业务千篇一律，复杂的代码好几百行。
 * v1.0.1 新增slot文本形式
 * v1.0.2 优化结构
 * v1.0.3 添加link属性
 * v2.0.0 升级交互
 * v2.1.0 使用border方式实现边框模块
 * v3.0.0 props从core导出
 */
import { defineComponent, h } from 'vue';
import { props } from './api.ts';
import { ButtonProps } from './index';
import './button.css';

export default defineComponent((props: ButtonProps, { slots }) => {
  return () => {
    const domType = props.link ? 'a' : 'button';
    const slot = slots.default?.() ?? props.text;
    return h(domType, {
      class: ['m-button', { 'm-button-disabled': props.disabled }, `m-button-${props.type}`],
      disabled: props.disabled,
    }, slot);
  };
}, {
  name: 'MButton',
  props,
});
