This commit is contained in:
2025-04-06 21:49:44 +02:00
parent 7d64ee11bf
commit 466e1dcdce
44 changed files with 1780 additions and 1520 deletions

View File

@@ -1,9 +1,8 @@
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { NavigationEnd, Router, RouterModule } from '@angular/router';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { initFlowbite } from 'flowbite';
@Component({
selector: 'app-footer',
@@ -12,17 +11,62 @@ import { initFlowbite } from 'flowbite';
templateUrl: './footer.component.html',
styleUrl: './footer.component.scss',
})
export class FooterComponent {
export class FooterComponent implements OnInit {
privacyVisible = false;
termsVisible = false;
currentYear: number = new Date().getFullYear();
isHomeRoute = false;
constructor(private router: Router) {}
ngOnInit() {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
initFlowbite();
this.isHomeRoute = event.url === '/home';
}
});
// Listen for escape key to close drawers
document.addEventListener('keydown', event => {
if (event.key === 'Escape') {
this.closeDrawers();
}
});
}
// Toggle privacy drawer
togglePrivacy() {
this.termsVisible = false; // Close other drawer if open
this.privacyVisible = !this.privacyVisible;
this.toggleBodyScroll();
}
// Toggle terms drawer
toggleTerms() {
this.privacyVisible = false; // Close other drawer if open
this.termsVisible = !this.termsVisible;
this.toggleBodyScroll();
}
// Close all drawers
closeDrawers() {
this.privacyVisible = false;
this.termsVisible = false;
this.toggleBodyScroll();
}
// Prevent body scroll when drawer is open
private toggleBodyScroll() {
if (this.privacyVisible || this.termsVisible) {
document.body.style.overflow = 'hidden';
} else {
document.body.style.overflow = '';
}
}
// Clean up event listener on component destroy
ngOnDestroy() {
document.removeEventListener('keydown', () => {});
document.body.style.overflow = ''; // Ensure body scroll is restored
}
}