Fixed refresh error with social page
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import {Component, inject, OnInit} from '@angular/core';
|
import {Component, inject} from '@angular/core';
|
||||||
import {IonicModule, LoadingController, ToastController} from "@ionic/angular";
|
import {IonicModule, LoadingController, ToastController} from "@ionic/angular";
|
||||||
import {checkmarkCircleOutline, closeCircleOutline} from 'ionicons/icons';
|
import {checkmarkCircleOutline, closeCircleOutline} from 'ionicons/icons';
|
||||||
import {addIcons} from "ionicons";
|
import {addIcons} from "ionicons";
|
||||||
@@ -21,7 +21,7 @@ addIcons({
|
|||||||
PipeComponent
|
PipeComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class FriendRequestComponent implements OnInit {
|
export class FriendRequestComponent {
|
||||||
private friendsService = inject(FriendsService);
|
private friendsService = inject(FriendsService);
|
||||||
private toastCtrl = inject(ToastController);
|
private toastCtrl = inject(ToastController);
|
||||||
private friendsState = inject(FriendsStateService);
|
private friendsState = inject(FriendsStateService);
|
||||||
@@ -29,37 +29,6 @@ export class FriendRequestComponent implements OnInit {
|
|||||||
|
|
||||||
friendsRequest = this.friendsState.requests;
|
friendsRequest = this.friendsState.requests;
|
||||||
|
|
||||||
async ngOnInit() {
|
|
||||||
await this.fetchFriendsRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
async ionViewWillEnter() {
|
|
||||||
await this.fetchFriendsRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
async fetchFriendsRequest() {
|
|
||||||
const loading = await this.loadCtrl.create({
|
|
||||||
message: 'Chargement...',
|
|
||||||
spinner: 'lines-sharp-small'
|
|
||||||
});
|
|
||||||
await loading.present();
|
|
||||||
|
|
||||||
try {
|
|
||||||
const requests = await firstValueFrom(this.friendsService.getAllFriendRequestsEndpoint());
|
|
||||||
this.friendsState.setRequests(requests);
|
|
||||||
} catch (e) {
|
|
||||||
const toast = await this.toastCtrl.create({
|
|
||||||
message: 'Erreur lors du chargement des demandes d\'amis',
|
|
||||||
duration: 2000,
|
|
||||||
color: 'primary'
|
|
||||||
});
|
|
||||||
await toast.present();
|
|
||||||
}
|
|
||||||
|
|
||||||
await loading.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
async acceptRequest(request: GetFriendRequestDto) {
|
async acceptRequest(request: GetFriendRequestDto) {
|
||||||
const loading = await this.loadCtrl.create({
|
const loading = await this.loadCtrl.create({
|
||||||
message: 'Chargement...',
|
message: 'Chargement...',
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ addIcons({
|
|||||||
IonicModule
|
IonicModule
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class FriendsListComponent implements OnInit {
|
export class FriendsListComponent {
|
||||||
private friendsService = inject(FriendsService);
|
private friendsService = inject(FriendsService);
|
||||||
private usersService = inject(UsersService);
|
private usersService = inject(UsersService);
|
||||||
private toastCtrl = inject(ToastController);
|
private toastCtrl = inject(ToastController);
|
||||||
@@ -31,35 +31,6 @@ export class FriendsListComponent implements OnInit {
|
|||||||
|
|
||||||
friends = this.friendsState.friends;
|
friends = this.friendsState.friends;
|
||||||
|
|
||||||
async ngOnInit() {
|
|
||||||
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);
|
|
||||||
} catch (e) {
|
|
||||||
const toast = await this.toastCtrl.create({
|
|
||||||
message: 'Amis introuvables',
|
|
||||||
duration: 2000,
|
|
||||||
color: 'primary'
|
|
||||||
});
|
|
||||||
await toast.present();
|
|
||||||
}
|
|
||||||
await loading.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
async deleteFriend(friendId: number) {
|
async deleteFriend(friendId: number) {
|
||||||
const loading = await this.loadCtrl.create({
|
const loading = await this.loadCtrl.create({
|
||||||
message: 'Chargement...',
|
message: 'Chargement...',
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import {Component} from '@angular/core';
|
import {Component, inject, OnInit} from '@angular/core';
|
||||||
import {TitlePartComponent} from "../../components/title-part/title-part.component";
|
import {TitlePartComponent} from "../../components/title-part/title-part.component";
|
||||||
import {IonicModule} from "@ionic/angular";
|
import {IonicModule, LoadingController} from "@ionic/angular";
|
||||||
import {FriendRequestComponent} from "../../components/friend-request/friend-request.component";
|
import {FriendRequestComponent} from "../../components/friend-request/friend-request.component";
|
||||||
import {FriendsListComponent} from "../../components/friends/friends-list.component";
|
import {FriendsListComponent} from "../../components/friends/friends-list.component";
|
||||||
import {addIcons} from "ionicons";
|
import {addIcons} from "ionicons";
|
||||||
import {addCircleOutline} from 'ionicons/icons';
|
import {addCircleOutline} from 'ionicons/icons';
|
||||||
import {SearchFriendComponent} from "../../components/search-friend/search-friend.component";
|
import {SearchFriendComponent} from "../../components/search-friend/search-friend.component";
|
||||||
|
import {FriendsStateService} from "../../services/friends-state";
|
||||||
|
|
||||||
addIcons({
|
addIcons({
|
||||||
"send": addCircleOutline
|
"send": addCircleOutline
|
||||||
@@ -23,6 +24,33 @@ addIcons({
|
|||||||
SearchFriendComponent
|
SearchFriendComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class SocialComponent {
|
export class SocialComponent implements OnInit {
|
||||||
|
private friendsState = inject(FriendsStateService);
|
||||||
|
private loadCtrl = inject(LoadingController);
|
||||||
|
|
||||||
|
async ngOnInit() {
|
||||||
|
const loading = await this.loadCtrl.create({
|
||||||
|
message: 'Chargement...',
|
||||||
|
spinner: 'lines-sharp-small'
|
||||||
|
});
|
||||||
|
await loading.present();
|
||||||
|
|
||||||
|
await this.friendsState.fetchFriendsRequest();
|
||||||
|
await this.friendsState.fetchFriends();
|
||||||
|
|
||||||
|
await loading.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
async ionViewWillEnter() {
|
||||||
|
const loading = await this.loadCtrl.create({
|
||||||
|
message: 'Chargement...',
|
||||||
|
spinner: 'lines-sharp-small'
|
||||||
|
});
|
||||||
|
await loading.present();
|
||||||
|
|
||||||
|
await this.friendsState.fetchFriendsRequest();
|
||||||
|
await this.friendsState.fetchFriends();
|
||||||
|
|
||||||
|
await loading.dismiss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,20 +1,45 @@
|
|||||||
import {Injectable, signal} from '@angular/core';
|
import {inject, Injectable, signal} from '@angular/core';
|
||||||
import {GetFriendDto, GetFriendRequestDto} from "./api";
|
import {FriendsService, GetFriendDto, GetFriendRequestDto} from "./api";
|
||||||
|
import {LoadingController, ToastController} from "@ionic/angular";
|
||||||
|
import {firstValueFrom} from "rxjs";
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
})
|
})
|
||||||
|
|
||||||
export class FriendsStateService {
|
export class FriendsStateService {
|
||||||
|
private friendsService = inject(FriendsService);
|
||||||
|
private toastCtrl = inject(ToastController);
|
||||||
|
|
||||||
friends = signal<GetFriendDto[]>([]);
|
friends = signal<GetFriendDto[]>([]);
|
||||||
requests = signal<GetFriendRequestDto[]>([]);
|
requests = signal<GetFriendRequestDto[]>([]);
|
||||||
|
|
||||||
setFriends(friends: GetFriendDto[]) {
|
async fetchFriendsRequest() {
|
||||||
this.friends.set(friends);
|
try {
|
||||||
|
const requests = await firstValueFrom(this.friendsService.getAllFriendRequestsEndpoint());
|
||||||
|
this.requests.set(requests);
|
||||||
|
} catch {
|
||||||
|
const toast = await this.toastCtrl.create({
|
||||||
|
message: 'Erreur lors du chargement des demandes d\'amis',
|
||||||
|
duration: 2000,
|
||||||
|
color: 'primary'
|
||||||
|
});
|
||||||
|
await toast.present();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setRequests(requests: GetFriendRequestDto[]) {
|
async fetchFriends() {
|
||||||
this.requests.set(requests);
|
try {
|
||||||
|
const friends = await firstValueFrom(this.friendsService.getAllFriendsEndpoint());
|
||||||
|
this.friends.set(friends);
|
||||||
|
} catch {
|
||||||
|
const toast = await this.toastCtrl.create({
|
||||||
|
message: 'Amis introuvables',
|
||||||
|
duration: 2000,
|
||||||
|
color: 'primary'
|
||||||
|
});
|
||||||
|
await toast.present();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
acceptRequest(request: GetFriendRequestDto) {
|
acceptRequest(request: GetFriendRequestDto) {
|
||||||
@@ -30,11 +55,11 @@ export class FriendsStateService {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeFriend(friendId: number) {
|
|
||||||
this.friends.set(this.friends().filter(x => x.friendId !== friendId));
|
|
||||||
}
|
|
||||||
|
|
||||||
removeRequest(friendId: number) {
|
removeRequest(friendId: number) {
|
||||||
this.requests.set(this.requests().filter(x => x.userId !== friendId));
|
this.requests.set(this.requests().filter(x => x.userId !== friendId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeFriend(friendId: number) {
|
||||||
|
this.friends.set(this.friends().filter(x => x.friendId !== friendId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user