Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aparecendo duas mensagens, mas não deveria aparecer "Usuário deve ser em letra minúscula"

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeNão deveria aparecer "Usuário deve ser em letra minúscula"!

@Injectable({
  providedIn: 'root',
})
export class UsuarioExisteService {
  constructor(private novoUsuarioService: NovoUsuarioService) {}

  usuarioJaExiste() {
    return (control: AbstractControl) => {
      return control.valueChanges.pipe(
        switchMap((nomeUsuario) =>
          this.novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
        ),
        map((usuarioExiste) =>
          usuarioExiste ? { usuarioExistente: true } : null
        ),
        first()
      );
    };
  }
}
  ngOnInit(): void {
    this.novoUsuarioForm = this.formBuilder.group({
      email: ['', [Validators.required, Validators.email]],
      fullName: ['', [Validators.required, Validators.minLength(4)]],
      userName: [
        '',
        [minusculoValidator],
        [this.usuarioExisteService.usuarioJaExiste()],
      ],
      password: [''],
    });
  <div class=" form-group">
    <input placeholder=" Usuário" class="form-control" formControlName="userName" />
    <app-mensagem *ngIf="
    novoUsuarioForm.get('userName')?.errors &&
    novoUsuarioForm.get('userName')?.touched" mensagem="Usuário deve ser em letra minúscula">
    </app-mensagem>
    <app-mensagem *ngIf="novoUsuarioForm.get('userName')?.errors?.['usuarioExistente']" mensagem="Usuário já existe">
    </app-mensagem>
  </div>
1 resposta
solução!

Consegui corrigir alterando para:

    <app-mensagem *ngIf="
        novoUsuarioForm.get('userName')?.errors?.['minusculo'] &&
        novoUsuarioForm.get('userName')?.touched
      " mensagem="Usuário deve ser em letra minúscula"></app-mensagem>

    <app-mensagem *ngIf="
        novoUsuarioForm.get('userName')?.errors?.['usuarioExistente'] &&
        novoUsuarioForm.get('userName')?.touched
      " mensagem="Usuário já existe"></app-mensagem>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software