diff --git a/src/app/features/store/pages/product-detail-page/product-detail-page.component.html b/src/app/features/store/pages/product-detail-page/product-detail-page.component.html new file mode 100644 index 0000000..b57e35b --- /dev/null +++ b/src/app/features/store/pages/product-detail-page/product-detail-page.component.html @@ -0,0 +1 @@ +

product-detail-page works!

diff --git a/src/app/features/store/pages/product-detail-page/product-detail-page.component.scss b/src/app/features/store/pages/product-detail-page/product-detail-page.component.scss new file mode 100644 index 0000000..40a8c17 --- /dev/null +++ b/src/app/features/store/pages/product-detail-page/product-detail-page.component.scss @@ -0,0 +1 @@ +/* empty */ diff --git a/src/app/features/store/pages/product-detail-page/product-detail-page.component.spec.ts b/src/app/features/store/pages/product-detail-page/product-detail-page.component.spec.ts new file mode 100644 index 0000000..73b7f89 --- /dev/null +++ b/src/app/features/store/pages/product-detail-page/product-detail-page.component.spec.ts @@ -0,0 +1,18 @@ +import { TestBed } from '@angular/core/testing'; +import { beforeEach, describe, expect, it } from 'vitest'; +import { ProductDetailPageComponent } from './product-detail-page.component'; + +describe('ProductDetailPageComponent', () => { + beforeEach(() => { + TestBed.resetTestingModule(); + }); + + it('should create', () => { + TestBed.configureTestingModule({ + imports: [ProductDetailPageComponent] + }); + const fixture = TestBed.createComponent(ProductDetailPageComponent); + const component = fixture.componentInstance; + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts b/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts new file mode 100644 index 0000000..184af64 --- /dev/null +++ b/src/app/features/store/pages/product-detail-page/product-detail-page.component.ts @@ -0,0 +1,11 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +@Component({ + selector: 'app-product-detail-page', + standalone: true, + imports: [], + templateUrl: './product-detail-page.component.html', + styleUrl: './product-detail-page.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ProductDetailPageComponent {} diff --git a/src/app/features/store/pages/store-home-page/store-home-page.component.ts b/src/app/features/store/pages/store-home-page/store-home-page.component.ts index ad7fd88..7fc4d66 100644 --- a/src/app/features/store/pages/store-home-page/store-home-page.component.ts +++ b/src/app/features/store/pages/store-home-page/store-home-page.component.ts @@ -1,4 +1,5 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, computed, inject, signal } from '@angular/core'; +import { Router } from '@angular/router'; import { Subscription } from 'rxjs'; import { CatalogService } from '../../../../core/services/catalog/catalog.service'; @@ -25,6 +26,7 @@ interface StoreHomeProductCardViewModel { }) export class StoreHomePageComponent implements OnInit, OnDestroy { private readonly catalogService = inject(CatalogService); + private readonly router = inject(Router); private activeRequestId = 0; private productsRequestSubscription: Subscription | null = null; @@ -62,7 +64,9 @@ export class StoreHomePageComponent implements OnInit, OnDestroy { this.loadProducts(page); } - protected onBuyProduct(_productId: number): void {} + protected onBuyProduct(productId: number): void { + this.router.navigate(['/producto', productId]); + } private loadProducts(page: number): void { this.activeRequestId += 1; diff --git a/src/app/features/store/store.routes.ts b/src/app/features/store/store.routes.ts index 01a0110..a1b22f7 100644 --- a/src/app/features/store/store.routes.ts +++ b/src/app/features/store/store.routes.ts @@ -11,6 +11,13 @@ export const routes: Routes = [ { path: '', component: StoreHomePageComponent + }, + { + path: 'producto/:id', + loadComponent: () => + import('./pages/product-detail-page/product-detail-page.component').then( + (m) => m.ProductDetailPageComponent + ) } ] }