47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { Component } from '@angular/core';
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
import { environment } from './../environments/environment';
|
|
import { SwUpdate } from '@angular/service-worker';
|
|
import { MatIconRegistry } from '@angular/material/icon';
|
|
|
|
@Component({
|
|
selector: 'app-root',
|
|
templateUrl: './app.component.html',
|
|
styleUrls: ['./app.component.scss']
|
|
})
|
|
export class AppComponent {
|
|
version = environment.appVersion;
|
|
|
|
constructor(translate: TranslateService, updates: SwUpdate, iconRegistry: MatIconRegistry) {
|
|
iconRegistry.setDefaultFontSetClass('material-symbols-outlined');
|
|
translate.setDefaultLang('de');
|
|
translate.use('de');
|
|
this.update(updates);
|
|
}
|
|
|
|
update(updates: SwUpdate) {
|
|
console.log("Checking for updates: ", updates.isEnabled);
|
|
if (!updates.isEnabled) { return; }
|
|
|
|
updates.versionUpdates.subscribe(evt => {
|
|
|
|
switch (evt.type) {
|
|
case 'VERSION_DETECTED':
|
|
console.log(`Downloading new app version: ${evt.version.hash}`);
|
|
break;
|
|
case 'VERSION_READY':
|
|
console.log(`Current app version: ${evt.currentVersion.hash}`);
|
|
console.log(`New app version ready for use: ${evt.latestVersion.hash}`);
|
|
window.location.reload();
|
|
break;
|
|
case 'VERSION_INSTALLATION_FAILED':
|
|
console.log(`Failed to install app version '${evt.version.hash}': ${evt.error}`);
|
|
break;
|
|
case 'NO_NEW_VERSION_DETECTED':
|
|
break;
|
|
default:
|
|
}
|
|
});
|
|
}
|
|
}
|