import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; import { LoadingService } from '../loading/loading.service'; export type Error = { name: string; } | null; @Injectable({ providedIn: 'root' }) export class ErrorService { readonly hasError$: Observable; private readonly _errorEvent$ = new BehaviorSubject(null); constructor(private readonly _loadingService: LoadingService) { this.hasError$ = this._errorEvent$.asObservable(); } private _error: Error = null; get error(): Error { return this._error; } set(error: Error): void { this._loadingService.stop(); this._error = error; this._errorEvent$.next(error); } clear(): void { this._errorEvent$.next(null); this._error = null; } }