cleanup: remove tenant variant logic and enforce config-driven UI
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { NgComponentOutlet } from '@angular/common';
|
||||
import { Router } from '@angular/router';
|
||||
import { Observable } from 'rxjs';
|
||||
import { PageRenderModel } from '../../dynamic-renderer/page-renderer/page-renderer.model';
|
||||
import { WidgetRenderNode } from '../../dynamic-renderer/widget-host/widget-host.model';
|
||||
import { ResolvedWidget } from '../../widgets/contracts/widget-component.contract';
|
||||
import { WidgetHostService } from '../../dynamic-renderer/widget-host/widget-host.service';
|
||||
import { LanguageService } from '../../services/language.service';
|
||||
import { Category } from '../../core/categories/models/category-domain.model';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dynamic-page-layout',
|
||||
@@ -33,7 +36,7 @@ import { WidgetHostService } from '../../dynamic-renderer/widget-host/widget-hos
|
||||
@for (widget of section.widgets; track widget.id) {
|
||||
<div class="dynamic-widget" [attr.data-widget-type]="widget.type">
|
||||
@if (resolveWidget(widget, section, model.id) | async; as resolved) {
|
||||
<ng-container *ngComponentOutlet="$any(resolved).component; inputs: { section: $any(resolved).section, data: $any(resolved).data }"></ng-container>
|
||||
<ng-container *ngComponentOutlet="$any(resolved).component; inputs: { section: $any(resolved).section, data: $any(resolved).data }; outputs: { categorySelected: onCategorySelected.bind(this) }"></ng-container>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@@ -78,9 +81,17 @@ import { WidgetHostService } from '../../dynamic-renderer/widget-host/widget-hos
|
||||
export class DynamicPageLayoutComponent {
|
||||
@Input() model: PageRenderModel | null = null;
|
||||
|
||||
constructor(private readonly widgetHost: WidgetHostService) {}
|
||||
constructor(
|
||||
private readonly widgetHost: WidgetHostService,
|
||||
private readonly router: Router,
|
||||
private readonly languageService: LanguageService
|
||||
) {}
|
||||
|
||||
resolveWidget(widget: WidgetRenderNode, section: PageRenderModel['sections'][number], pageId: string): Observable<ResolvedWidget> {
|
||||
return this.widgetHost.resolveWidget(widget.source, section.source, pageId);
|
||||
}
|
||||
|
||||
onCategorySelected(category: Category): void {
|
||||
this.router.navigate([`/${this.languageService.currentLanguage()}/catalog`, category.id]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user