73 lines
2.0 KiB
TypeScript
73 lines
2.0 KiB
TypeScript
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
|
|
}
|
|
}
|