refactor: finalize bootstrap-driven layout and widget runtime

This commit is contained in:
sdarbinyan
2026-07-05 04:17:31 +04:00
parent 6550250d13
commit c901ec1e49
19 changed files with 697 additions and 181 deletions

View File

@@ -1,9 +1,11 @@
import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject } from '@angular/core';
import { Router } from '@angular/router';
import { SectionConfig } from '../../shared/models/config';
import { CatalogCategoryGridComponent } from '../../features/website/catalog/components/category-grid/category-grid.component';
import { CategoriesWidgetData } from '../contracts/widget-data.contract';
import { Category } from '../../core/categories/models/category-domain.model';
import { LanguageService } from '../../services/language.service';
@Component({
selector: 'app-categories-widget',
@@ -36,11 +38,15 @@ import { Category } from '../../core/categories/models/category-domain.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class CategoriesWidgetComponent {
private readonly router = inject(Router);
private readonly languageService = inject(LanguageService);
@Input() section: SectionConfig | null = null;
@Input() data: CategoriesWidgetData | null = null;
@Output() categorySelected = new EventEmitter<Category>();
onCategorySelected(category: Category): void {
this.categorySelected.emit(category);
this.router.navigate([`/${this.languageService.currentLanguage()}/catalog`, category.id]);
}
}