Added loading and refresh

This commit is contained in:
2026-04-13 23:18:09 +01:00
parent 697f1e8490
commit ee09331baf
3 changed files with 61 additions and 2 deletions
@@ -1,5 +1,5 @@
import {Component, inject, OnInit, signal} from '@angular/core';
import {IonicModule, ToastController} from "@ionic/angular";
import {IonicModule, LoadingController, ToastController} from "@ionic/angular";
import {closeCircleOutline} from 'ionicons/icons';
import {addIcons} from "ionicons";
import {FriendsService, GetUserDto, UsersService} from "../../services/api";
@@ -23,6 +23,7 @@ export class FriendsListComponent implements OnInit {
private usersService = inject(UsersService);
private toastCtrl = inject(ToastController);
private friendsState = inject(FriendsStateService);
private loadCtrl = inject(LoadingController)
selectedFriend = signal<GetUserDto>(null);
@@ -34,7 +35,17 @@ export class FriendsListComponent implements OnInit {
await this.fetchFriends();
}
async ionViewWillEnter() {
await this.fetchFriends();
}
async fetchFriends() {
const loading = await this.loadCtrl.create({
message: 'Chargement...',
spinner: 'lines-sharp-small'
});
await loading.present();
try {
const friends = await firstValueFrom(this.friendsService.getAllFriendsEndpoint());
this.friendsState.setFriends(friends);
@@ -46,9 +57,16 @@ export class FriendsListComponent implements OnInit {
});
await toast.present();
}
await loading.dismiss();
}
async deleteFriend(friendId: number) {
const loading = await this.loadCtrl.create({
message: 'Chargement...',
spinner: 'lines-sharp-small'
});
await loading.present();
try {
await firstValueFrom(this.friendsService.deleteFriendEndpoint(friendId));
const toast = await this.toastCtrl.create({
@@ -66,9 +84,17 @@ export class FriendsListComponent implements OnInit {
await toast.present();
}
this.friendsState.removeFriend(friendId);
await loading.dismiss();
}
async setOpen(isOpen: boolean, userId: number) {
const loading = await this.loadCtrl.create({
message: 'Chargement...',
spinner: 'lines-sharp-small'
});
await loading.present();
if (isOpen) {
try {
const userInfo = await firstValueFrom(this.usersService.getUserEndpoint(userId));
@@ -83,5 +109,6 @@ export class FriendsListComponent implements OnInit {
}
}
this.isModalOpen = isOpen;
await loading.dismiss();
}
}