feat: A Username must not be empty
authorKai Moritz <kai@juplo.de>
Sun, 25 Dec 2022 21:53:18 +0000 (22:53 +0100)
committerKai Moritz <kai@juplo.de>
Sun, 25 Dec 2022 21:53:18 +0000 (22:53 +0100)
src/app/user/user.component.html
src/app/user/user.component.ts

index b640cfd..3cfc8d3 100644 (file)
@@ -14,6 +14,7 @@
         <div *ngIf="usernameForm.errors?.['required']">
           Name is required.
         </div>
+        <div *ngIf="usernameForm.hasError('whitespace')">The username must not be empty</div>
       </div>
     </div>
     <button type="submit" class="btn btn-primary" (click)="updateName()" [disabled]="usernameForm.invalid">Pick Name</button>
index 0ec3026..23817da 100644 (file)
@@ -11,16 +11,22 @@ import { UserService } from "../user.service";
 })
 export class UserComponent {
 
-  usernameForm = new FormControl('', Validators.required);
+  usernameForm = new FormControl('', [ Validators.required, this.noWhitespaceValidator ]);
 
   updateName(): void {
     var input = this.usernameForm.getRawValue();
     if (input !== null) {
-      this.userService.setUser(input);
+      this.userService.setUser(input.trim());
       this.router.navigate(['chatrooms'])
     }
   }
 
+  noWhitespaceValidator(control: FormControl) {
+    const isWhitespace = (control.value || '').trim().length === 0;
+    const isValid = !isWhitespace;
+    return isValid ? null : { 'whitespace': true };
+  }
+
   constructor(
     private userService: UserService,
     private router: Router) {}