GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Abrindo página de login, após fazer logout

Meu logout

logout(): void {
    this.authServerProvider
      .logout()
      .subscribe(null, null, () => this.accountService.authenticate(null));
    this.usuarioService.setAuthenticated(false);
    this.router.navigate(['/home']);
}

Mas quando dou login ele vai para a rota home, e abre a página de login.

import { Overlay } from '@angular/cdk/overlay';
import { Component, OnInit } from '@angular/core';
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
import { Router } from '@angular/router';
import { NgbCarouselConfig } from '@ng-bootstrap/ng-bootstrap';
import { Observable } from 'rxjs';
import { PublicoService } from 'src/app/service/publico.service';
import { UsuarioService } from 'src/app/service/usuario.service';
import { CadastrarComponent } from '../modal/cadastrar/cadastrar.component';
import { LoginComponent } from '../modal/login/login.component';
import { Carrossel } from './../../core/model/carrossel.model';
@Component({
  selector: 'app-pagina-inicial-logado',
  templateUrl: './pagina-inicial-logado.component.html',
  styleUrls: ['./pagina-inicial-logado.component.scss'],
})
export class PaginaInicialLogadoComponent implements OnInit {
  biliotecas: any[];
  carrossel: Carrossel[] = [];
  islogado!: Observable<boolean>;
  constructor(
    config: NgbCarouselConfig,
    private publicoService: PublicoService,
    private dialog: MatDialog,
    private router: Router,
    private overlay: Overlay,
    private usuarioService: UsuarioService
  ) {
    config.showNavigationIndicators = true;
    config.interval = 10000;
    this.biliotecas = [];
  }
  async ngOnInit(): Promise<void> {
    await this.buscarUltimasTres();
    this.islogado = this.usuarioService.isLogado();
    this.publicoService.getCarrossel().subscribe((res) => {
      this.carrossel = res;
    });
  }
  private async buscarUltimasTres(): Promise<void> {
    this.biliotecas = [];
    await this.publicoService
      .buscarUltimasTresBibliotecas()
      .then((biliotecas) => {
        biliotecas.lista.forEach((element: any) => {
          element.arquivo.url =
            'data:' +
            element.arquivo.contentType +
            ';base64,' +
            element.arquivo.arquivo;
          this.biliotecas.push(element);
        });
      });
  }
  login(): void {
    const dialogConfig = new MatDialogConfig();
    dialogConfig.disableClose = true;
    dialogConfig.autoFocus = true;
    dialogConfig.width = '393px';
    dialogConfig.height = '433px';
    this.dialog.open(LoginComponent, dialogConfig);
  }
  cadastrar(): void {
    const scrollStrategy = this.overlay.scrollStrategies.reposition();
    const dialogConfig = new MatDialogConfig();
    dialogConfig.disableClose = true;
    dialogConfig.autoFocus = true;
    dialogConfig.width = '600px';
    this.dialog.open(CadastrarComponent, {
      disableClose: true,
      autoFocus: true,
      width: '600px',
      scrollStrategy,
    });
  }
  radar(id?: string): void {
    if (id === null || id === undefined || id === '') {
      this.router.navigate(['/radar']);
    } else {
      this.router.navigate([`radar/${id}/`]);
    }
  }
  naPontaDaLingua(): void {
    this.islogado = this.usuarioService.isLogado();
    this.islogado.subscribe((logado) => {
      if (logado) {
        this.router.navigate(['/na-ponta-da-lingua']);
      } else {
        this.login();
      }
    });
  }
}

Debuguei mais não achei.

Quando chega nesta linha this.islogado = this.usuarioService.isLogado();, ele já abre o modal de login. O que não deveria.

Tentando achar o que pode ser, mas não acho de jeito nenhum

Como está a condição no template que diz que a modal deve aparecer ou não?

//