@@ -6,7 +6,19 @@ import { formatClasses } from '../utils/attributes';
6
6
7
7
const ESCAPE_KEYCODE = 27 ;
8
8
9
- export function Modal ( { title, body, onClose, isOpen, footer, staticBackdrop, scrollable, centered, size, keyboard } ) {
9
+ export function Modal ( {
10
+ body,
11
+ centered,
12
+ footer,
13
+ isOpen,
14
+ keyboard,
15
+ onClose,
16
+ scrollable,
17
+ size,
18
+ staticBackdrop,
19
+ title,
20
+ useTimesClose,
21
+ } ) {
10
22
const modalRef = useRef ( null ) ;
11
23
const closeAndHide = useCallback ( ( ) => {
12
24
hideModal ( modalRef ) ;
@@ -65,9 +77,11 @@ export function Modal({ title, body, onClose, isOpen, footer, staticBackdrop, sc
65
77
< div className = "modal-content" >
66
78
< div className = "modal-header" >
67
79
< h5 className = "modal-title" > { title } </ h5 >
68
- < button type = "button" className = "close" onClick = { closeAndHide } aria-label = "Close" >
69
- < span aria-hidden = "true" > ×</ span >
70
- </ button >
80
+ { useTimesClose && (
81
+ < button type = "button" className = "close" onClick = { closeAndHide } aria-label = "Close" >
82
+ < span aria-hidden = "true" > ×</ span >
83
+ </ button >
84
+ ) }
71
85
</ div >
72
86
< div className = "modal-body" > { renderObjectOrFunction ( body , { close : closeAndHide } ) } </ div >
73
87
{ footer && < div className = "modal-footer" > { renderObjectOrFunction ( footer , { close : closeAndHide } ) } </ div > }
@@ -83,6 +97,7 @@ Modal.defaultProps = {
83
97
scrollable : false ,
84
98
size : '' ,
85
99
staticBackdrop : false ,
100
+ useTimesClose : true ,
86
101
} ;
87
102
88
103
Modal . propTypes = {
@@ -96,6 +111,7 @@ Modal.propTypes = {
96
111
size : PropTypes . oneOf ( [ 'sm' , 'lg' , 'xl' , '' ] ) ,
97
112
staticBackdrop : PropTypes . bool ,
98
113
title : PropTypes . node ,
114
+ useTimesClose : PropTypes . bool ,
99
115
} ;
100
116
101
117
function hideModal ( modalRef ) {
0 commit comments