Überarbeitung des Stripe Prozesses
This commit is contained in:
@@ -7,15 +7,22 @@ import { LoadingService } from '../services/loading.service';
|
||||
@Injectable()
|
||||
export class LoadingInterceptor implements HttpInterceptor {
|
||||
constructor(private loadingService: LoadingService) {}
|
||||
|
||||
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
|
||||
const hideLoading = request.headers.get('X-Hide-Loading') === 'true';
|
||||
const requestId = `HTTP-${v4()}`;
|
||||
this.loadingService.startLoading(requestId, request.url);
|
||||
|
||||
if (!hideLoading) {
|
||||
this.loadingService.startLoading(requestId, request.url);
|
||||
}
|
||||
|
||||
return next.handle(request).pipe(
|
||||
tap({
|
||||
finalize: () => this.loadingService.stopLoading(requestId), // Stoppt den Ladevorgang, wenn die Anfrage abgeschlossen ist
|
||||
// Beachte, dass 'error' und 'complete' hier entfernt wurden, da 'finalize' in allen Fällen aufgerufen wird,
|
||||
// egal ob die Anfrage erfolgreich war, einen Fehler geworfen hat oder abgeschlossen wurde.
|
||||
finalize: () => {
|
||||
if (!hideLoading) {
|
||||
this.loadingService.stopLoading(requestId);
|
||||
}
|
||||
},
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user