From 2a29628478f17f8801d543994d1e50c5fe72cccb Mon Sep 17 00:00:00 2001 From: gerrits-ecommerce <31535836+gerrits-ecommerce@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:34:22 +0100 Subject: [PATCH 1/2] Update ComponentManager.php --- src/Model/ComponentManager.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Model/ComponentManager.php b/src/Model/ComponentManager.php index 5bdefeec..c8d1aa5a 100644 --- a/src/Model/ComponentManager.php +++ b/src/Model/ComponentManager.php @@ -12,6 +12,7 @@ use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Locale\Resolver; use Magento\Framework\View\Element\Template; +use Magento\Framework\View\Page\Config; use Magewirephp\Magewire\Exception\AcceptableException; use Magewirephp\Magewire\Component; use Magewirephp\Magewire\Exception\ComponentHydrationException; @@ -21,6 +22,7 @@ class ComponentManager { protected Resolver $localeResolver; protected HttpFactory $httpFactory; + protected Config $pageConfig; protected array $updateActionsPool; protected array $hydrationPool; @@ -28,12 +30,14 @@ public function __construct( HydratorContext $hydratorContext, Resolver $localeResolver, HttpFactory $httpFactory, + Config $pageConfig, array $updateActionsPool = [], array $hydrationPool = [] ) { $this->localeResolver = $localeResolver; $this->updateActionsPool = $updateActionsPool; $this->httpFactory = $httpFactory; + $this->pageConfig = $pageConfig; // Core Hydrate & Dehydrate lifecycle sort order. $this->hydrationPool = $this->sortHydrators($hydrationPool, [ @@ -153,7 +157,8 @@ public function createInitialRequest( // Custom relative to Livewire's core. 'handle' => $handle ?? $request->getFullActionName(), - 'type' => $component::COMPONENT_TYPE + 'type' => $component::COMPONENT_TYPE, + 'layout' => $this->pageConfig->getPageLayout() ], 'serverMemo' => [ From 8e922458a4219c542a825f57e0afd154630a69f2 Mon Sep 17 00:00:00 2001 From: gerrits-ecommerce <31535836+gerrits-ecommerce@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:35:38 +0100 Subject: [PATCH 2/2] Update Layout.php --- src/Model/Component/Resolver/Layout.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Model/Component/Resolver/Layout.php b/src/Model/Component/Resolver/Layout.php index 151af988..7a4faebf 100644 --- a/src/Model/Component/Resolver/Layout.php +++ b/src/Model/Component/Resolver/Layout.php @@ -85,6 +85,9 @@ public function construct(AbstractBlock $block): Component public function reconstruct(RequestInterface $request): Component { $page = $this->resultPageFactory->create(); + if ($request->getFingerprint('layout')) { + $page->getConfig()->setPageLayout(strtolower($request->getFingerprint('layout'))); + } $page->addHandle(strtolower($request->getFingerprint('handle')))->initLayout(); /**