carrito.component.ts 1.84 KB
import { Component, OnInit, OnDestroy, HostListener } from '@angular/core';
import { Location } from '@angular/common';
import { ArticuloService } from 'src/app/services/articulo/articulo.service';
import { APP_SETTINGS } from 'src/etc/AppSettings';
import { Router } from '@angular/router';
import { BsModalRef } from 'ngx-bootstrap/modal/public_api';
import { InactiveScreenService } from 'src/app/services/inactive-screen/inactive-screen.service';
import { ANIMATIONS } from 'src/app/utils/animations';

@Component({
  selector: 'app-carrito',
  templateUrl: './carrito.component.html',
  styleUrls: ['./carrito.component.scss'],
  animations: [ANIMATIONS.EnterLeaveX]
})
export class CarritoComponent implements OnInit, OnDestroy {
  urlImagenes = `${APP_SETTINGS.apiImagenes}/imagenes/`;
  maxCantidad = 50;
  modalRef: BsModalRef;

  constructor(
    public articuloService: ArticuloService,
    private location: Location,
    private router: Router,
    private inactiveScreen: InactiveScreenService,
  ) { }

  ngOnInit() {
    if (!this.articuloService.carrito.length) {
      this.router.navigate(['']);
      return;
    }
    this.mediaPantalla();
  }

  ngOnDestroy() {
    if (this.modalRef) this.modalRef.hide();
  }

  deleteArticulo(index: number) {
    this.articuloService.deleteArticulo(index);
  }

  goBack() {
    this.location.back();
  }

  @HostListener('document:click', ['$event'])
  eventListener(event: Event) {
    clearTimeout(this.inactiveScreen.timerReposo);
    this.inactiveScreen.startTimeOutInactividad();
  }

  @HostListener('scroll', ['$event'])
  scrollEvent(event: Event) {
    clearTimeout(this.inactiveScreen.timerReposo);
    this.inactiveScreen.startTimeOutInactividad();
  }

  mediaPantalla() {
    if ($('body').hasClass('media-pantalla')) {
      $(`.carrito-content`).addClass('media-pantalla').addBack('media-pantalla');
    }
  }
}