@@ -9,6 +9,7 @@ let id = 0;
9
9
const ESC = 27 ;
10
10
11
11
export interface IModalProps extends IOverlayProps {
12
+ blur ?: number ;
12
13
dontLockFocus ?: boolean ;
13
14
onEsc ?: ( event : KeyboardEvent ) => void ;
14
15
onClose ?: ( ) => void ;
@@ -21,6 +22,10 @@ export interface IModalState {
21
22
}
22
23
23
24
export class Modal extends Component < IModalProps , IModalState > {
25
+ static defaultProps = {
26
+ blur : 5
27
+ } ;
28
+
24
29
id : number ;
25
30
el : HTMLElement = null ;
26
31
activeEl : Element ; // Previous active element;
@@ -67,8 +72,9 @@ export class Modal extends Component<IModalProps, IModalState> {
67
72
const lock = sib . __libreact_lock ;
68
73
69
74
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' ) ;
72
78
73
79
sibling . removeAttribute ( 'aria-hidden' ) ;
74
80
delete sib . __libreact_lock ;
@@ -108,17 +114,25 @@ export class Modal extends Component<IModalProps, IModalState> {
108
114
}
109
115
110
116
const sib = sibling as any ;
117
+ let filter = sibling . style . getPropertyValue ( 'filter' ) ;
118
+
119
+ if ( filter === 'none' ) {
120
+ filter = '' ;
121
+ }
111
122
112
123
sib . __libreact_lock = {
113
124
owner : this ,
114
125
inert : sib . inert ,
115
126
pointerEvents : sibling . style . getPropertyValue ( 'pointer-events' ) ,
116
127
userSelect : sibling . style . getPropertyValue ( 'user-select' ) ,
128
+ filter
117
129
} ;
118
130
119
131
sib . inert = true ;
120
132
sibling . style . setProperty ( 'pointer-events' , 'none' ) ;
121
133
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)` ) ;
122
136
sibling . setAttribute ( 'aria-hidden' , 'true' ) ;
123
137
}
124
138
0 commit comments