From 862522c1fed0c30c906d7be7a6793020067fcda0 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Tue, 29 Nov 2022 10:37:50 +0100
Subject: [PATCH] feat(profile): add loader on member loading

---
 .../structure-members-management.component.html       |  3 +++
 .../structure-members-management.component.ts         | 11 ++++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/app/profile/structure-members-management/structure-members-management.component.html b/src/app/profile/structure-members-management/structure-members-management.component.html
index 22f8fa16a..541c9a3a6 100644
--- a/src/app/profile/structure-members-management/structure-members-management.component.html
+++ b/src/app/profile/structure-members-management/structure-members-management.component.html
@@ -15,6 +15,9 @@
       ></app-button>
     </div>
 
+    <div *ngIf="isLoading" class="loader">
+      <img class="loader-gif" src="/assets/gif/loader_circle.gif" alt />
+    </div>
     <div *ngIf="structureWithOwners && tempUsers" class="membersList">
       <div *ngFor="let member of structureWithOwners.owners" class="member-card">
         <div class="user">
diff --git a/src/app/profile/structure-members-management/structure-members-management.component.ts b/src/app/profile/structure-members-management/structure-members-management.component.ts
index 5292e48f1..f16d45f73 100644
--- a/src/app/profile/structure-members-management/structure-members-management.component.ts
+++ b/src/app/profile/structure-members-management/structure-members-management.component.ts
@@ -1,5 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { ActivatedRoute } from '@angular/router';
+import { finalize } from 'rxjs';
 import { Owner } from '../../models/owner.model';
 import { Structure } from '../../models/structure.model';
 import { StructureWithOwners } from '../../models/structureWithOwners.model';
@@ -26,6 +27,7 @@ export class StructureMembersManagementComponent implements OnInit {
   public excludeModalOpenned = false;
   public cancelAddTempUserModalOpenned = false;
   public buttonTypeEnum = ButtonType;
+  public isLoading = true;
 
   constructor(
     private route: ActivatedRoute,
@@ -39,9 +41,12 @@ export class StructureMembersManagementComponent implements OnInit {
       if (data.structure) {
         this.structure = new Structure(data.structure);
         let currentProfile = await this.profileService.getProfile();
-        this.structureService.getStructureWithOwners(data.structure._id, currentProfile).subscribe((s) => {
-          this.structureWithOwners = s;
-        });
+        this.structureService
+          .getStructureWithOwners(data.structure._id, currentProfile)
+          .pipe(finalize(() => (this.isLoading = false)))
+          .subscribe((s) => {
+            this.structureWithOwners = s;
+          });
         this.structureService.getTempUsers(data.structure._id).subscribe((data) => {
           this.tempUsers = data;
         });
-- 
GitLab