Skip to content

Commit 7b2b9e3

Browse files
committed
add loading to region
1 parent 6193005 commit 7b2b9e3

File tree

6 files changed

+44
-5
lines changed

6 files changed

+44
-5
lines changed

package-lock.json

Lines changed: 25 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"leaflet-webgl-heatmap": "^0.2.7",
3434
"lodash": "^4.17.20",
3535
"ngx-infinite-scroll": "^7.1.0",
36+
"ngx-skeleton-loader": "^2.9.1",
3637
"popper.js": "^1.16.1",
3738
"rxjs": "^6.6.3",
3839
"tslib": "^2.0.0",

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import { RegionComponent } from './components/region/region.component';
5252
import {MatMenuModule} from '@angular/material/menu';
5353
import {ClipboardModule} from '@angular/cdk/clipboard';
5454
import {MatSnackBarModule} from '@angular/material/snack-bar';
55+
import {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';
5556
@NgModule({
5657
declarations: [
5758
AppComponent,
@@ -101,6 +102,7 @@ import {MatSnackBarModule} from '@angular/material/snack-bar';
101102
MatMenuModule,
102103
ClipboardModule,
103104
MatSnackBarModule,
105+
NgxSkeletonLoaderModule
104106
],
105107
providers: [OscarItemsService, ConfigService, ItemStoreService],
106108
bootstrap: [AppComponent]
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
<mat-expansion-panel expanded="true" *ngIf="wikiData">
1+
<mat-expansion-panel *ngIf="wikiData || loading" expanded="true">
22
<mat-expansion-panel-header>
33
<mat-panel-title>
4-
{{wikiData.name}}
4+
<span *ngIf="wikiData">
5+
{{wikiData.name}}
6+
</span>
57
</mat-panel-title>
68
</mat-expansion-panel-header>
79
<div class="p-3 rounded bg-white w-100" style="max-height: 600px; overflow: auto" *ngIf="wikiData">
810
<img class="w-100" *ngFor="let pictureUrl of wikiData.pictures" src="{{pictureUrl}}" />
9-
<div class="mt-3">
11+
<div class="mt-3" *ngIf="wikiData.coatOfArmsUrl">
1012
<span>Coat of Arms:</span>
1113
<br>
12-
<img *ngIf="wikiData.coatOfArmsUrl" class="w-50 m-auto" src="{{wikiData.coatOfArmsUrl}}" />
14+
<img class="w-50 m-auto" src="{{wikiData.coatOfArmsUrl}}" />
1315
</div>
1416
<div class="mt-5 w-100 d-flex flex-column">
1517
<div *ngIf="wikiData.population" class="w-100 flex-row d-flex justify-content-between"><span>Population: </span><span>{{wikiData.population}}</span></div>
1618
<div *ngIf="wikiData.area" class="w-100 flex-row d-flex justify-content-between"><span>Area: </span><span>{{wikiData.area}} km²</span></div>
1719
<div *ngIf="wikiData.postalCode" class="w-100 flex-row d-flex justify-content-between"><span>PostalCode: </span><span>{{wikiData.postalCode}}</span></div>
1820
</div>
1921
</div>
22+
<ngx-skeleton-loader *ngIf="loading" [theme]="{height: '300px'}"></ngx-skeleton-loader>
2023
</mat-expansion-panel>
2124

2225

src/app/components/region/region.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export class RegionComponent implements OnInit {
1414
constructor(private wikiService: WikiServiceService, private zone: NgZone) { }
1515

1616

17+
visible = false;
18+
loading = false;
1719
wikiData: WikiData = null;
1820
ngOnInit(): void {
1921
displayRegion.asObservable().subscribe(async entity => {
@@ -22,7 +24,10 @@ export class RegionComponent implements OnInit {
2224
this.wikiData = null;
2325
return;
2426
}
27+
this.visible = true;
28+
this.loading = true;
2529
this.wikiData = await this.wikiService.getPictureUrls(entity);
30+
this.loading = false;
2631
});
2732
}
2833

src/app/components/search/search.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ export class SearchComponent implements OnInit {
143143
}
144144
}
145145
this.itemStore.setHighlightedItem(null);
146+
this.loading = true;
146147
this.oscarItemService.getRegion(fullQueryString).subscribe(async regions => {
147148
displayRegion.next(null);
148149
if (regions && regions.length > 0) {
@@ -151,6 +152,8 @@ export class SearchComponent implements OnInit {
151152
this.mapService.drawRegion(regions[0]);
152153
const region = regions[0];
153154
displayRegion.next(OscarItem.getValue(region, 'wikidata'));
155+
this.loading = false;
156+
this.error = false;
154157
} else {
155158
displayRegion.next(null);
156159
this.mapService.clearRegions();
@@ -159,6 +162,7 @@ export class SearchComponent implements OnInit {
159162
this.searchService.queryToDraw.next(fullQueryString);
160163
} else {
161164
this.error = true;
165+
this.loading = false;
162166
}
163167
});
164168
}

0 commit comments

Comments
 (0)