Skip to content

Commit 78c3cc3

Browse files
refactor: migrate to standalone components, provideRouter/provideServiceWorker, loadComponent lazy routes (feature: standalone)
Co-Authored-By: Eddie Mattout <eddie.mattout@cognition.ai>
1 parent a953d33 commit 78c3cc3

20 files changed

Lines changed: 107 additions & 160 deletions

src/app/app.component.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
import { Component } from '@angular/core';
2-
import { Router, NavigationEnd } from '@angular/router';
2+
import { Router, NavigationEnd, RouterOutlet } from '@angular/router';
33

44
import { SettingsService } from './shared/services/settings.service';
55
import { Settings } from './shared/models/settings';
6+
import { HeaderComponent } from './core/header/header.component';
7+
import { FooterComponent } from './core/footer/footer.component';
68

79
declare let ga: (...args: unknown[]) => void;
810

911
@Component({
10-
selector: 'app-root',
11-
templateUrl: './app.component.html',
12-
styleUrls: ['./app.component.scss']
12+
selector: 'app-root',
13+
templateUrl: './app.component.html',
14+
styleUrls: ['./app.component.scss'],
15+
standalone: true,
16+
imports: [RouterOutlet, HeaderComponent, FooterComponent]
1317
})
1418

1519
export class AppComponent {

src/app/app.module.ts

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

src/app/app.routes.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { Routes, RouterModule } from '@angular/router';
1+
import { Routes } from '@angular/router';
22

33
import { FeedComponent } from './feeds/feed/feed.component';
44

5-
const feedRoutes = [{
5+
const feedRoutes: Routes = [{
66
path: ':page',
77
component: FeedComponent
88
}];
99

10-
const routes: Routes = [
10+
export const routes: Routes = [
1111
{path: '', redirectTo: 'news/1', pathMatch: 'full'},
1212
{
1313
path: 'news',
@@ -34,10 +34,12 @@ const routes: Routes = [
3434
children: feedRoutes,
3535
data: {feedType: 'jobs'}
3636
},
37-
{path: 'item', loadChildren: () => import('./item-details/item-details.module').then(m => m.ItemDetailsModule)},
38-
{path: 'user', loadChildren: () => import('./user/user.module').then(m => m.UserModule)}
37+
{
38+
path: 'item/:id',
39+
loadComponent: () => import('./item-details/item-details.component').then(m => m.ItemDetailsComponent)
40+
},
41+
{
42+
path: 'user/:id',
43+
loadComponent: () => import('./user/user.component').then(m => m.UserComponent)
44+
}
3945
];
40-
41-
42-
// - Updated Export
43-
export const routing = RouterModule.forRoot(routes, {});

src/app/core/core.module.ts

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

src/app/core/footer/footer.component.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { Component } from '@angular/core';
22

33
@Component({
4-
selector: 'app-footer',
5-
templateUrl: './footer.component.html',
6-
styleUrls: ['./footer.component.scss']
4+
selector: 'app-footer',
5+
templateUrl: './footer.component.html',
6+
styleUrls: ['./footer.component.scss'],
7+
standalone: true
78
})
89
export class FooterComponent {
910

src/app/core/header/header.component.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@ import { Component } from '@angular/core';
22

33
import { SettingsService } from '../../shared/services/settings.service';
44
import { Settings } from '../../shared/models/settings';
5+
import { SettingsComponent } from '../settings/settings.component';
6+
import { NgIf } from '@angular/common';
7+
import { RouterLink, RouterLinkActive } from '@angular/router';
58

69
@Component({
7-
selector: 'app-header',
8-
templateUrl: './header.component.html',
9-
styleUrls: ['./header.component.scss']
10+
selector: 'app-header',
11+
templateUrl: './header.component.html',
12+
styleUrls: ['./header.component.scss'],
13+
standalone: true,
14+
imports: [RouterLink, RouterLinkActive, NgIf, SettingsComponent]
1015
})
1116
export class HeaderComponent {
1217
settings: Settings;

src/app/core/settings/settings.component.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { SettingsService } from '../../shared/services/settings.service';
44
import { Settings } from '../../shared/models/settings';
55

66
@Component({
7-
selector: 'app-settings',
8-
templateUrl: './settings.component.html',
9-
styleUrls: ['./settings.component.scss']
7+
selector: 'app-settings',
8+
templateUrl: './settings.component.html',
9+
styleUrls: ['./settings.component.scss'],
10+
standalone: true
1011
})
1112
export class SettingsComponent {
1213
settings: Settings;

src/app/feeds/feed/feed.component.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import { Component, OnInit } from '@angular/core';
22
import { Subscription } from 'rxjs';
3-
import { ActivatedRoute } from '@angular/router';
3+
import { ActivatedRoute, RouterLinkActive, RouterLink } from '@angular/router';
44

55
import { HackerNewsAPIService } from '../../shared/services/hackernews-api.service';
66
import { Story } from '../../shared/models/story';
7+
import { ItemComponent } from '../item/item.component';
8+
import { ErrorMessageComponent } from '../../shared/components/error-message/error-message.component';
9+
import { LoaderComponent } from '../../shared/components/loader/loader.component';
10+
import { NgIf, NgFor } from '@angular/common';
711

812
@Component({
9-
selector: 'app-feed',
10-
templateUrl: './feed.component.html',
11-
styleUrls: ['./feed.component.scss']
13+
selector: 'app-feed',
14+
templateUrl: './feed.component.html',
15+
styleUrls: ['./feed.component.scss'],
16+
standalone: true,
17+
imports: [NgIf, LoaderComponent, ErrorMessageComponent, NgFor, ItemComponent, RouterLinkActive, RouterLink]
1218
})
1319

1420
export class FeedComponent implements OnInit {

src/app/feeds/item/item.component.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@ import { Story } from '../../shared/models/story';
33

44
import { SettingsService } from '../../shared/services/settings.service';
55
import { Settings } from '../../shared/models/settings';
6+
import { CommentPipe } from '../../shared/pipes/comment.pipe';
7+
import { RouterLinkActive, RouterLink } from '@angular/router';
8+
import { NgStyle, NgIf } from '@angular/common';
69

710
@Component({
8-
selector: 'app-item',
9-
templateUrl: './item.component.html',
10-
styleUrls: ['./item.component.scss']
11+
selector: 'app-item',
12+
templateUrl: './item.component.html',
13+
styleUrls: ['./item.component.scss'],
14+
standalone: true,
15+
imports: [NgStyle, NgIf, RouterLinkActive, RouterLink, CommentPipe]
1116
})
1217
export class ItemComponent {
1318
@Input() item: Story;

src/app/item-details/comment/comment.component.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
import { Component, Input, OnInit } from '@angular/core';
22

33
import { Comment } from '../../shared/models/comment';
4+
import { RouterLinkActive, RouterLink } from '@angular/router';
5+
import { NgIf, NgFor } from '@angular/common';
46

57
@Component({
6-
selector: 'app-comment',
7-
templateUrl: './comment.component.html',
8-
styleUrls: ['./comment.component.scss']
8+
selector: 'app-comment',
9+
templateUrl: './comment.component.html',
10+
styleUrls: ['./comment.component.scss'],
11+
standalone: true,
12+
imports: [NgIf, RouterLinkActive, RouterLink, NgFor]
913
})
1014
export class CommentComponent implements OnInit {
1115
@Input() comment: Comment;

0 commit comments

Comments
 (0)