Skip to content

Commit dbf721a

Browse files
feature: adopt Angular 17 control-flow syntax (@if/@for), fix Karma test polyfills, add CommentPipe specs
Co-Authored-By: Eddie Mattout <eddie.mattout@cognition.ai>
1 parent 78c3cc3 commit dbf721a

18 files changed

Lines changed: 266 additions & 351 deletions

.travis.yml

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

angular.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
"builder": "@angular-devkit/build-angular:karma",
9090
"options": {
9191
"main": "src/test.ts",
92+
"polyfills": ["zone.js", "zone.js/testing"],
9293
"tsConfig": "tsconfig.spec.json",
9394
"karmaConfig": "karma.conf.js",
9495
"assets": [

karma.conf.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ module.exports = function (config) {
2626
logLevel: config.LOG_INFO,
2727
autoWatch: true,
2828
browsers: ['Chrome'],
29+
customLaunchers: {
30+
ChromeHeadlessNoSandbox: {
31+
base: 'ChromeHeadless',
32+
flags: ['--no-sandbox', '--disable-gpu']
33+
}
34+
},
2935
singleRun: false,
3036
restartOnFileChange: true
3137
});

package-lock.json

Lines changed: 0 additions & 157 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
<header>
2-
<div id="header">
3-
<a class="home-link" routerLink="/news/1" routerLinkActive="active" (click)="scrollTop()">
4-
<div class="logo-inner"></div>
5-
<img class="logo" src="assets/images/logo.svg" alt="Logo">
6-
</a>
7-
<div class="header-text">
8-
<div class="left">
9-
<span class="header-nav">
10-
<a routerLink="/newest/1" routerLinkActive="active" (click)="scrollTop()">new</a>
11-
|
12-
<a routerLink="/show/1" routerLinkActive="active" (click)="scrollTop()">show</a>
13-
|
14-
<a routerLink="/ask/1" routerLinkActive="active" (click)="scrollTop()">ask</a>
15-
|
16-
<a routerLink="/jobs/1" routerLinkActive="active" (click)="scrollTop()">jobs</a>
17-
</span>
18-
</div>
19-
</div>
20-
<div class="info">
21-
<img class="settings" src="assets/images/cog.svg" alt="Settings" (click)="toggleSettings()">
2+
<div id="header">
3+
<a class="home-link" routerLink="/news/1" routerLinkActive="active" (click)="scrollTop()">
4+
<div class="logo-inner"></div>
5+
<img class="logo" src="assets/images/logo.svg" alt="Logo">
6+
</a>
7+
<div class="header-text">
8+
<div class="left">
9+
<span class="header-nav">
10+
<a routerLink="/newest/1" routerLinkActive="active" (click)="scrollTop()">new</a>
11+
|
12+
<a routerLink="/show/1" routerLinkActive="active" (click)="scrollTop()">show</a>
13+
|
14+
<a routerLink="/ask/1" routerLinkActive="active" (click)="scrollTop()">ask</a>
15+
|
16+
<a routerLink="/jobs/1" routerLinkActive="active" (click)="scrollTop()">jobs</a>
17+
</span>
2218
</div>
2319
</div>
24-
<app-settings *ngIf="settings.showSettings"></app-settings>
25-
</header>
20+
<div class="info">
21+
<img class="settings" src="assets/images/cog.svg" alt="Settings" (click)="toggleSettings()">
22+
</div>
23+
</div>
24+
@if (settings.showSettings) {
25+
<app-settings></app-settings>
26+
}
27+
</header>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ import { Component } from '@angular/core';
33
import { SettingsService } from '../../shared/services/settings.service';
44
import { Settings } from '../../shared/models/settings';
55
import { SettingsComponent } from '../settings/settings.component';
6-
import { NgIf } from '@angular/common';
6+
77
import { RouterLink, RouterLinkActive } from '@angular/router';
88

99
@Component({
1010
selector: 'app-header',
1111
templateUrl: './header.component.html',
1212
styleUrls: ['./header.component.scss'],
1313
standalone: true,
14-
imports: [RouterLink, RouterLinkActive, NgIf, SettingsComponent]
14+
imports: [RouterLink, RouterLinkActive, SettingsComponent]
1515
})
1616
export class HeaderComponent {
1717
settings: Settings;
Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,40 @@
11
<div class="main-content">
2-
<app-loader *ngIf="!items && !errorMessage"></app-loader>
3-
<app-error-message [message]="errorMessage" *ngIf="!items && errorMessage !==''"></app-error-message>
2+
@if (!items && !errorMessage) {
3+
<app-loader></app-loader>
4+
}
5+
@if (!items && errorMessage !=='') {
6+
<app-error-message [message]="errorMessage"></app-error-message>
7+
}
48

5-
<div *ngIf="items">
6-
<p class="job-header" *ngIf="feedType === 'jobs'">
7-
These are jobs at startups that were funded by Y Combinator.
8-
You can also get a job at a YC startup through <a href="https://triplebyte.com/?ref=yc_jobs">Triplebyte</a>.
9-
</p>
10-
<ol *ngIf="feedType !== 'new'" [class.list-margin]="feedType !== 'jobs'" start="{{ listStart }}">
11-
<li *ngFor="let item of items" class="post">
12-
<app-item class="item-block" [item]="item"></app-item>
13-
</li>
14-
</ol>
15-
<div class="nav">
16-
<a *ngIf="listStart !== 1" [routerLink]="['/' + feedType, pageNum - 1]" routerLinkActive="active" class="prev">
17-
‹ Prev
18-
</a>
19-
<a *ngIf="items.length === 30" [routerLink]="['/' + feedType, pageNum + 1]" routerLinkActive="active" class="more">
20-
More ›
21-
</a>
9+
@if (items) {
10+
<div>
11+
@if (feedType === 'jobs') {
12+
<p class="job-header">
13+
These are jobs at startups that were funded by Y Combinator.
14+
You can also get a job at a YC startup through <a href="https://triplebyte.com/?ref=yc_jobs">Triplebyte</a>.
15+
</p>
16+
}
17+
@if (feedType !== 'new') {
18+
<ol [class.list-margin]="feedType !== 'jobs'" start="{{ listStart }}">
19+
@for (item of items; track item) {
20+
<li class="post">
21+
<app-item class="item-block" [item]="item"></app-item>
22+
</li>
23+
}
24+
</ol>
25+
}
26+
<div class="nav">
27+
@if (listStart !== 1) {
28+
<a [routerLink]="['/' + feedType, pageNum - 1]" routerLinkActive="active" class="prev">
29+
‹ Prev
30+
</a>
31+
}
32+
@if (items.length === 30) {
33+
<a [routerLink]="['/' + feedType, pageNum + 1]" routerLinkActive="active" class="more">
34+
More ›
35+
</a>
36+
}
37+
</div>
2238
</div>
23-
</div>
39+
}
2440
</div>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import { Story } from '../../shared/models/story';
77
import { ItemComponent } from '../item/item.component';
88
import { ErrorMessageComponent } from '../../shared/components/error-message/error-message.component';
99
import { LoaderComponent } from '../../shared/components/loader/loader.component';
10-
import { NgIf, NgFor } from '@angular/common';
10+
1111

1212
@Component({
1313
selector: 'app-feed',
1414
templateUrl: './feed.component.html',
1515
styleUrls: ['./feed.component.scss'],
1616
standalone: true,
17-
imports: [NgIf, LoaderComponent, ErrorMessageComponent, NgFor, ItemComponent, RouterLinkActive, RouterLink]
17+
imports: [LoaderComponent, ErrorMessageComponent, ItemComponent, RouterLinkActive, RouterLink]
1818
})
1919

2020
export class FeedComponent implements OnInit {

0 commit comments

Comments
 (0)