@@ -92,6 +92,13 @@ export default class ToastrBox extends React.Component {
9292 } , 50 ) ;
9393 }
9494
95+ get isToastrClickable ( ) {
96+ const { onToastrClick, closeOnToastrClick} = this . props . item . options ;
97+ const hasOnToastrClick = ! ! onToastrClick ;
98+
99+ return hasOnToastrClick || closeOnToastrClick ;
100+ }
101+
95102 handlePressEnterOrSpaceKeyToastr = ( e ) => {
96103 if ( e . key === ' ' || e . key === 'enter' ) {
97104 this . handleClickToastr ( e ) ;
@@ -196,17 +203,24 @@ export default class ToastrBox extends React.Component {
196203 }
197204
198205 renderCloseButton ( ) {
206+ let closeButtonAttributes = {
207+ tabIndex : 0 ,
208+ role : 'button' ,
209+ onKeyPress : this . handlePressEnterOrSpaceKeyCloseButton
210+ } ;
211+ if ( this . isToastrClickable ) {
212+ closeButtonAttributes = { } ;
213+ }
199214 return (
200- < button
201- tabIndex = "0"
202- type = "button"
215+ < div
203216 className = "close-toastr toastr-control"
204217 aria-label = "toast"
205218 onClick = { this . handleClickCloseButton }
206219 ref = { ref => this . closeButton = ref }
220+ { ...closeButtonAttributes }
207221 >
208- ✕
209- </ button >
222+ < span > ✕</ span >
223+ </ div >
210224 ) ;
211225 }
212226
@@ -352,12 +366,8 @@ export default class ToastrBox extends React.Component {
352366 type
353367 } = this . props . item ;
354368
355- const { onToastrClick, closeOnToastrClick} = options ;
356- const hasOnToastrClick = ! ! onToastrClick ;
357- const doesCloseOnToastrClick = closeOnToastrClick ;
358-
359369 let toastrClickAttributes = { } ;
360- if ( hasOnToastrClick || doesCloseOnToastrClick ) {
370+ if ( this . isToastrClickable ) {
361371 toastrClickAttributes . role = 'button' ;
362372 toastrClickAttributes . tabIndex = 0 ;
363373 toastrClickAttributes . onClick = this . handleClickToastr ;
0 commit comments