From 5908b52037fd09b9e8421d76f5d342f1bdb9bedb Mon Sep 17 00:00:00 2001 From: rubikscraft Date: Sat, 17 Sep 2022 16:19:27 +0200 Subject: [PATCH] add loading bars for slow internet --- backend/src/managers/image/image.module.ts | 5 ++-- frontend/src/app/app.component.html | 1 + frontend/src/app/app.component.ts | 27 ++++++++++++++++++- .../components/header/header.component.html | 7 +++++ .../components/header/header.component.scss | 7 +++++ .../app/components/header/header.component.ts | 4 ++- .../app/components/header/header.module.ts | 2 ++ .../components/masonry/masonry.component.ts | 2 +- frontend/src/assets/css/loading.css | 10 +++++++ frontend/src/assets/css/normalize.min.css | 1 + frontend/src/assets/image/spinner.svg | 1 + frontend/src/index.html | 15 +++++++++-- 12 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 frontend/src/assets/css/loading.css create mode 100644 frontend/src/assets/css/normalize.min.css create mode 100644 frontend/src/assets/image/spinner.svg diff --git a/backend/src/managers/image/image.module.ts b/backend/src/managers/image/image.module.ts index e8d0df2..0afb5a6 100644 --- a/backend/src/managers/image/image.module.ts +++ b/backend/src/managers/image/image.module.ts @@ -64,7 +64,7 @@ export class ImageManagerModule implements OnModuleInit, OnModuleDestroy { this.logger.warn(result.print()); } - this.logger.log(`Cleaned up ${result} derivatives`); + if (result > 0) this.logger.log(`Cleaned up ${result} derivatives`); } private async cleanupExpired() { @@ -74,7 +74,8 @@ export class ImageManagerModule implements OnModuleInit, OnModuleDestroy { this.logger.warn(cleanedUp.print()); } - this.logger.log(`Cleaned up ${cleanedUp} expired images`); + if (cleanedUp > 0) + this.logger.log(`Cleaned up ${cleanedUp} expired images`); } onModuleDestroy() { diff --git a/frontend/src/app/app.component.html b/frontend/src/app/app.component.html index c2a1feb..bbf38e5 100644 --- a/frontend/src/app/app.component.html +++ b/frontend/src/app/app.component.html @@ -1,6 +1,7 @@ diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts index 5cd9b22..f761b31 100644 --- a/frontend/src/app/app.component.ts +++ b/frontend/src/app/app.component.ts @@ -5,7 +5,8 @@ import { ActivatedRoute, NavigationEnd, NavigationError, - Router, + NavigationStart, + Router } from '@angular/router'; import { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator'; import { RouteTransitionAnimations } from './app.animation'; @@ -24,6 +25,9 @@ export class AppComponent implements OnInit { @ViewChild(MatSidenav) sidebar: MatSidenav; + loading: boolean = false; + private loadingTimeout: number | null = null; + wrapContentWithContainer: boolean = true; sidebarPortal: Portal | undefined = undefined; @@ -54,6 +58,12 @@ export class AppComponent implements OnInit { @AutoUnsubscribe() private subscribeRouter() { return this.router.events.subscribe((event) => { + if (event instanceof NavigationStart) { + this.loadingStart(); + } + if (event instanceof NavigationEnd) { + this.loadingEnd(); + } if (event instanceof NavigationEnd) this.onNavigationEnd(event); if (event instanceof NavigationError) this.onNavigationError(event); }); @@ -87,6 +97,21 @@ export class AppComponent implements OnInit { this.updateSidebar(); } + private loadingStart() { + if (this.loadingTimeout !== null) clearTimeout(this.loadingTimeout); + + this.loadingTimeout = window.setTimeout(() => { + this.loading = true; + }, 500); + } + + private loadingEnd() { + if (this.loadingTimeout !== null) clearTimeout(this.loadingTimeout); + this.loadingTimeout = null; + + this.loading = false; + } + private updateSidebar() { if (!this.sidebar) return; diff --git a/frontend/src/app/components/header/header.component.html b/frontend/src/app/components/header/header.component.html index df89143..ef0e0a9 100644 --- a/frontend/src/app/components/header/header.component.html +++ b/frontend/src/app/components/header/header.component.html @@ -1,4 +1,11 @@ + +