modal 弹窗 
本弹窗是作为其他弹层类组件的基础封装,支持很多特性
Props参数 
| 名称 | 类型 | 是否必传 | 默认值 | 描述 | 
|---|---|---|---|---|
| visible | boolean | ✅ | - | 是否显示 | 
| mask | boolean | 否 | - | 是否开启蒙层 | 
| animationType | MMModalAnimationType | 否 | - | 动画类型 | 
| maskClosable | boolean | 否 | - | 点击蒙层是否关闭 | 
| justifyContent | MMModalJustifyContent | 否 | - | 内容排列方式 | 
| className | string | 否 | - | 样式表 | 
| onClose | () => void | 否 | - | 关闭回调 | 
示例 
tsx
import { useState } from 'react'
import MMButton from '~/components/button'
import { MMModalAnimationType, MMModalJustifyContent } from '~/components/modal/const'
import MMModal, { IMMModalProps } from '~/components/modal/index'
import MMPageContainer from '../_components/page-container'
import MMCard from '~/components/card'
import PageDemoBlock from '../_components/page-demo-block'
export default () => {
  const [visible, setVisible] = useState(false)
  const [props1, setProps1] = useState<Partial<IMMModalProps>>({
    maskClosable: true
  })
  const [visibleTransparent, setVisibleTransparent] = useState(false)
  const [visibleProps, setVisibleProps] = useState(false)
  return (
    <MMPageContainer title="弹窗">
      <PageDemoBlock title="使用">
        <MMButton onClick={() => setVisible(true)} text="基础弹窗" />
        <MMButton
          onClick={() => setProps1((pre) => ({ ...pre, maskClosable: !pre.maskClosable }))}
          text={props1.maskClosable ? '允许遮罩关闭' : '不允许遮罩关闭'}
        />
        <MMModal {...props1} visible={visible} onClose={() => setVisible(false)}>
          <MMCard onClick={() => setVisible(false)}>点我关闭</MMCard>
        </MMModal>
      </PageDemoBlock>
      <PageDemoBlock title="透明弹窗">
        <MMButton onClick={() => setVisibleTransparent(true)} text="透明弹窗" />
        <MMModal visible={visibleTransparent} mask={false}>
          <MMButton onClick={() => setVisibleTransparent(false)} text="关闭弹窗" />
        </MMModal>
      </PageDemoBlock>
      <PageDemoBlock title="透明弹窗">
        <MMButton onClick={() => setVisibleProps(true)} text="弹窗属性" />
        <MMModal visible={visibleProps} maskClosable animationType={MMModalAnimationType.down} justifyContent={MMModalJustifyContent.flexEnd}>
          <MMButton onClick={() => setVisibleProps(false)} text="关闭弹窗" />
        </MMModal>
      </PageDemoBlock>
    </MMPageContainer>
  )
}