1
resposta

Lapidando o Componente

Como está com falta de código, fiz uma alteração no código do alert.service.ts, usando operador ternário e parâmetros opcionais, seria uma boa prática já ter isso no habito de fazer os códigos ainda mais por considerar este curso como de Nível Avançado.

export class AlertService{

    alertSubject: Subject<Alert> = new Subject<Alert>();
    keepAlive: boolean;

    constructor(router: Router){
        router.events.subscribe(event => {
            (event instanceof NavigationStart ? (this.keepAlive ? this.keepAlive = false : this.clear()): false)
        })
    }
    success(message:string, keepAlive?: boolean){
        this.alert(AlertType.SUCCESS,message,keepAlive);
    }

    warning(message:string, keepAlive?: boolean){
        this.alert(AlertType.WARNING,message,keepAlive);
    }

    danger(message:string, keepAlive?: boolean){
        this.alert(AlertType.DANGER,message,keepAlive);
    }

    info(message:string, keepAlive?: boolean){
        this.alert(AlertType.INFO,message,keepAlive);
    }

    private alert(alertType:AlertType, message: string, keepAlive: boolean = false){
        this.keepAlive = keepAlive;
        this.alertSubject.next(new Alert(alertType,message));
    }

    get() {
        return this.alertSubject.asObservable();
    }

    clear(){
        this.alertSubject.next(null);
    }
}
1 resposta

Fala aí Augusto, tudo bem? Boa solução, parabéns.

Sobre a implementação, acho que vai mais do gosto de cada um, alguns gostam e outros não, é bem relativo.

Espero ter ajudado.