File tree Expand file tree Collapse file tree 1 file changed +19
-1
lines changed
src/client/components/map Expand file tree Collapse file tree 1 file changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -15,14 +15,32 @@ export class MapDisplay extends LitElement {
1515 @state ( ) private mapName : string | null = null ;
1616 @state ( ) private isLoading = true ;
1717 @state ( ) private hasNations = true ;
18+ private observer : IntersectionObserver | null = null ;
19+ private dataLoaded = false ;
1820
1921 createRenderRoot ( ) {
2022 return this ;
2123 }
2224
2325 connectedCallback ( ) {
2426 super . connectedCallback ( ) ;
25- this . loadMapData ( ) ;
27+ this . observer = new IntersectionObserver (
28+ ( entries ) => {
29+ if ( entries . some ( ( e ) => e . isIntersecting ) && ! this . dataLoaded ) {
30+ this . dataLoaded = true ;
31+ this . loadMapData ( ) ;
32+ this . observer ?. disconnect ( ) ;
33+ }
34+ } ,
35+ { rootMargin : "200px" } ,
36+ ) ;
37+ this . observer . observe ( this ) ;
38+ }
39+
40+ disconnectedCallback ( ) {
41+ this . observer ?. disconnect ( ) ;
42+ this . observer = null ;
43+ super . disconnectedCallback ( ) ;
2644 }
2745
2846 private async loadMapData ( ) {
You can’t perform that action at this time.
0 commit comments