feat(carousel): introduce new catalog group layout options and update related components for enhanced product display

This commit is contained in:
2026-07-23 13:25:35 -03:00
parent 4f444fd757
commit 251411d200
7 changed files with 59 additions and 32 deletions

View File

@@ -65,6 +65,7 @@ export interface CatalogItemDetail {
}
export type CatalogProductLayout = 'row' | 'column_with_image' | 'column_with_cart';
export type CatalogGroupLayout = 'paginated' | 'simple' | 'simple_vertical' | 'carousel';
export interface CatalogFeaturedItemVariant {
id: number;
@@ -82,10 +83,14 @@ export interface CatalogFeaturedItem {
variants?: CatalogFeaturedItemVariant[];
}
export type CatalogFeaturedItems =
ApiPaginatedResponse<CatalogFeaturedItem[]> | CatalogFeaturedItem[];
export interface CatalogFeaturedGroup {
id: number;
title: string;
layout: CatalogProductLayout;
group_layout: CatalogGroupLayout;
group_order: number;
items: ApiPaginatedResponse<CatalogFeaturedItem[]>;
items: CatalogFeaturedItems;
}

View File

@@ -8,7 +8,7 @@ import { ApiResponse } from '../api-response.interface';
import { TenantService } from '../tenant.service';
import {
CatalogFeaturedGroup,
CatalogFeaturedItem,
CatalogFeaturedItems,
CatalogItemDetail,
Product,
} from './catalog.interface';
@@ -39,8 +39,8 @@ export class CatalogService {
getFeaturedGroupItems(
featuredGroupId: number,
params?: ApiPaginationQueryParams,
): Observable<ApiPaginatedResponse<CatalogFeaturedItem[]>> {
return this.http.get<ApiPaginatedResponse<CatalogFeaturedItem[]>>(
): Observable<CatalogFeaturedItems> {
return this.http.get<CatalogFeaturedItems>(
`${this.tenantApiUrl}/catalog/featured-groups/${featuredGroupId}/items`,
{ params: this.buildHttpParams(params) },
);