fix: NCWF-2 bugs and desing fixes (#7)
Co-authored-by: Lala, Shahd <Shahd.Lala@sybit.de> Reviewed-on: #7
This commit was merged in pull request #7.
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<div class="form-group">
|
||||
<label for="targetUsername">Opponent Username</label>
|
||||
<input type="text" id="targetUsername" formControlName="targetUsername"
|
||||
placeholder="Enter opponent's username" [disabled]="loading" required />
|
||||
placeholder="Enter opponent's username" required />
|
||||
<small *ngIf="form.get('targetUsername')?.hasError('required') && form.get('targetUsername')?.touched">
|
||||
Username is required
|
||||
</small>
|
||||
@@ -24,7 +24,7 @@
|
||||
<!-- Player Color Selection -->
|
||||
<div class="form-group">
|
||||
<label for="color">Play as</label>
|
||||
<select id="color" formControlName="color" [disabled]="loading">
|
||||
<select id="color" formControlName="color">
|
||||
<option value="white">White</option>
|
||||
<option value="black">Black</option>
|
||||
<option value="random">Random</option>
|
||||
@@ -34,7 +34,7 @@
|
||||
<!-- Time Control Mode Selection -->
|
||||
<div class="form-group">
|
||||
<label for="timeMode">Time Control</label>
|
||||
<select id="timeMode" formControlName="timeMode" [disabled]="loading">
|
||||
<select id="timeMode" formControlName="timeMode">
|
||||
<option value="blitz">Blitz</option>
|
||||
<option value="rapid">Rapid</option>
|
||||
<option value="classical">Classical</option>
|
||||
@@ -58,13 +58,11 @@
|
||||
<div class="form-row">
|
||||
<div class="form-col">
|
||||
<label for="limitMinutes">Time (minutes)</label>
|
||||
<input type="number" id="limitMinutes" formControlName="limitMinutes" min="1" max="1000"
|
||||
[disabled]="loading" />
|
||||
<input type="number" id="limitMinutes" formControlName="limitMinutes" min="1" max="1000" />
|
||||
</div>
|
||||
<div class="form-col">
|
||||
<label for="incrementSeconds">Increment (seconds)</label>
|
||||
<input type="number" id="incrementSeconds" formControlName="incrementSeconds" min="0" max="300"
|
||||
[disabled]="loading" />
|
||||
<input type="number" id="incrementSeconds" formControlName="incrementSeconds" min="0" max="300" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -72,7 +70,7 @@
|
||||
<!-- TTL (Time to Live) -->
|
||||
<div class="form-group">
|
||||
<label for="ttlSeconds">Challenge Expires In</label>
|
||||
<select id="ttlSeconds" formControlName="ttlSeconds" [disabled]="loading">
|
||||
<select id="ttlSeconds" formControlName="ttlSeconds">
|
||||
<option *ngFor="let ttl of ttlOptions" [value]="ttl.seconds">
|
||||
{{ ttl.label }}
|
||||
</option>
|
||||
|
||||
@@ -124,11 +124,11 @@ export class ChallengeCreateDialogComponent implements OnInit, OnDestroy {
|
||||
|
||||
this.errorMessage = '';
|
||||
this.loading = true;
|
||||
this.form.disable();
|
||||
|
||||
const limitSeconds = Math.round((this.form.get('limitMinutes')?.value || 0) * 60);
|
||||
const incrementSeconds = this.form.get('incrementSeconds')?.value || 0;
|
||||
const ttlSeconds = this.form.get('ttlSeconds')?.value;
|
||||
const color = (this.form.get('color')?.value || 'random') as PlayerColor;
|
||||
const limitSeconds = Math.round((this.form.getRawValue().limitMinutes || 0) * 60);
|
||||
const { incrementSeconds, ttlSeconds, color: rawColor } = this.form.getRawValue();
|
||||
const color = (rawColor || 'random') as PlayerColor;
|
||||
|
||||
this.challengeService.sendChallenge(targetUsername, {
|
||||
timeControl: {
|
||||
@@ -138,7 +138,7 @@ export class ChallengeCreateDialogComponent implements OnInit, OnDestroy {
|
||||
color,
|
||||
ttlSeconds: ttlSeconds > 0 ? ttlSeconds : undefined
|
||||
})
|
||||
.pipe(finalize(() => (this.loading = false)))
|
||||
.pipe(finalize(() => { this.loading = false; this.form.enable(); }))
|
||||
.subscribe({
|
||||
next: (challenge) => {
|
||||
// Challenge sent successfully - navigate to challenges page to view status
|
||||
|
||||
Reference in New Issue
Block a user