0.1.1 • Published 3 years ago

react-better-modal v0.1.1

Weekly downloads
12
License
MIT
Repository
github
Last release
3 years ago

react-better-modal

🎉 A powerful modal dialog component for React.

🔥 一个功能强大的 React 弹窗组件。支持缩放、拖拽、最大化最小化、键盘事件移动弹窗位置(↑→↓←)、键盘事件缩放(CTRL + ↑→↓←)、键盘事件最大化最小化(ALT + ↑↓)。

Table of Contents

Installation

> npm i react-better-modal

# or

> yarn add react-better-modal

Usage

import React from 'react';
import Modal from 'react-better-modal';
import 'react-better-modal/dist/index.css';
function onHandleMove(e) {
	console.log(e, '--->>> onHandleMove');
}
function onHandleResize(e) {
	console.log(e, '--->>> onHandleResize');
}

function onHandleOk() {
	console.log('onOk callback');
}

function onHandleCancel() {
	console.log('onCancel callback');
}

<Modal
	visible
	keyboard
	draggable
	resizable
	title="Hello Modal"
	cancelText={'自定义取消文字'}
	okText={'自定义确定文字'}
	onMove={onHandleMove}
	onResize={onHandleResize}
	onCancel={onHandleCancel}
	onOk={onHandleOk}
	onStageChange={console.log}
>
	Hello Modal!
</Modal>;

API documentation

属性说明类型默认值
appendContainer设置 Modal 的 z-indexnumber-
visible对话框是否可见booleanfalse
theme皮肤(内置 dark 可选)string-
keyboard是否支持键盘事件(关闭(ESC)、移动(↑→↓←)、缩放(CTRL + ↑→↓←)、最大最小化(ALT + ↑↓))booleantrue
useEsc是否支持键盘 esc 关闭,优先级低于 keyboard 参数booleantrue
mask是否展示遮罩booleantrue
maskStyle遮罩样式CSSProperties-
maskClassName遮罩 classstring-
maskClosable点击蒙层是否允许关闭booleanfalse
shouldUpdateOnDrag拖拽过程是否允许视图元素更新booleanfalse
stage对话框展示状态,默认(DEFAULT)、最大化(FULLSCREEN)、最小化(MINIMIZED)。受控属性,自动切换将无效,自行根据 onStageChange 回调控制stringDEFAULT
initialStage对话框初始展示状态。值同 stage 但优先级低于 stagestringDEFAULT
onCancel点击遮罩层或右上角叉或取消按钮的回调function(e)-
onOk点击确定回调function(e)-
draggable对话框是否可拖拽(只支持标题部分拖拽)booleantrue
resizable对话框是否可缩放booleantrue
stageChangeByDoubleClick对话框是否可通过双击改变状态booleantrue
onMove拖动对话框的回调function(e)-
onResize缩放对话框的回调function(e)-
onStageChange对话框状态改变的回调function(e)-
style可用于设置对话框样式,调位置等CSSProperties-
className对话框容器的类名string-
width对话框宽度(受控属性,自动缩放宽度将无效,自行根据 onResize 回调控制)number-
height对话框高度(受控属性,自动缩放高度将无效,自行根据 onResize 回调控制)number-
top对话框距离顶部位置(受控属性,垂直拖动将无效,自行根据 onMove 回调控制)number-
left对话框距离左侧位置(受控属性,水平拖动将无效,自行根据 onMove 回调控制)number-
initialWidth对话框初始宽度number520
initialHeight对话框初始高度number400
initialTop对话框初始距离顶部位置number-
initialLeft对话框初始距离左侧位置number-
minWidth对话框最小宽度number256
minHeight对话框最小高度number256
zIndex设置 Modal 的 z-indexnumber1000
title标题ReactNode-
titleBarClassName对话框标题容器的类名string-
minimizeButton自定义最小化图标ReactNode-
maximizeButton自定义最大化图标ReactNode-
restoreButton自定义复原图标ReactNode-
closeButton自定义关闭图标ReactNode-
contentClassName对话框内容容器类名string-
footerClassName对话框底部容器类名string-
showCancel取消按钮是否可见booleantrue
showOk确定按钮是否可见booleantrue
cancelText取消按钮文字ReactNode取消
okText确认按钮文字ReactNode确定
footer底部内容,当不需要默认底部按钮时,可以设为 footer={null}ReactNode-

Demos

There are several demos hosted on CodeSandbox which demonstrate various features of react-better-modal.

  1. 基础用法
  2. 非受控初始宽高
  3. 受控宽高
  4. 非受控初始位置
  5. 受控位置
  6. 非受控弹窗状态
  7. 受控弹窗状态
  8. 键盘事件
  9. 内置主题
  10. 未覆盖部分请参考 API Documentation

TODOS

  • animation
  • Testing
  • more themes
0.1.1

3 years ago

0.1.0

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago