From 4bef600e234e8869b9cbe495a3eed206b1d432dc Mon Sep 17 00:00:00 2001 From: Thor Brink Date: Tue, 21 Jan 2025 09:42:41 +0100 Subject: [PATCH] fix: handle empty mobile ordered items in header controller (#1268) --- library/Controller/Header/Flexible.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/library/Controller/Header/Flexible.php b/library/Controller/Header/Flexible.php index 1afdd68f7..78a4b81c1 100644 --- a/library/Controller/Header/Flexible.php +++ b/library/Controller/Header/Flexible.php @@ -127,7 +127,7 @@ private function getItems(string $section): array [$desktopOrderedItems, $mobileOrderedItems] = $this->getOrderedMenuItems($settingCamelCased); $this->hasSearch = $this->hasSearch($desktopOrderedItems, $mobileOrderedItems); - $this->hasSeparateBrandText = $this->hasSeparateBrandText($desktopOrderedItems, $mobileOrderedItems); + $this->hasSeparateBrandText = $this->hasSeparateBrandText($desktopOrderedItems, $mobileOrderedItems ?: []); // Building the items $items = $this->flipKeyValueTransformer->transform($desktopOrderedItems, $mobileOrderedItems); @@ -164,12 +164,14 @@ private function hasSeparateBrandText(array $desktopOrderedItems, array $mobileO // Gets the ordered menu items from the customizer. private function getOrderedMenuItems(string $settingCamelCased): array { - return [ - $this->customizer->{$settingCamelCased} ?: [], - ($this->isResponsive && isset($this->customizer->{$settingCamelCased . $this->headerSettingKeyResponsive})) - ? $this->customizer->{$settingCamelCased . $this->headerSettingKeyResponsive} - : [], - ]; + $shouldGetMobileOrderedItems = fn() => $this->isResponsive && isset($this->customizer->{$settingCamelCased . $this->headerSettingKeyResponsive}); + + $desktopOrderedItems = $this->customizer->{$settingCamelCased}; + $mobileOrderedItems = $shouldGetMobileOrderedItems() + ? $this->customizer->{$settingCamelCased . $this->headerSettingKeyResponsive} + : []; + + return [ $desktopOrderedItems ?: [], $mobileOrderedItems ?: [] ]; } // Gets the camelCased setting name.