File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
packages/components/src/utils Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -10,22 +10,25 @@ const MAX_TIMEOUT_DURATION = 5000;
1010 * @see MAX_TIMEOUT_DURATION
1111 */
1212function waitForThemed ( host : HTMLElement ) : Promise < void > {
13- const observed = new Promise < void > ( ( resolve ) => {
13+ return new Promise < void > ( ( resolve , reject ) => {
1414 const observer = new MutationObserver ( ( ) => {
15- observer . disconnect ( ) ;
16- resolve ( ) ;
15+ if ( host . hasAttribute ( 'data-themed' ) ) {
16+ clearTimeout ( timeoutId ) ;
17+ observer . disconnect ( ) ;
18+ resolve ( ) ;
19+ }
1720 } ) ;
21+
22+ const timeoutId = setTimeout ( ( ) => {
23+ observer . disconnect ( ) ;
24+ reject ( new Error ( 'Timeout waiting for data-themed attribute' ) ) ;
25+ } , MAX_TIMEOUT_DURATION ) ;
26+
1827 observer . observe ( host , {
1928 attributes : true ,
2029 attributeFilter : [ 'data-themed' ] ,
2130 } ) ;
2231 } ) ;
23-
24- const timeout = new Promise < void > ( ( _ , reject ) => {
25- setTimeout ( ( ) => reject ( new Error ( 'Timeout waiting for data-themed attribute' ) ) , MAX_TIMEOUT_DURATION ) ;
26- } ) ;
27-
28- return Promise . race ( [ observed , timeout ] ) ;
2932}
3033
3134/**
You can’t perform that action at this time.
0 commit comments