diff --git a/src/app/components/busqueda-productos/busqueda-productos.component.html b/src/app/components/busqueda-productos/busqueda-productos.component.html index a976db4..5a93cd0 100644 --- a/src/app/components/busqueda-productos/busqueda-productos.component.html +++ b/src/app/components/busqueda-productos/busqueda-productos.component.html @@ -83,7 +83,7 @@ type="button" class="btn btn-light btn-lg shadow-sm" [routerLink]="['/inicio']"> - Volver   + Volver diff --git a/src/app/components/busqueda-productos/busqueda-productos.component.ts b/src/app/components/busqueda-productos/busqueda-productos.component.ts index a16c4f9..afdb404 100644 --- a/src/app/components/busqueda-productos/busqueda-productos.component.ts +++ b/src/app/components/busqueda-productos/busqueda-productos.component.ts @@ -1,8 +1,7 @@ -import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { ProductoService } from 'src/app/services/producto.service'; import { Producto } from 'src/app/wrappers/producto'; import { appSettings } from 'src/etc/AppSettings'; -import { SidebarComponent } from '../sidebar/sidebar.component'; @Component({ selector: 'app-busqueda-productos', @@ -18,14 +17,9 @@ export class BusquedaProductosComponent implements OnInit { private categoria: Categorias = Categorias.todos; private apiUrl: string = appSettings.apiUrl; - productosParaCarrito : Producto[] = []; constructor(private productoService: ProductoService) { } - // ngAfterViewInit() { - // this.sideBar.productos = []; - // } - ngOnInit() { this.productoService.getAll() @@ -39,14 +33,15 @@ export class BusquedaProductosComponent implements OnInit { } filterItems() { + this.auxProductos = this.productos.filter(x => { return x.DetArt.toLowerCase().includes(this.searchTerm.toLowerCase()) }); } agregarAlCarrito(producto: Producto) { - producto.cantidad = 1; - this.productosParaCarrito.push(producto); + + this.productoService.setProductos(producto); } } diff --git a/src/app/components/sidebar/sidebar.component.ts b/src/app/components/sidebar/sidebar.component.ts index 5e62865..97dc2c6 100644 --- a/src/app/components/sidebar/sidebar.component.ts +++ b/src/app/components/sidebar/sidebar.component.ts @@ -1,13 +1,13 @@ -import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Producto } from 'src/app/wrappers/producto'; import { appSettings } from 'src/etc/AppSettings'; +import { ProductoService } from 'src/app/services/producto.service'; @Component({ selector: 'app-sidebar', templateUrl: './sidebar.component.html', styleUrls: ['./sidebar.component.scss'], - inputs: ['productosCarrito'] }) export class SidebarComponent implements OnInit { @@ -19,9 +19,15 @@ export class SidebarComponent implements OnInit { public productosCarrito: Producto[] = []; - constructor() { } + constructor(private productoService: ProductoService) { } - ngOnInit() { } + ngOnInit() { + + this.productoService.productosEvent + .subscribe((data: Producto[]) => { + this.productosCarrito = data; + }, (error) => { console.error(error); }) + } getCantidadProductos() { @@ -57,7 +63,7 @@ export class SidebarComponent implements OnInit { decrementarContador(index) { for (let i = 0; i < this.productosCarrito.length; i++) { - if (i === index && this.productosCarrito[i].cantidad > 1) { + if (i === index && this.productosCarrito[i].cantidad > this.min) { this.productosCarrito[i].cantidad--; this.cont--; break; @@ -75,7 +81,7 @@ export class SidebarComponent implements OnInit { } } - deleteProducto(index) { + deleteProducto(index: number) { for (let i = 0; i < this.productosCarrito.length; i++) { if (i === index) { diff --git a/src/app/services/producto.service.ts b/src/app/services/producto.service.ts index 2e0eb5e..321e847 100644 --- a/src/app/services/producto.service.ts +++ b/src/app/services/producto.service.ts @@ -2,16 +2,28 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { appSettings } from 'src/etc/AppSettings'; +import { Producto } from '../wrappers/producto'; +import { EventEmitter } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class ProductoService { + productos : Producto[] = []; + productosEvent: EventEmitter = new EventEmitter(); + constructor(private http: HttpClient) { } getAll(): Observable { + return this.http.get(`${appSettings.apiUrl}/articulos`); } + setProductos(producto){ + + this.productos.push(producto); + this.productosEvent.emit(this.productos); + } + }