Skip to content

Commit 0d4199f

Browse files
committed
new lessons Angular 19
1 parent 1a91a6d commit 0d4199f

File tree

2 files changed

+37
-19
lines changed

2 files changed

+37
-19
lines changed

src/app/resource-demo/resource-demo.component.html

+23-17
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,33 @@ <h1>resource() Demo</h1>
88
<div class="course-header">
99

1010
<div class="form-control">
11-
<input placeholder="Search lessons" (keydown)="searchLessons(input.value)" #input>
11+
<input placeholder="Search lessons"
12+
(keydown)="searchLessons(input.value)" #input>
1213
</div>
1314

1415
</div>
1516

16-
<div class="table-container">
17-
<table class="results-table">
18-
@for(lesson of lessons(); track lesson.id) {
19-
<tr>
20-
<td>
21-
{{lesson.description}}
22-
</td>
23-
</tr>
24-
}
25-
@empty {
26-
<div class="no-lessons">
27-
No lessons found.
28-
</div>
29-
}
30-
</table>
31-
</div>
17+
@if(lessons.isLoading()) {
18+
<mat-spinner class="loading"/>
19+
}
20+
@else {
21+
<div class="table-container">
22+
<table class="results-table">
23+
@for(lesson of lessons.value(); track lesson.id) {
24+
<tr>
25+
<td>
26+
{{lesson.description}}
27+
</td>
28+
</tr>
29+
}
30+
@empty {
31+
<div class="no-lessons">
32+
No lessons found.
33+
</div>
34+
}
35+
</table>
36+
</div>
37+
}
3238

3339
<button class="btn reload-btn" (click)="reload()">
3440
Reload Lessons

src/app/resource-demo/resource-demo.component.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,26 @@ export class ResourceDemoComponent {
1616

1717
search = signal<string>('');
1818

19-
lessons = signal<Lesson[]>([]);
19+
lessons = resource<Lesson[], {search:string}>({
20+
request: () => ({
21+
search: this.search()
22+
}),
23+
loader: async ({request, abortSignal}) => {
24+
const response = await
25+
fetch(`${this.env.apiRoot}/search-lessons?query=${request.search}&courseId=18`,
26+
{
27+
signal: abortSignal
28+
});
29+
const json = await response.json();
30+
return json.lessons;
31+
}
32+
});
2033

2134
constructor() {
2235

2336
effect(() => {
2437
console.log('searching lessons:', this.search() );
2538
})
26-
2739
}
2840

2941
searchLessons(search: string) {

0 commit comments

Comments
 (0)