Spaces:
Building
Building
File size: 845 Bytes
9f79da5 5a59c8d |
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 |
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
import { finalize } from 'rxjs/operators';
import { LoadingService } from '../services/loading.service';
@Injectable()
export class LoadingInterceptor implements HttpInterceptor {
constructor(private loadingService: LoadingService) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// Skip loading for certain requests
const skipLoading = req.headers.has('X-Skip-Loading');
if (!skipLoading) {
this.loadingService.show();
}
return next.handle(req).pipe(
finalize(() => {
if (!skipLoading) {
this.loadingService.hide();
}
})
);
}
} |