@@ -13,11 +13,16 @@ export default function Ripple(
13
13
unbounded = false ,
14
14
disabled = false ,
15
15
color = null ,
16
+ active = null ,
16
17
addClass = ( className ) => node . classList . add ( className ) ,
17
18
removeClass = ( className ) => node . classList . remove ( className ) ,
18
19
addStyle = ( name , value ) =>
19
20
( sentinel || node ) . style . setProperty ( name , value ) ,
20
- active = null ,
21
+ registerInteractionHandler = ( evtType , handler ) =>
22
+ node . addEventListener ( evtType , handler , applyPassive ( ) ) ,
23
+ deregisterInteractionHandler = ( evtType , handler ) =>
24
+ node . removeEventListener ( evtType , handler , applyPassive ( ) ) ,
25
+ initPromise = Promise . resolve ( ) ,
21
26
} = { }
22
27
) {
23
28
let instance ;
@@ -61,8 +66,7 @@ export default function Ripple(
61
66
handler ,
62
67
applyPassive ( )
63
68
) ,
64
- deregisterInteractionHandler : ( evtType , handler ) =>
65
- node . removeEventListener ( evtType , handler , applyPassive ( ) ) ,
69
+ deregisterInteractionHandler,
66
70
deregisterResizeHandler : ( handler ) =>
67
71
window . removeEventListener ( 'resize' , handler ) ,
68
72
getWindowPageOffset : ( ) => ( {
@@ -79,18 +83,22 @@ export default function Ripple(
79
83
handler ,
80
84
applyPassive ( )
81
85
) ,
82
- registerInteractionHandler : ( evtType , handler ) =>
83
- node . addEventListener ( evtType , handler , applyPassive ( ) ) ,
86
+ registerInteractionHandler,
84
87
registerResizeHandler : ( handler ) =>
85
88
window . addEventListener ( 'resize' , handler ) ,
86
89
removeClass,
87
90
updateCssVariable : addStyle ,
88
91
} ) ;
89
- instance . init ( ) ;
90
- instance . setUnbounded ( unbounded ) ;
92
+
93
+ initPromise . then ( ( ) => {
94
+ instance . init ( ) ;
95
+ instance . setUnbounded ( unbounded ) ;
96
+ } ) ;
91
97
} else if ( instance && ! ripple ) {
92
- instance . destroy ( ) ;
93
- instance = null ;
98
+ initPromise . then ( ( ) => {
99
+ instance . destroy ( ) ;
100
+ instance = null ;
101
+ } ) ;
94
102
}
95
103
96
104
if ( ! ripple && unbounded ) {
@@ -137,6 +145,10 @@ export default function Ripple(
137
145
active : null ,
138
146
...props ,
139
147
} ) ;
148
+ // Note that you can't change
149
+ // registerInteractionHandler,
150
+ // deregisterInteractionHandler,
151
+ // and initPromise
140
152
handleProps ( ) ;
141
153
} ,
142
154
0 commit comments