Skip to content

Commit 8fcba84

Browse files
author
Your Name
committed
NgRx - The Complete Guide
1 parent 768281c commit 8fcba84

File tree

6 files changed

+63
-156
lines changed

6 files changed

+63
-156
lines changed

src/app/app.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import {EffectsModule} from '@ngrx/effects';
2222
import {MatProgressSpinnerModule} from '@angular/material';
2323
import {metaReducers, reducers} from './reducers';
2424
import {AuthGuard} from './auth/auth.guard';
25-
import {EntityDataModule} from '@ngrx/data';
2625

2726

2827
const routes: Routes = [
@@ -65,7 +64,6 @@ const routes: Routes = [
6564
}),
6665
StoreDevtoolsModule.instrument({maxAge: 25, logOnly: environment.production}),
6766
EffectsModule.forRoot([]),
68-
EntityDataModule.forRoot({}),
6967
StoreRouterConnectingModule.forRoot({
7068
stateKey: 'router',
7169
routerState: RouterState.Minimal

src/app/courses/courses.module.ts

Lines changed: 47 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -21,92 +21,66 @@ import {MatCardModule} from '@angular/material/card';
2121
import {MatButtonModule} from '@angular/material/button';
2222
import {MatIconModule} from '@angular/material/icon';
2323
import {RouterModule, Routes} from '@angular/router';
24-
import {EntityDataService, EntityDefinitionService, EntityMetadataMap} from '@ngrx/data';
24+
import { EntityDataService, EntityDefinitionService, EntityMetadataMap} from '@ngrx/data';
2525
import {compareCourses, Course} from './model/course';
2626

2727
import {compareLessons, Lesson} from './model/lesson';
28-
import {CourseEntityService} from './services/course-entity.service';
29-
import {CoursesResolver} from './services/courses.resolver';
30-
import {CoursesDataService} from './services/courses-data.service';
3128

3229

3330
export const coursesRoutes: Routes = [
34-
{
35-
path: '',
36-
component: HomeComponent,
37-
resolve: {
38-
courses: CoursesResolver
39-
}
40-
},
41-
{
42-
path: ':courseUrl',
43-
component: CourseComponent,
44-
resolve: {
45-
courses: CoursesResolver
46-
}
47-
}
48-
];
49-
50-
const entityMetadata: EntityMetadataMap = {
51-
Course: {
52-
sortComparer: compareCourses
53-
}
54-
};
31+
{
32+
path: '',
33+
component: HomeComponent
5534

35+
},
36+
{
37+
path: ':courseUrl',
38+
component: CourseComponent
39+
}
40+
];
5641

5742
@NgModule({
58-
imports: [
59-
CommonModule,
60-
MatButtonModule,
61-
MatIconModule,
62-
MatCardModule,
63-
MatTabsModule,
64-
MatInputModule,
65-
MatTableModule,
66-
MatPaginatorModule,
67-
MatSortModule,
68-
MatProgressSpinnerModule,
69-
MatSlideToggleModule,
70-
MatDialogModule,
71-
MatSelectModule,
72-
MatDatepickerModule,
73-
MatMomentDateModule,
74-
ReactiveFormsModule,
75-
RouterModule.forChild(coursesRoutes)
76-
],
77-
declarations: [
78-
HomeComponent,
79-
CoursesCardListComponent,
80-
EditCourseDialogComponent,
81-
CourseComponent
82-
],
83-
exports: [
84-
HomeComponent,
85-
CoursesCardListComponent,
86-
87-
EditCourseDialogComponent,
88-
CourseComponent
89-
],
90-
entryComponents: [EditCourseDialogComponent],
91-
providers: [
92-
CoursesHttpService,
93-
CourseEntityService,
94-
CoursesResolver,
95-
CoursesDataService
96-
]
43+
imports: [
44+
CommonModule,
45+
MatButtonModule,
46+
MatIconModule,
47+
MatCardModule,
48+
MatTabsModule,
49+
MatInputModule,
50+
MatTableModule,
51+
MatPaginatorModule,
52+
MatSortModule,
53+
MatProgressSpinnerModule,
54+
MatSlideToggleModule,
55+
MatDialogModule,
56+
MatSelectModule,
57+
MatDatepickerModule,
58+
MatMomentDateModule,
59+
ReactiveFormsModule,
60+
RouterModule.forChild(coursesRoutes)
61+
],
62+
declarations: [
63+
HomeComponent,
64+
CoursesCardListComponent,
65+
EditCourseDialogComponent,
66+
CourseComponent
67+
],
68+
exports: [
69+
HomeComponent,
70+
CoursesCardListComponent,
71+
EditCourseDialogComponent,
72+
CourseComponent
73+
],
74+
entryComponents: [EditCourseDialogComponent],
75+
providers: [
76+
CoursesHttpService
77+
]
9778
})
9879
export class CoursesModule {
9980

100-
constructor(
101-
private eds: EntityDefinitionService,
102-
private entityDataService: EntityDataService,
103-
private coursesDataService: CoursesDataService) {
104-
105-
eds.registerMetadataMap(entityMetadata);
106-
107-
entityDataService.registerService('Course', coursesDataService);
81+
constructor() {
10882

109-
}
83+
}
11084

11185

11286
}

src/app/courses/home/home.component.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {EditCourseDialogComponent} from '../edit-course-dialog/edit-course-dialo
66
import {MatDialog} from '@angular/material';
77
import {map, shareReplay} from 'rxjs/operators';
88
import {CoursesHttpService} from '../services/courses-http.service';
9-
import {CourseEntityService} from '../services/course-entity.service';
109

1110

1211

@@ -19,13 +18,16 @@ export class HomeComponent implements OnInit {
1918

2019
promoTotal$: Observable<number>;
2120

21+
loading$: Observable<boolean>;
22+
2223
beginnerCourses$: Observable<Course[]>;
2324

2425
advancedCourses$: Observable<Course[]>;
2526

27+
2628
constructor(
2729
private dialog: MatDialog,
28-
private coursesService: CourseEntityService) {
30+
private coursesHttpService: CoursesHttpService) {
2931

3032
}
3133

@@ -35,17 +37,26 @@ export class HomeComponent implements OnInit {
3537

3638
reload() {
3739

38-
this.beginnerCourses$ = this.coursesService.entities$
40+
const courses$ = this.coursesHttpService.findAllCourses()
41+
.pipe(
42+
map(courses => courses.sort(compareCourses)),
43+
shareReplay()
44+
);
45+
46+
this.loading$ = courses$.pipe(map(courses => !!courses));
47+
48+
this.beginnerCourses$ = courses$
3949
.pipe(
4050
map(courses => courses.filter(course => course.category == 'BEGINNER'))
4151
);
4252

43-
this.advancedCourses$ = this.coursesService.entities$
53+
54+
this.advancedCourses$ = courses$
4455
.pipe(
4556
map(courses => courses.filter(course => course.category == 'ADVANCED'))
4657
);
4758

48-
this.promoTotal$ = this.coursesService.entities$
59+
this.promoTotal$ = courses$
4960
.pipe(
5061
map(courses => courses.filter(course => course.promo).length)
5162
);

src/app/courses/services/course-entity.service.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/app/courses/services/courses-data.service.ts

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/app/courses/services/courses.resolver.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)