Skip to content
This repository was archived by the owner on Dec 18, 2024. It is now read-only.

Commit a28de90

Browse files
committed
feat: lazy load home page and guides
Relates to #176
1 parent c6d37ed commit a28de90

File tree

5 files changed

+25
-26
lines changed

5 files changed

+25
-26
lines changed

src/app/app-module.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import {NgModule} from '@angular/core';
44
import {LocationStrategy, PathLocationStrategy} from '@angular/common';
55
import {FormsModule} from '@angular/forms';
66
import {RouterModule} from '@angular/router';
7-
import {MatNativeDateModule} from '@angular/material/core';
87
import {ExampleModule} from '@angular/components-examples';
98

109
import {MaterialDocsApp} from './material-docs-app';
11-
import {HomepageModule} from './pages/homepage';
1210
import {MATERIAL_DOCS_ROUTES} from './routes';
1311
import {ComponentListModule} from './pages/component-list';
1412
import {ComponentViewerModule} from './pages/component-viewer/component-viewer';
@@ -25,12 +23,8 @@ import {NavBarModule} from './shared/navbar';
2523
import {ThemeStorage} from './shared/theme-picker/theme-storage/theme-storage';
2624
import {GuideItems} from './shared/guide-items/guide-items';
2725
import {DocumentationItems} from './shared/documentation-items/documentation-items';
28-
import {GuideListModule} from './pages/guide-list';
29-
import {GuideViewerModule} from './pages/guide-viewer';
3026
import {DocViewerModule} from './shared/doc-viewer/doc-viewer-module';
31-
import {
32-
CanActivateComponentSidenav
33-
} from './pages/component-sidenav/component-sidenav-can-load-guard';
27+
import {CanActivateComponentSidenav} from './pages/component-sidenav/component-sidenav-can-load-guard';
3428
import {HttpClientModule} from '@angular/common/http';
3529
import {GaService} from './shared/ga/ga';
3630

@@ -41,7 +35,6 @@ import {GaService} from './shared/ga/ga';
4135
ExampleModule,
4236
FormsModule,
4337
HttpClientModule,
44-
MatNativeDateModule,
4538
RouterModule.forRoot(MATERIAL_DOCS_ROUTES, {
4639
scrollPositionRestoration: 'enabled',
4740
anchorScrolling: 'enabled',
@@ -54,9 +47,6 @@ import {GaService} from './shared/ga/ga';
5447
ComponentViewerModule,
5548
DocViewerModule,
5649
FooterModule,
57-
GuideListModule,
58-
GuideViewerModule,
59-
HomepageModule,
6050
NavBarModule,
6151
StackBlitzButtonModule,
6252
SvgViewerModule,

src/app/pages/guide-list/guide-list.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {Component, NgModule, OnInit} from '@angular/core';
22
import {GuideItems} from '../../shared/guide-items/guide-items';
33
import {MatListModule} from '@angular/material/list';
4-
import {RouterModule} from '@angular/router';
4+
import {RouterModule, Routes} from '@angular/router';
55
import {FooterModule} from '../../shared/footer/footer';
66
import {CommonModule} from '@angular/common';
77
import {ComponentPageTitle} from '../page-title/page-title';
@@ -19,9 +19,10 @@ export class GuideList implements OnInit {
1919
}
2020
}
2121

22+
const routes: Routes = [ {path : '', component : GuideList} ];
2223

2324
@NgModule({
24-
imports: [MatListModule, RouterModule, FooterModule, CommonModule],
25+
imports: [CommonModule, MatListModule, FooterModule, RouterModule.forChild(routes)],
2526
exports: [GuideList],
2627
declarations: [GuideList],
2728
providers: [GuideItems, ComponentPageTitle],

src/app/pages/guide-viewer/guide-viewer.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Component, NgModule, OnInit} from '@angular/core';
2-
import {ActivatedRoute, RouterModule, Router} from '@angular/router';
2+
import {ActivatedRoute, Router, RouterModule, Routes} from '@angular/router';
33
import {GuideItem, GuideItems} from '../../shared/guide-items/guide-items';
44
import {FooterModule} from '../../shared/footer/footer';
55
import {DocViewerModule} from '../../shared/doc-viewer/doc-viewer-module';
@@ -37,8 +37,10 @@ export class GuideViewer implements OnInit {
3737
}
3838
}
3939

40+
const routes: Routes = [ {path : '', component : GuideViewer} ];
41+
4042
@NgModule({
41-
imports: [DocViewerModule, FooterModule, RouterModule, TableOfContentsModule],
43+
imports: [DocViewerModule, FooterModule, TableOfContentsModule, RouterModule.forChild(routes)],
4244
exports: [GuideViewer],
4345
declarations: [GuideViewer],
4446
providers: [GuideItems, ComponentPageTitle],

src/app/pages/homepage/homepage.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {Component, NgModule, OnInit} from '@angular/core';
22
import {SvgViewerModule} from '../../shared/svg-viewer/svg-viewer';
33
import {MatButtonModule} from '@angular/material/button';
44
import {FooterModule} from '../../shared/footer/footer';
5-
import {RouterModule} from '@angular/router';
5+
import {RouterModule, Routes} from '@angular/router';
66
import {ComponentPageTitle} from '../page-title/page-title';
77

88
@Component({
@@ -20,8 +20,10 @@ export class Homepage implements OnInit {
2020
}
2121
}
2222

23+
const routes: Routes = [ {path : '', component : Homepage} ];
24+
2325
@NgModule({
24-
imports: [SvgViewerModule, MatButtonModule, FooterModule, RouterModule],
26+
imports: [SvgViewerModule, MatButtonModule, FooterModule, RouterModule.forChild(routes)],
2527
exports: [Homepage],
2628
declarations: [Homepage],
2729
})

src/app/routes.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import {Homepage} from './pages/homepage';
21
import {ComponentList} from './pages/component-list';
3-
import {GuideList} from './pages/guide-list';
42
import {Routes} from '@angular/router';
53
import {
64
ComponentApi,
@@ -10,19 +8,25 @@ import {
108
} from './pages/component-viewer/component-viewer';
119
import {ComponentCategoryList} from './pages/component-category-list/component-category-list';
1210
import {ComponentSidenav} from './pages/component-sidenav/component-sidenav';
13-
import {
14-
CanActivateComponentSidenav
15-
} from './pages/component-sidenav/component-sidenav-can-load-guard';
16-
import {GuideViewer} from './pages/guide-viewer';
11+
import {CanActivateComponentSidenav} from './pages/component-sidenav/component-sidenav-can-load-guard';
1712

1813
export const MATERIAL_DOCS_ROUTES: Routes = [
19-
{path: '', component: Homepage, pathMatch: 'full', data: {}},
14+
{
15+
path: '', pathMatch: 'full',
16+
loadChildren: () => import('./pages/homepage').then(m => m.HomepageModule)
17+
},
2018
{path: 'categories', redirectTo: '/components/categories'},
21-
{path: 'guides', component: GuideList, data: {}},
19+
{
20+
path: 'guides',
21+
loadChildren: () => import('./pages/guide-list').then(m => m.GuideListModule)
22+
},
2223
// Since https://github.com/angular/components/pull/9574, the cdk-table guide became the overview
2324
// document for the cdk table. To avoid any dead / broken links, we redirect to the new location.
2425
{path: 'guide/cdk-table', redirectTo: '/cdk/table/overview'},
25-
{path: 'guide/:id', component: GuideViewer, data: {}},
26+
{
27+
path: 'guide/:id',
28+
loadChildren: () => import('./pages/guide-viewer').then(m => m.GuideViewerModule)
29+
},
2630
{
2731
path: ':section',
2832
canActivate: [CanActivateComponentSidenav],

0 commit comments

Comments
 (0)