Spaces:
Building
Building
File size: 797 Bytes
9f79da5 78ff404 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class LoadingService {
private loadingSubject = new BehaviorSubject<boolean>(false);
public loading$ = this.loadingSubject.asObservable();
private activeRequests = 0;
show() {
this.activeRequests++;
this.loadingSubject.next(true);
}
hide() {
this.activeRequests--;
if (this.activeRequests <= 0) {
this.activeRequests = 0;
// Small delay to prevent flicker
setTimeout(() => {
if (this.activeRequests === 0) {
this.loadingSubject.next(false);
}
}, 300);
}
}
forceHide() {
this.activeRequests = 0;
this.loadingSubject.next(false);
}
} |