import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core'; import { CommonModule } from '@angular/common'; import { Card } from '@blackjack/models/blackjack.model'; import { PlayingCardComponent } from '../playing-card/playing-card.component'; @Component({ selector: 'app-dealer-hand', standalone: true, imports: [CommonModule, PlayingCardComponent], template: `

Croupier's Karten

@if (cards.length > 0) { @for (card of cardsWithState; track card.id) { } } @else {
Warte auf Spielstart...
}
`, changeDetection: ChangeDetectionStrategy.OnPush, }) export class DealerHandComponent implements OnChanges { @Input() cards: Card[] = []; cardsWithState: (Card & { isNew: boolean; id: string })[] = []; private lastCardCount = 0; ngOnChanges(changes: SimpleChanges): void { if (changes['cards']) { this.updateCardsWithState(); } } private updateCardsWithState(): void { const newCards = this.cards.length > this.lastCardCount; this.cardsWithState = this.cards.map((card, index) => { const isNew = newCards && index >= this.lastCardCount; return { ...card, isNew, id: `${card.suit}-${card.rank}-${index}`, }; }); this.lastCardCount = this.cards.length; } }