From 9f522ec25fc296dd6f9554062f5159a0f2f0e0f2 Mon Sep 17 00:00:00 2001 From: Florian Meyer Date: Sun, 29 Mar 2026 16:28:14 +0200 Subject: [PATCH] Unhiding hidden categories in the event manage view --- .../Handlers/Product/GetProductsHandler.php | 1 + .../GetProductCategoriesHandler.php | 1 + .../Domain/Product/ProductFilterService.php | 14 ++++++++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/backend/app/Services/Application/Handlers/Product/GetProductsHandler.php b/backend/app/Services/Application/Handlers/Product/GetProductsHandler.php index 73ae5c7460..09a01e0576 100644 --- a/backend/app/Services/Application/Handlers/Product/GetProductsHandler.php +++ b/backend/app/Services/Application/Handlers/Product/GetProductsHandler.php @@ -28,6 +28,7 @@ public function handle(int $eventId, QueryParamsDTO $queryParamsDTO): LengthAwar $filteredProducts = $this->productFilterService->filter( productsCategories: $productPaginator->getCollection(), hideSoldOutProducts: false, + hideHiddenCategories: false, ); $productPaginator->setCollection($filteredProducts); diff --git a/backend/app/Services/Application/Handlers/ProductCategory/GetProductCategoriesHandler.php b/backend/app/Services/Application/Handlers/ProductCategory/GetProductCategoriesHandler.php index 804b005a69..18fde07dc5 100644 --- a/backend/app/Services/Application/Handlers/ProductCategory/GetProductCategoriesHandler.php +++ b/backend/app/Services/Application/Handlers/ProductCategory/GetProductCategoriesHandler.php @@ -51,6 +51,7 @@ public function handle(int $eventId): Collection return $this->productFilterService->filter( productsCategories: $categories, hideSoldOutProducts: false, + hideHiddenCategories: false, ); } } diff --git a/backend/app/Services/Domain/Product/ProductFilterService.php b/backend/app/Services/Domain/Product/ProductFilterService.php index a3b5ec0869..36af1acc19 100644 --- a/backend/app/Services/Domain/Product/ProductFilterService.php +++ b/backend/app/Services/Domain/Product/ProductFilterService.php @@ -41,12 +41,14 @@ public function __construct( * @param Collection $productsCategories * @param PromoCodeDomainObject|null $promoCode * @param bool $hideSoldOutProducts + * @param bool $hideHiddenCategories * @return Collection */ public function filter( Collection $productsCategories, ?PromoCodeDomainObject $promoCode = null, bool $hideSoldOutProducts = true, + bool $hideHiddenCategories = true, ): Collection { if ($productsCategories->isEmpty()) { @@ -57,8 +59,9 @@ public function filter( ->flatMap(fn(ProductCategoryDomainObject $category) => $category->getProducts()); if ($products->isEmpty()) { - return $productsCategories - ->reject(fn(ProductCategoryDomainObject $category) => $category->getIsHidden()); + return $hideHiddenCategories + ? $productsCategories->reject(fn(ProductCategoryDomainObject $category) => $category->getIsHidden()) + : $productsCategories; } $eventId = $products->first()->getEventId(); @@ -73,8 +76,11 @@ public function filter( ->reject(fn(ProductDomainObject $product) => $this->filterProduct($product, $promoCode, $hideSoldOutProducts)) ->each(fn(ProductDomainObject $product) => $this->processProductPrices($product, $hideSoldOutProducts)); - return $productsCategories - ->reject(fn(ProductCategoryDomainObject $category) => $category->getIsHidden()) + $filteredCategories = $hideHiddenCategories + ? $productsCategories->reject(fn(ProductCategoryDomainObject $category) => $category->getIsHidden()) + : $productsCategories; + + return $filteredCategories ->each(fn(ProductCategoryDomainObject $category) => $category->setProducts( $filteredProducts->where( static fn(ProductDomainObject $product) => $product->getProductCategoryId() === $category->getId()