File tree 2 files changed +37
-19
lines changed
2 files changed +37
-19
lines changed Original file line number Diff line number Diff line change @@ -8,27 +8,33 @@ <h1>resource() Demo</h1>
8
8
< div class ="course-header ">
9
9
10
10
< 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 >
12
13
</ div >
13
14
14
15
</ div >
15
16
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
+ }
32
38
33
39
< button class ="btn reload-btn " (click) ="reload() ">
34
40
Reload Lessons
Original file line number Diff line number Diff line change @@ -16,14 +16,26 @@ export class ResourceDemoComponent {
16
16
17
17
search = signal < string > ( '' ) ;
18
18
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
+ } ) ;
20
33
21
34
constructor ( ) {
22
35
23
36
effect ( ( ) => {
24
37
console . log ( 'searching lessons:' , this . search ( ) ) ;
25
38
} )
26
-
27
39
}
28
40
29
41
searchLessons ( search : string ) {
You can’t perform that action at this time.
0 commit comments