2026-02-26 21:54:21 +04:00
|
|
|
import { Component, ChangeDetectionStrategy, Renderer2, inject, DOCUMENT } from '@angular/core';
|
2026-02-14 00:45:17 +04:00
|
|
|
import { Router, RouterLink, RouterLinkActive } from '@angular/router';
|
2026-01-18 18:57:06 +04:00
|
|
|
import { CartService } from '../../services';
|
|
|
|
|
import { environment } from '../../../environments/environment';
|
|
|
|
|
import { LogoComponent } from '../logo/logo.component';
|
|
|
|
|
import { LanguageSelectorComponent } from '../language-selector/language-selector.component';
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'app-header',
|
2026-02-19 01:23:25 +04:00
|
|
|
imports: [RouterLink, RouterLinkActive, LogoComponent, LanguageSelectorComponent],
|
2026-01-18 18:57:06 +04:00
|
|
|
templateUrl: './header.component.html',
|
2026-02-19 01:23:25 +04:00
|
|
|
styleUrls: ['./header.component.scss'],
|
|
|
|
|
changeDetection: ChangeDetectionStrategy.OnPush
|
2026-01-18 18:57:06 +04:00
|
|
|
})
|
|
|
|
|
export class HeaderComponent {
|
|
|
|
|
cartItemCount;
|
|
|
|
|
menuOpen = false;
|
|
|
|
|
brandName = environment.brandFullName;
|
|
|
|
|
logo = environment.logo;
|
|
|
|
|
isnovo = environment.theme === 'novo';
|
|
|
|
|
|
2026-02-26 21:54:21 +04:00
|
|
|
private renderer = inject(Renderer2);
|
|
|
|
|
private document = inject(DOCUMENT);
|
|
|
|
|
|
2026-02-14 00:45:17 +04:00
|
|
|
constructor(private cartService: CartService, private router: Router) {
|
2026-01-18 18:57:06 +04:00
|
|
|
this.cartItemCount = this.cartService.itemCount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
toggleMenu(): void {
|
|
|
|
|
this.menuOpen = !this.menuOpen;
|
2026-02-26 21:54:21 +04:00
|
|
|
if (this.menuOpen) {
|
|
|
|
|
this.renderer.addClass(this.document.body, 'dexar-menu-open');
|
|
|
|
|
} else {
|
|
|
|
|
this.renderer.removeClass(this.document.body, 'dexar-menu-open');
|
|
|
|
|
}
|
2026-01-18 18:57:06 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closeMenu(): void {
|
|
|
|
|
this.menuOpen = false;
|
2026-02-26 21:54:21 +04:00
|
|
|
this.renderer.removeClass(this.document.body, 'dexar-menu-open');
|
2026-01-18 18:57:06 +04:00
|
|
|
}
|
2026-02-14 00:45:17 +04:00
|
|
|
|
|
|
|
|
navigateToSearch(): void {
|
|
|
|
|
this.router.navigate(['/search']);
|
|
|
|
|
}
|
2026-02-14 18:38:25 +04:00
|
|
|
|
|
|
|
|
navigateToCatalog(): void {
|
|
|
|
|
this.closeMenu();
|
|
|
|
|
this.router.navigate(['/']).then(() => {
|
|
|
|
|
setTimeout(() => {
|
2026-02-26 21:54:21 +04:00
|
|
|
this.document.getElementById('catalog')?.scrollIntoView({ behavior: 'smooth' });
|
2026-02-14 18:38:25 +04:00
|
|
|
}, 100);
|
|
|
|
|
});
|
|
|
|
|
}
|
2026-01-18 18:57:06 +04:00
|
|
|
}
|