This commit is contained in:
Dan Percic 2024-06-17 19:15:43 +03:00
parent e165ba7500
commit 213cabce7a
3 changed files with 13 additions and 26 deletions

View File

@ -1,12 +1,4 @@
import {
HttpErrorResponse,
HttpEvent,
HttpHandler,
HttpInterceptor,
HttpRequest,
HttpResponse,
HttpStatusCode,
} from '@angular/common/http';
import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse, HttpStatusCode } from '@angular/common/http';
import { Inject, Injectable, Optional } from '@angular/core';
import { finalize, MonoTypeOperatorFunction, Observable, retry, throwError, timer } from 'rxjs';
import { catchError, tap } from 'rxjs/operators';

View File

@ -1,9 +1,9 @@
import { ActivatedRouteSnapshot, CanActivate, CanActivateFn, RouterStateSnapshot, UrlTree } from '@angular/router';
import { inject, Injectable, InjectionToken, Injector, runInInjectionContext } from '@angular/core';
import { concatMap, firstValueFrom, from, last, of, takeWhile } from 'rxjs';
import { ActivatedRouteSnapshot, CanActivate, CanActivateFn, GuardResult, RouterStateSnapshot, UrlTree } from '@angular/router';
import { concatMap, firstValueFrom, from, last, Observable, of, takeWhile } from 'rxjs';
import { tap } from 'rxjs/operators';
import { LoadingService } from '../loading';
import { SkeletonService } from './skeleton.service';
import { tap } from 'rxjs/operators';
@Injectable({
providedIn: 'root',
@ -23,12 +23,13 @@ export class CompositeRouteGuard implements CanActivate {
if (routeGuards) {
for (let i = 0; i < routeGuards.length; i++) {
const routeGuard = this._injector.get<CanActivate>(routeGuards[i]);
let canActivateResult = routeGuard.canActivate(route, state);
if (canActivateResult instanceof Promise) {
canActivateResult = from(canActivateResult);
const canActivate = routeGuard.canActivate(route, state);
let canActivateResult: Observable<GuardResult> = of(true);
if (canActivate instanceof Promise) {
canActivateResult = from(canActivate);
}
if (typeof canActivateResult === 'boolean' || canActivateResult instanceof UrlTree) {
canActivateResult = of(canActivateResult);
if (typeof canActivate === 'boolean' || canActivate instanceof UrlTree) {
canActivateResult = of(canActivate);
}
const result = await firstValueFrom(canActivateResult);

View File

@ -4,14 +4,11 @@ import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-comp
import { pruningTranslationLoaderFactory } from './http-loader-factory';
import { IqserTranslateModuleOptions } from './iqser-translate-module-options';
import { IqserTranslateParser } from './iqser-translate-parser.service';
import { HttpClientModule } from '@angular/common/http';
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
const translateLoaderToken = new InjectionToken('translateLoader');
@NgModule({
imports: [
HttpClientModule,
TranslateModule.forRoot({
@NgModule({ exports: [TranslateModule], imports: [TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useExisting: translateLoaderToken,
@ -24,10 +21,7 @@ const translateLoaderToken = new InjectionToken('translateLoader');
provide: TranslateParser,
useClass: IqserTranslateParser,
},
}),
],
exports: [TranslateModule],
})
})], providers: [provideHttpClient(withInterceptorsFromDi())] })
export class IqserTranslateModule {
constructor() {
const translateLoader = inject<TranslateLoader>(translateLoaderToken, { optional: true });