1
1
import * as React from 'react' ;
2
- import { classNames , prefixClaName } from 'mo/common/className' ;
2
+ import { classNames , getBEMElement , getBEMModifier , prefixClaName } from 'mo/common/className' ;
3
3
import Dialog , { IModalFuncProps } from './modal' ;
4
4
import ActionButton from './actionButton' ;
5
5
6
6
interface ConfirmDialogProps extends IModalFuncProps {
7
7
afterClose ?: ( ) => void ;
8
8
close : ( ...args : any [ ] ) => void ;
9
- actions ?: any ;
9
+ actions ?: React . ReactNode ;
10
10
}
11
11
12
+ export const confirmClassName = prefixClaName ( 'confirm' ) ;
13
+
12
14
const ConfirmDialog = ( props : ConfirmDialogProps ) => {
13
15
const {
14
16
actions,
@@ -23,30 +25,34 @@ const ConfirmDialog = (props: ConfirmDialogProps) => {
23
25
centered,
24
26
getContainer,
25
27
maskStyle,
26
- okText = 'Save ' ,
28
+ okText = 'Ok ' ,
27
29
okButtonProps,
28
30
cancelText = 'Cancel' ,
29
31
cancelButtonProps,
30
- prefixCls,
31
32
bodyStyle,
32
- closable = false ,
33
+ closable = true ,
33
34
closeIcon,
35
+ className,
34
36
okCancel,
37
+ width = 520 ,
38
+ style = { } ,
39
+ mask = true ,
40
+ maskClosable = false ,
41
+ transitionName = 'zoom' ,
42
+ maskTransitionName = 'fade' ,
35
43
} = props ;
36
- const contentPrefixCls = `${ prefixCls } -confirm` ;
37
- const width = props . width || 416 ;
38
- const style = props . style || { } ;
39
- const mask = props . mask === undefined ? true : props . mask ;
40
- // 默认为 false,保持旧版默认行为
41
- const maskClosable =
42
- props . maskClosable === undefined ? false : props . maskClosable ;
43
- const transitionName = props . transitionName || 'zoom' ;
44
- const maskTransitionName = props . maskTransitionName || 'fade' ;
44
+
45
+ const confirmDescriperClassName = getBEMElement ( confirmClassName , `${ props . type } ` )
46
+ const containerClassName = getBEMElement ( confirmClassName , 'container' ) ;
47
+ const indicatorClassName = getBEMElement ( confirmClassName , 'indicator' ) ;
48
+ const contentClassName = getBEMElement ( confirmClassName , 'content' ) ;
49
+ const messageClassName = getBEMElement ( confirmClassName , 'message' ) ;
50
+ const btnsClassName = getBEMElement ( confirmClassName , 'btns' ) ;
45
51
46
52
const classString = classNames (
47
- contentPrefixCls ,
48
- ` ${ contentPrefixCls } - ${ props . type } ` ,
49
- props . className ,
53
+ confirmClassName ,
54
+ confirmDescriperClassName ,
55
+ className ,
50
56
) ;
51
57
52
58
const cancelButton = okCancel && (
@@ -58,12 +64,13 @@ const ConfirmDialog = (props: ConfirmDialogProps) => {
58
64
{ cancelText }
59
65
</ ActionButton >
60
66
) ;
67
+
61
68
return (
62
69
< Dialog
63
- prefixCls = { prefixCls }
70
+ prefixCls = { confirmClassName }
64
71
className = { classString }
65
72
wrapClassName = { classNames ( {
66
- [ ` ${ contentPrefixCls } - centered` ] : ! ! props . centered ,
73
+ [ getBEMElement ( confirmClassName , ' centered' ) ] : ! ! props . centered ,
67
74
} ) }
68
75
onCancel = { ( ) => close ( { triggerCancel : true } ) }
69
76
visible = { visible }
@@ -84,19 +91,21 @@ const ConfirmDialog = (props: ConfirmDialogProps) => {
84
91
closable = { closable }
85
92
closeIcon = { closeIcon }
86
93
>
87
- < div className = { `${ contentPrefixCls } -body` } style = { bodyStyle } >
88
- < div className = { `${ contentPrefixCls } __icon` } > { icon } </ div >
89
- < div className = { `${ contentPrefixCls } __message` } >
90
- { props . title !== undefined && (
91
- < span className = { `${ contentPrefixCls } __message--text` } >
92
- { props . title }
93
- </ span >
94
- ) }
95
- < div className = { `${ contentPrefixCls } __message--detail` } >
96
- { props . content }
94
+ < div className = { containerClassName } style = { bodyStyle } >
95
+ < div className = { contentClassName } >
96
+ < div className = { indicatorClassName } > { icon } </ div >
97
+ < div className = { messageClassName } >
98
+ { props . title !== undefined && (
99
+ < span className = { getBEMModifier ( messageClassName , 'text' ) } >
100
+ { props . title }
101
+ </ span >
102
+ ) }
103
+ < div className = { `${ getBEMModifier ( messageClassName , 'detail' ) } ` } >
104
+ { props . content }
105
+ </ div >
97
106
</ div >
98
107
</ div >
99
- < div className = { ` ${ contentPrefixCls } __btns` } >
108
+ < div className = { btnsClassName } >
100
109
{
101
110
actions === undefined ? (
102
111
< >
0 commit comments