45 lines
1.3 KiB
TypeScript
Executable File
45 lines
1.3 KiB
TypeScript
Executable File
import { Component, Input, OnDestroy, Inject, ViewEncapsulation } from '@angular/core';
|
|
import { CommonModule } from '@angular/common';
|
|
import { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router';
|
|
import { DOCUMENT } from '@angular/common';
|
|
|
|
@Component({
|
|
selector: 'huapp-spinner',
|
|
standalone: true,
|
|
imports: [CommonModule],
|
|
templateUrl: './spinner.component.html',
|
|
encapsulation: ViewEncapsulation.None
|
|
})
|
|
export class SpinnerComponent implements OnDestroy {
|
|
public isSpinnerVisible = true;
|
|
|
|
@Input()
|
|
public backgroundColor = 'rgba(0, 115, 170, 0.69)';
|
|
|
|
constructor(
|
|
private router: Router,
|
|
@Inject(DOCUMENT) private document: Document
|
|
) {
|
|
this.router.events.subscribe(
|
|
event => {
|
|
if (event instanceof NavigationStart) {
|
|
this.isSpinnerVisible = true;
|
|
} else if (
|
|
event instanceof NavigationEnd ||
|
|
event instanceof NavigationCancel ||
|
|
event instanceof NavigationError
|
|
) {
|
|
this.isSpinnerVisible = false;
|
|
}
|
|
},
|
|
() => {
|
|
this.isSpinnerVisible = false;
|
|
}
|
|
);
|
|
}
|
|
|
|
ngOnDestroy(): void {
|
|
this.isSpinnerVisible = false;
|
|
}
|
|
}
|