diff --git a/src/app/core/services/seo/content.ts b/src/app/core/services/seo/content.ts index e544952..62f59e1 100755 --- a/src/app/core/services/seo/content.ts +++ b/src/app/core/services/seo/content.ts @@ -10,17 +10,17 @@ const seoContent: { } = { '/': { de: { - title: 'Esser Web Engineering | Senior Angular Architekt', + title: 'Esser Web Engineering | Freelance Senior Angular Architekt', description: - 'Senior Angular Architekt & Web Engineering. Spezialisiert auf den Aufbau skalierbarer Enterprise-Anwendungen, die Optimierung von Performance-Engpässen und die Lieferung hochkarätiger Angular-Lösungen.', + 'Freelance Senior Angular Architekt. Spezialisiert auf High-Performance Architekturen und die Rettung komplexer Legacy-Codebases. ROI-fokussierte technische Exzellenz für Enterprise-Projekte.', imageUrl: 'https://tricalculator-images.s3.eu-central-1.amazonaws.com/website/esser-web-engineering-logo-text-og-moz.jpg', type: 'website', }, en: { - title: 'Esser Web Engineering | Senior Angular Architect', + title: 'Esser Web Engineering | Freelance Senior Angular Architect', description: - 'Senior Angular Architect & Web Engineering. Specialized in building scalable enterprise applications, optimizing performance bottlenecks, and delivering high-quality Angular solutions.', + 'Freelance Senior Angular Architect. Specialized in high-performance architectures and rescuing complex legacy codebases. ROI-focused technical excellence for enterprise projects.', imageUrl: 'https://tricalculator-images.s3.eu-central-1.amazonaws.com/website/esser-web-engineering-logo-text-og-moz.jpg', type: 'website', diff --git a/src/app/features/about/about/about.component.html b/src/app/features/about/about/about.component.html index 9c2a037..c8bc6ae 100755 --- a/src/app/features/about/about/about.component.html +++ b/src/app/features/about/about/about.component.html @@ -4,9 +4,6 @@ >

Über Mich diff --git a/src/app/features/home/home/home.component.html b/src/app/features/home/home/home.component.html index 5e34a79..4f3416b 100755 --- a/src/app/features/home/home/home.component.html +++ b/src/app/features/home/home/home.component.html @@ -152,7 +152,7 @@
-
+
@defer (hydrate on viewport; prefetch on idle) { } @placeholder { diff --git a/src/app/layout/header/header.component.ts b/src/app/layout/header/header.component.ts index 8838722..b125248 100755 --- a/src/app/layout/header/header.component.ts +++ b/src/app/layout/header/header.component.ts @@ -70,6 +70,8 @@ export class HeaderComponent implements OnInit, AfterViewInit, OnDestroy { homeRoute: string = '/'; animationsDisabled = true; isInitialLoad = true; // New flag to track initial load + private scrollTimeout: any; + private initialLoadTimeout: any; constructor( private router: Router, @@ -108,7 +110,7 @@ export class HeaderComponent implements OnInit, AfterViewInit, OnDestroy { // Mark initial load as complete and enable animations after view is stable if (isPlatformBrowser(this.platformId)) { - setTimeout(() => { + this.initialLoadTimeout = setTimeout(() => { this.isInitialLoad = false; this.animationsDisabled = false; }, 100); @@ -118,6 +120,8 @@ export class HeaderComponent implements OnInit, AfterViewInit, OnDestroy { ngOnDestroy(): void { this.destroy.next(); this.destroy.complete(); + if (this.scrollTimeout) clearTimeout(this.scrollTimeout); + if (this.initialLoadTimeout) clearTimeout(this.initialLoadTimeout); } updateScreenState(width: number): void { @@ -230,13 +234,15 @@ export class HeaderComponent implements OnInit, AfterViewInit, OnDestroy { navigateAndScroll() { this.router.navigate(['/']).then(() => { - setTimeout(() => this.scrollToElement('ueberMich'), 0); + if (this.scrollTimeout) clearTimeout(this.scrollTimeout); + this.scrollTimeout = setTimeout(() => this.scrollToElement('ueberMich'), 50); }); } navigateAndScrollKontakt() { this.router.navigate(['/']).then(() => { - setTimeout(() => this.scrollToElement('kontakt'), 0); + if (this.scrollTimeout) clearTimeout(this.scrollTimeout); + this.scrollTimeout = setTimeout(() => this.scrollToElement('kontakt'), 50); }); } diff --git a/src/app/shared/components/kontakt/kontakt.component.ts b/src/app/shared/components/kontakt/kontakt.component.ts index 637e9b8..5482049 100755 --- a/src/app/shared/components/kontakt/kontakt.component.ts +++ b/src/app/shared/components/kontakt/kontakt.component.ts @@ -1,6 +1,7 @@ import { Component, Inject, + HostListener, OnDestroy, OnInit, PLATFORM_ID, @@ -60,9 +61,6 @@ export class KontaktComponent implements OnInit, OnDestroy { ngOnInit() { this.contactForm = this.formService.getForm(); this.initializeFormControls(); - if (isPlatformBrowser(this.platformId)) { - window.addEventListener('online', this.handleOnline.bind(this)); - } } ngOnDestroy() { @@ -73,6 +71,7 @@ export class KontaktComponent implements OnInit, OnDestroy { this.destroy$.complete(); } + @HostListener('window:online') handleOnline(): void { const pendingFormData = localStorage.getItem('pendingFormData'); if (pendingFormData) { diff --git a/src/index.html b/src/index.html index ccbd530..256f004 100755 --- a/src/index.html +++ b/src/index.html @@ -13,18 +13,18 @@ - Esser Web Engineering | Senior Angular Architekt + Esser Web Engineering | Freelance Senior Angular Architekt