@@ -9,6 +9,7 @@ let id = 0;
99const ESC = 27 ;
1010
1111export interface IModalProps extends IOverlayProps {
12+ blur ?: number ;
1213 dontLockFocus ?: boolean ;
1314 onEsc ?: ( event : KeyboardEvent ) => void ;
1415 onClose ?: ( ) => void ;
@@ -21,6 +22,10 @@ export interface IModalState {
2122}
2223
2324export class Modal extends Component < IModalProps , IModalState > {
25+ static defaultProps = {
26+ blur : 5
27+ } ;
28+
2429 id : number ;
2530 el : HTMLElement = null ;
2631 activeEl : Element ; // Previous active element;
@@ -67,8 +72,9 @@ export class Modal extends Component<IModalProps, IModalState> {
6772 const lock = sib . __libreact_lock ;
6873
6974 sib . inert = lock . inert ;
70- sibling . style . setProperty ( 'pointer-events' , lock . pointerEvents ) ,
71- sibling . style . setProperty ( 'user-select' , lock . userSelect ) ,
75+ sibling . style . setProperty ( 'pointer-events' , lock . pointerEvents ) ;
76+ sibling . style . setProperty ( 'user-select' , lock . userSelect ) ;
77+ sibling . style . setProperty ( 'filter' , lock . filter || 'none' ) ;
7278
7379 sibling . removeAttribute ( 'aria-hidden' ) ;
7480 delete sib . __libreact_lock ;
@@ -108,17 +114,25 @@ export class Modal extends Component<IModalProps, IModalState> {
108114 }
109115
110116 const sib = sibling as any ;
117+ let filter = sibling . style . getPropertyValue ( 'filter' ) ;
118+
119+ if ( filter === 'none' ) {
120+ filter = '' ;
121+ }
111122
112123 sib . __libreact_lock = {
113124 owner : this ,
114125 inert : sib . inert ,
115126 pointerEvents : sibling . style . getPropertyValue ( 'pointer-events' ) ,
116127 userSelect : sibling . style . getPropertyValue ( 'user-select' ) ,
128+ filter
117129 } ;
118130
119131 sib . inert = true ;
120132 sibling . style . setProperty ( 'pointer-events' , 'none' ) ;
121133 sibling . style . setProperty ( 'user-select' , 'none' ) ;
134+ console . log ( 'F' , 'filter' , ( filter ? filter + ',' : '' ) + `blur(${ this . props . blur } px)` ) ;
135+ sibling . style . setProperty ( 'filter' , ( filter ? filter + ',' : '' ) + `blur(${ this . props . blur } px)` ) ;
122136 sibling . setAttribute ( 'aria-hidden' , 'true' ) ;
123137 }
124138
0 commit comments