import { Injectable } from '@angular/core'; import { Resolve, ActivatedRouteSnapshot, Routes } from '@angular/router'; import { Observable, of } from 'rxjs'; import { User, IUser } from './user-management.model'; import { UserManagementService } from './service/user-management.service'; import { UserManagementComponent } from './list/user-management.component'; import { UserManagementDetailComponent } from './detail/user-management-detail.component'; import { UserManagementUpdateComponent } from './update/user-management-update.component'; @Injectable({ providedIn: 'root' }) export class UserManagementResolve implements Resolve { constructor(private service: UserManagementService) {} resolve(route: ActivatedRouteSnapshot): Observable { const id = route.params['login']; if (id) { return this.service.find(id); } return of(new User()); } } export const userManagementRoute: Routes = [ { path: '', component: UserManagementComponent, data: { defaultSort: 'id,asc', }, }, { path: ':login/view', component: UserManagementDetailComponent, resolve: { user: UserManagementResolve, }, }, { path: 'new', component: UserManagementUpdateComponent, resolve: { user: UserManagementResolve, }, }, { path: ':login/edit', component: UserManagementUpdateComponent, resolve: { user: UserManagementResolve, }, }, ];