Skip to content

Commit 068263c

Browse files
timdeschryverbrandonroberts
authored andcommitted
refactor(example): refactor routes as routing modules (#1139)
1 parent bbb7e8c commit 068263c

6 files changed

Lines changed: 48 additions & 18 deletions

File tree

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { Routes } from '@angular/router';
1+
import { NgModule } from '@angular/core';
2+
import { Routes, RouterModule } from '@angular/router';
23
import { AuthGuard } from './auth/services/auth-guard.service';
34
import { NotFoundPageComponent } from './core/containers/not-found-page.component';
45

@@ -11,3 +12,9 @@ export const routes: Routes = [
1112
},
1213
{ path: '**', component: NotFoundPageComponent },
1314
];
15+
16+
@NgModule({
17+
imports: [RouterModule.forRoot(routes, { useHash: true })],
18+
exports: [RouterModule],
19+
})
20+
export class AppRoutingModule {}

example-app/app/app.module.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { CommonModule } from '@angular/common';
33
import { HttpClientModule } from '@angular/common/http';
44
import { BrowserModule } from '@angular/platform-browser';
55
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6-
import { RouterModule } from '@angular/router';
76

87
import { StoreModule } from '@ngrx/store';
98
import { EffectsModule } from '@ngrx/effects';
@@ -17,21 +16,22 @@ import { StoreDevtoolsModule } from '@ngrx/store-devtools';
1716
import { CoreModule } from './core/core.module';
1817
import { AuthModule } from './auth/auth.module';
1918

20-
import { routes } from './routes';
2119
import { reducers, metaReducers } from './reducers';
2220
import { schema } from './db';
2321
import { CustomRouterStateSerializer } from './shared/utils';
2422

2523
import { AppComponent } from './core/containers/app.component';
2624
import { environment } from '../environments/environment';
25+
import { AppRoutingModule } from './app-routing.module';
2726

2827
@NgModule({
2928
imports: [
3029
CommonModule,
3130
BrowserModule,
3231
BrowserAnimationsModule,
3332
HttpClientModule,
34-
RouterModule.forRoot(routes, { useHash: true }),
33+
AuthModule.forRoot(),
34+
AppRoutingModule,
3535

3636
/**
3737
* StoreModule.forRoot is imported once in the root module, accepting a reducer
@@ -84,8 +84,6 @@ import { environment } from '../environments/environment';
8484
DBModule.provideDB(schema),
8585

8686
CoreModule.forRoot(),
87-
88-
AuthModule.forRoot(),
8987
],
9088
providers: [
9189
/**
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { NgModule } from '@angular/core';
2+
import { Routes, RouterModule } from '@angular/router';
3+
import { LoginPageComponent } from './containers/login-page.component';
4+
5+
const routes: Routes = [{ path: 'login', component: LoginPageComponent }];
6+
7+
@NgModule({
8+
imports: [RouterModule.forChild(routes)],
9+
exports: [RouterModule],
10+
})
11+
export class AuthRoutingModule {}

example-app/app/auth/auth.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3-
import { RouterModule } from '@angular/router';
43
import { ReactiveFormsModule } from '@angular/forms';
54
import { StoreModule } from '@ngrx/store';
65
import { EffectsModule } from '@ngrx/effects';
@@ -12,6 +11,7 @@ import { AuthGuard } from './services/auth-guard.service';
1211
import { AuthEffects } from './effects/auth.effects';
1312
import { reducers } from './reducers';
1413
import { MaterialModule } from '../material';
14+
import { AuthRoutingModule } from './auth-routing.module';
1515

1616
export const COMPONENTS = [LoginPageComponent, LoginFormComponent];
1717

@@ -32,7 +32,7 @@ export class AuthModule {
3232
@NgModule({
3333
imports: [
3434
AuthModule,
35-
RouterModule.forChild([{ path: 'login', component: LoginPageComponent }]),
35+
AuthRoutingModule,
3636
StoreModule.forFeature('auth', reducers),
3737
EffectsModule.forFeature([AuthEffects]),
3838
],
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { NgModule } from '@angular/core';
2+
import { Routes, RouterModule } from '@angular/router';
3+
import { FindBookPageComponent } from './containers/find-book-page.component';
4+
import { ViewBookPageComponent } from './containers/view-book-page.component';
5+
import { CollectionPageComponent } from './containers/collection-page.component';
6+
import { BookExistsGuard } from './guards/book-exists.guard';
7+
8+
export const routes: Routes = [
9+
{ path: 'find', component: FindBookPageComponent },
10+
{
11+
path: ':id',
12+
component: ViewBookPageComponent,
13+
canActivate: [BookExistsGuard],
14+
},
15+
{ path: '', component: CollectionPageComponent },
16+
];
17+
18+
@NgModule({
19+
imports: [RouterModule.forChild(routes)],
20+
exports: [RouterModule],
21+
})
22+
export class BooksRoutingModule {}

example-app/app/books/books.module.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3-
import { RouterModule } from '@angular/router';
43
import { StoreModule } from '@ngrx/store';
54
import { EffectsModule } from '@ngrx/effects';
65

@@ -16,21 +15,14 @@ import { CollectionPageComponent } from './containers/collection-page.component'
1615
import { MaterialModule } from '../material';
1716

1817
import { reducers } from './reducers';
18+
import { BooksRoutingModule } from './books-routing.module';
1919

2020
@NgModule({
2121
imports: [
2222
CommonModule,
2323
MaterialModule,
2424
ComponentsModule,
25-
RouterModule.forChild([
26-
{ path: 'find', component: FindBookPageComponent },
27-
{
28-
path: ':id',
29-
component: ViewBookPageComponent,
30-
canActivate: [BookExistsGuard],
31-
},
32-
{ path: '', component: CollectionPageComponent },
33-
]),
25+
BooksRoutingModule,
3426

3527
/**
3628
* StoreModule.forFeature is used for composing state

0 commit comments

Comments
 (0)