import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { NavigationEnd, Router, RouterModule } from '@angular/router'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; @Component({ selector: 'app-footer', standalone: true, imports: [CommonModule, FormsModule, RouterModule, FontAwesomeModule], templateUrl: './footer.component.html', styleUrl: './footer.component.scss', }) 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) { 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 } }