diff --git a/src/app/components/challenge-notification/challenge-notification.component.ts b/src/app/components/challenge-notification/challenge-notification.component.ts index 7c5ca57..7c4130d 100644 --- a/src/app/components/challenge-notification/challenge-notification.component.ts +++ b/src/app/components/challenge-notification/challenge-notification.component.ts @@ -1,5 +1,6 @@ import { Component, Input, Output, EventEmitter, inject } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { Router } from '@angular/router'; import { Challenge } from '../../models/challenge.models'; import { ChallengeService } from '../../services/challenge.service'; import { finalize } from 'rxjs'; @@ -19,6 +20,7 @@ export class ChallengeNotificationComponent { @Output() close = new EventEmitter(); private readonly challengeService = inject(ChallengeService); + private readonly router = inject(Router); acceptingChallenge = false; decliningChallenge = false; @@ -35,8 +37,13 @@ export class ChallengeNotificationComponent { this.challengeService.acceptChallenge(this.challenge.id) .pipe(finalize(() => (this.acceptingChallenge = false))) .subscribe({ - next: () => { - this.accept.emit(this.challenge); + next: (acceptedChallenge) => { + this.accept.emit(acceptedChallenge); + if (acceptedChallenge.gameId) { + void this.router.navigate(['/game', acceptedChallenge.gameId]); + } else { + this.errorMessage = 'Challenge accepted, but no game was created.'; + } }, error: (error) => { this.errorMessage = getErrorMessage(error, 'Failed to accept challenge'); diff --git a/src/app/pages/welcome/nav-export.html b/src/app/pages/welcome/nav-export.html new file mode 100644 index 0000000..4bbe709 --- /dev/null +++ b/src/app/pages/welcome/nav-export.html @@ -0,0 +1,700 @@ + + + + + +NowChess Nav — Logged In + + + + + + + + + +
+ + + + + + + +