Skip to content

Commit 354b894

Browse files
committed
add loading spinners
1 parent 2aa201d commit 354b894

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

ng-app/src/app/events/events-list/events-list.component.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,11 @@
44
width: 40rem;
55
margin: 2rem auto;
66
}
7+
8+
.progress {
9+
display: inline-block;
10+
}
11+
12+
.progress-wrapper {
13+
text-align: center;
14+
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
<div *ngIf="isLoading" class="progress-wrapper">
2+
<mat-spinner [diameter]="50" [color]="'accent'" class="progress">
3+
</mat-spinner>
4+
</div>
5+
16
<div *ngIf="events$ | async as events">
27
<div *ngFor="let event of events" class="events-list">
3-
<app-events-item
4-
[event]="event"
5-
(clickEvent)="handleClickEvent($event)"
6-
></app-events-item>
8+
<app-events-item [event]="event" (clickEvent)="handleClickEvent($event)"></app-events-item>
79
</div>
810
</div>

ng-app/src/app/events/events-list/events-list.component.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Component, OnInit, Inject } from '@angular/core';
22
import { AuthService } from 'src/app/auth/auth.service';
33
import { EventsService } from '../events.service';
44
import { combineLatest, Observable } from 'rxjs';
5-
import { map } from 'rxjs/operators';
5+
import { map, tap } from 'rxjs/operators';
66
import { MatDialog } from '@angular/material';
77
import { Events } from 'src/app/generated/graphql';
88
import { EventDetailDialogComponent } from './event-detail-dialog/event-detail-dialog.component';
@@ -13,6 +13,7 @@ import { EventDetailDialogComponent } from './event-detail-dialog/event-detail-d
1313
})
1414
export class EventsListComponent implements OnInit {
1515
events$: Observable<[Events.Events, string][]>;
16+
isLoading = true;
1617

1718
constructor(
1819
private readonly authService: AuthService,
@@ -23,9 +24,10 @@ export class EventsListComponent implements OnInit {
2324
this.eventsService.getEvents$(),
2425
this.authService.currentUserId$()
2526
).pipe(
27+
tap(() => this.isLoading = false),
2628
map(([events, uid]) => {
2729
return events.map(e => [e, uid]);
28-
})
30+
}),
2931
);
3032
}
3133

ng-app/src/app/shared/shared.module.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import {
1111
MatSnackBarModule,
1212
MatMenuModule,
1313
MatDialogModule,
14-
MatDividerModule
14+
MatDividerModule,
15+
MatProgressSpinnerModule,
1516
} from '@angular/material';
1617
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
1718

@@ -30,6 +31,7 @@ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
3031
MatMenuModule,
3132
MatDialogModule,
3233
MatDividerModule,
34+
MatProgressSpinnerModule,
3335
],
3436
exports: [
3537
CommonModule,
@@ -45,6 +47,7 @@ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4547
MatMenuModule,
4648
MatDialogModule,
4749
MatDividerModule,
50+
MatProgressSpinnerModule,
4851
]
4952
})
5053
export class SharedModule {}

0 commit comments

Comments
 (0)