Переглянути джерело

fix: Destroy loader when error from back-end

jmacura 5 роки тому
батько
коміт
8c7bc04d1a

+ 1 - 1
src/adjuster/adjuster-event.service.ts

@@ -3,7 +3,7 @@ import {Subject} from 'rxjs';
 
 @Injectable({providedIn: 'root'})
 export class AdjusterEventService {
-  clustersLoaded: Subject<void> = new Subject();
+  clustersLoaded: Subject<{success: boolean}> = new Subject();
   methodChanged: Subject<string> = new Subject();
   constructor() {}
 }

+ 2 - 1
src/adjuster/adjuster.service.ts

@@ -172,12 +172,13 @@ export class AdjusterService {
           }
           this.clusters = clusters;
           this._clusteringInProcess = false;
-          this.adjusterEventService.clustersLoaded.next();
+          this.adjusterEventService.clustersLoaded.next({success: true});
         })
         .catch((error) => {
           console.warn(`Error obtaining data from ${this.serviceBaseUrl}.`);
           console.log(error);
           this._clusteringInProcess = false;
+          this.adjusterEventService.clustersLoaded.next({success: false});
         });
     };
     this.hsUtilsService.debounce(f, 300, false, this)();

+ 6 - 4
src/app.service.ts

@@ -111,10 +111,12 @@ export class AppService {
         },*/
       ],
     });
-    this.adjusterEventService.clustersLoaded.subscribe(() => {
-      this.colorPalette = this.generateRandomColorPalette(
-        adjusterService.clusters.length
-      );
+    this.adjusterEventService.clustersLoaded.subscribe(({success}) => {
+      if (success) {
+        this.colorPalette = this.generateRandomColorPalette(
+          adjusterService.clusters.length
+        );
+      }
     });
     this.adjusterEventService.methodChanged.subscribe((method) => {
       this.nuts3Layer.get('popUp').attributes[2].attribute = method;