diff --git a/core/modules/navigation/src/NavigationRenderer.php b/core/modules/navigation/src/NavigationRenderer.php index 8e29298092d668cbf999bfbbe601b4de25891087..7e5813f03cdc67a6cd88134f309d7dc25eb29270 100644 --- a/core/modules/navigation/src/NavigationRenderer.php +++ b/core/modules/navigation/src/NavigationRenderer.php @@ -109,7 +109,8 @@ public function buildNavigation(array &$page_top): void { 'keys' => ['navigation', 'navigation'], 'max-age' => CacheBackendInterface::CACHE_PERMANENT, ], - '#pre_render' => ['navigation.renderer:doBuildNavigation'], + '#lazy_builder' => ['navigation.renderer:doBuildNavigation', []], + '#create_placeholder' => TRUE, ]; } @@ -117,7 +118,8 @@ public function buildNavigation(array &$page_top): void { * Pre-render callback for ::buildNavigation. */ #[TrustedCallback] - public function doBuildNavigation($build): array { + public function doBuildNavigation(): array { + $build = []; $logo_settings = $this->configFactory->get('navigation.settings'); $logo_provider = $logo_settings->get('logo.provider'); @@ -130,7 +132,6 @@ public function doBuildNavigation($build): array { if ($storage) { foreach ($storage->getSections() as $delta => $section) { $build[$delta] = $section->toRenderArray([]); - $build[$delta]['#cache']['contexts'] = ['user.permissions', 'theme', 'languages:language_interface']; } } // The render array is built based on decisions made by SectionStorage