aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/app/core/routing/preload-selected-modules-list.ts
blob: 1abcdb01514c12df0a8ecceeca7ca76d04980802 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                               
                                          
                                          
                                                           
 
             
                                                                       
 
                                                                        
                                                       

                                                 
                                                                              

     
                 

   
import { Observable, of as ofObservable, timer as observableTimer } from 'rxjs'
import { switchMap } from 'rxjs/operators'
import { Injectable } from '@angular/core'
import { PreloadingStrategy, Route } from '@angular/router'

@Injectable()
export class PreloadSelectedModulesList implements PreloadingStrategy {

  preload (route: Route, load: () => Observable<any>): Observable<any> {
    if (!route.data?.preload) return ofObservable(null)

    if (typeof route.data.preload === 'number') {
      return observableTimer(route.data.preload).pipe(switchMap(() => load()))
    }

    return load()
  }
}