From 1219599708494aa5e29ca5450c0551f223ab1c77 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Mon, 5 Jul 2021 11:49:48 +0200 Subject: [PATCH] feat: better display of region loading --- .../regionMenu/regionMenu.template.html | 15 +++++++++++++++ src/viewerModule/viewerCmp/viewerCmp.component.ts | 4 +++- .../viewerCmp/viewerCmp.template.html | 10 ++++------ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html b/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html index 20baf5d26..039b2cdb7 100644 --- a/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html +++ b/src/atlasComponents/parcellationRegion/regionMenu/regionMenu.template.html @@ -1,3 +1,5 @@ +<ng-template [ngIf]="region"> + <mat-card class="mat-elevation-z4"> <!-- rgbDarkmode must be checked for strict equality to true/false as if rgb is undefined, rgbDarkmode will be null/undefined @@ -218,3 +220,16 @@ </ng-template> </mat-expansion-panel> </ng-template> +</ng-template> + + +<ng-template [ngIf]="!region"> + <mat-card class="mat-elevation-z4"> + <h1 class="mat-h1 sidenav-cover-header-container"> + <spinner-cmp class="d-inline-block"></spinner-cmp> + <span class="text-muted"> + Loading region + </span> + </h1> + </mat-card> +</ng-template> \ No newline at end of file diff --git a/src/viewerModule/viewerCmp/viewerCmp.component.ts b/src/viewerModule/viewerCmp/viewerCmp.component.ts index 3d7d37f69..9c96eaa06 100644 --- a/src/viewerModule/viewerCmp/viewerCmp.component.ts +++ b/src/viewerModule/viewerCmp/viewerCmp.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, Inject, Input, OnDestroy, Optional, TemplateRef, ViewChild } from "@angular/core"; import { select, Store } from "@ngrx/store"; import {combineLatest, Observable, of, Subject, Subscription} from "rxjs"; -import {distinctUntilChanged, filter, map, shareReplay, startWith, switchMap } from "rxjs/operators"; +import {catchError, distinctUntilChanged, filter, map, shareReplay, startWith, switchMap } from "rxjs/operators"; import { viewerStateSetSelectedRegions } from "src/services/state/viewerState/actions"; import { viewerStateContextedSelectedRegionsSelector, @@ -77,6 +77,8 @@ import { ContextMenuService, TContextMenuReg } from "src/contextMenuModule"; context } }), + // in case detailed requests + catchError((err, obs) => of(r[0])), shareReplay(1), ) }) diff --git a/src/viewerModule/viewerCmp/viewerCmp.template.html b/src/viewerModule/viewerCmp/viewerCmp.template.html index bfcd94378..2092d5171 100644 --- a/src/viewerModule/viewerCmp/viewerCmp.template.html +++ b/src/viewerModule/viewerCmp/viewerCmp.template.html @@ -474,12 +474,10 @@ <!-- single region tmpl --> <ng-template #singleRegionTmpl let-region="region"> <!-- region detail --> - <ng-container *ngIf="region; else regionPlaceholderTmpl"> - <region-menu - [region]="region" - class="flex-grow-1 bs-border-box ml-15px-n mr-15px-n mat-elevation-z4"> - </region-menu> - </ng-container> + <region-menu + [region]="region" + class="flex-grow-1 bs-border-box ml-15px-n mr-15px-n mat-elevation-z4"> + </region-menu> </ng-template> -- GitLab