37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { CommonModule } from '@angular/common';
|
|
import { Component, DestroyRef, OnInit, inject } from '@angular/core';
|
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
import { FormsModule } from '@angular/forms';
|
|
import { ActivatedRoute, RouterLink } from '@angular/router';
|
|
import { ChessBoardComponent } from '../../components/chess-board/chess-board.component';
|
|
import { InputCardComponent } from '../../components/input-card/input-card.component';
|
|
import { PromotionDialogComponent } from '../../components/promotion-dialog/promotion-dialog.component';
|
|
import { GameFacade } from './game.facade';
|
|
|
|
@Component({
|
|
selector: 'app-game',
|
|
standalone: true,
|
|
imports: [CommonModule, FormsModule, RouterLink, ChessBoardComponent, InputCardComponent, PromotionDialogComponent],
|
|
providers: [GameFacade],
|
|
templateUrl: './game.component.html',
|
|
styleUrl: './game.component.css'
|
|
})
|
|
export class GameComponent implements OnInit {
|
|
private readonly route = inject(ActivatedRoute);
|
|
private readonly destroyRef = inject(DestroyRef);
|
|
readonly facade = inject(GameFacade);
|
|
|
|
ngOnInit(): void {
|
|
this.route.paramMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((paramMap) => {
|
|
const id = paramMap.get('gameId');
|
|
if (!id) {
|
|
this.facade.errorMessage = 'Missing gameId in route.';
|
|
this.facade.loading = false;
|
|
return;
|
|
}
|
|
|
|
this.facade.setGameId(id);
|
|
});
|
|
}
|
|
}
|