1
1
import observer from "@cocreate/observer" ;
2
2
3
3
function listen ( name , callback , selector ) {
4
- const observerName = name + "LazyloadAddedNodesObserver" ;
4
+ const addedNodesObserverName = name + "LazyloadAddedNodesObserver" ;
5
+ const attributesObserverName = name + "LazyloadAttributesObserver" ;
5
6
async function observerCallback ( mutation ) {
6
- observer . uninit ( observerName ) ;
7
+ observer . uninit ( addedNodesObserverName ) ;
8
+ observer . uninit ( attributesObserverName ) ;
7
9
8
10
if ( ! window . CoCreate ) window . CoCreate = { } ;
9
11
@@ -19,7 +21,7 @@ function listen(name, callback, selector) {
19
21
}
20
22
21
23
observer . init ( {
22
- name : observerName ,
24
+ name : addedNodesObserverName ,
23
25
types : [ "addedNodes" ] ,
24
26
selector,
25
27
callback : observerCallback
@@ -42,7 +44,7 @@ function listen(name, callback, selector) {
42
44
}
43
45
if ( selectorAttributes . length > 0 )
44
46
observer . init ( {
45
- name : observerName ,
47
+ name : attributesObserverName ,
46
48
types : [ "attributes" ] ,
47
49
attributeFilter : selectorAttributes ,
48
50
selector,
@@ -51,9 +53,11 @@ function listen(name, callback, selector) {
51
53
}
52
54
53
55
export async function lazyLoad ( name , selector , callback ) {
54
- if ( document . querySelector ( selector ) )
56
+ if ( document . querySelector ( selector ) ) {
55
57
await dependency ( name , await callback ( ) ) ;
56
- else listen ( name , callback , selector ) ;
58
+ } else {
59
+ listen ( name , callback , selector ) ;
60
+ }
57
61
}
58
62
59
63
export async function dependency ( name , promise ) {
0 commit comments