Ship the final German and English copy, compose every route from shared page primitives, and cover claims, parity and contact briefing in tests. Co-authored-by: Cursor <cursoragent@cursor.com>
22 lines
706 B
TypeScript
22 lines
706 B
TypeScript
import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
import { RouterLink } from '@angular/router';
|
|
import { type CtaCopy } from '../../core/content/content.contracts';
|
|
import { NavigationService } from '../../core/navigation/navigation.service';
|
|
|
|
@Component({
|
|
selector: 'app-cta-row',
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
imports: [RouterLink],
|
|
templateUrl: './cta-row.html',
|
|
styleUrl: './cta-row.scss',
|
|
})
|
|
export class CtaRow {
|
|
readonly ctas = input<readonly CtaCopy[]>([]);
|
|
|
|
private readonly navigation = inject(NavigationService);
|
|
|
|
protected link(cta: CtaCopy): unknown[] {
|
|
return cta.routeId ? this.navigation.link(cta.routeId) : [];
|
|
}
|
|
}
|