From 38d7099bcdd4f9ae1fbf5fe0d743f66d9317acba Mon Sep 17 00:00:00 2001 From: FrankZamora Date: Sat, 29 Nov 2025 09:42:18 -0600 Subject: [PATCH] =?UTF-8?q?fix(renderers):=20corregir=20timing=20issue=20e?= =?UTF-8?q?n=20CSS=20cr=C3=ADtico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PROBLEMA: - wp_head() se ejecuta ANTES de que los componentes rendericen - CriticalCSSCollector estaba vacío al momento de inyectar en - Componentes retornaban solo HTML sin CSS → sitio sin estilos SOLUCIÓN: - Eliminar lógica condicional de is_critical en render() - Siempre incluir CSS inline con el componente (comportamiento anterior) - Campo is_critical reservado para futura implementación con output buffering Archivos modificados: - NavbarRenderer.php - TopNotificationBarRenderer.php - HeroRenderer.php 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Public/Hero/Infrastructure/Ui/HeroRenderer.php | 13 ++----------- Public/Navbar/Infrastructure/Ui/NavbarRenderer.php | 13 ++----------- .../Ui/TopNotificationBarRenderer.php | 13 ++----------- 3 files changed, 6 insertions(+), 33 deletions(-) diff --git a/Public/Hero/Infrastructure/Ui/HeroRenderer.php b/Public/Hero/Infrastructure/Ui/HeroRenderer.php index d3a027ce..4eb5e664 100644 --- a/Public/Hero/Infrastructure/Ui/HeroRenderer.php +++ b/Public/Hero/Infrastructure/Ui/HeroRenderer.php @@ -53,17 +53,8 @@ final class HeroRenderer implements RendererInterface $css = $this->generateCSS($data); $html = $this->buildHTML($data); - // Verificar si el CSS debe ser crítico (inyectado en ) - $isCritical = isset($data['visibility']['is_critical']) && - $data['visibility']['is_critical'] === true; - - if ($isCritical) { - // CSS crítico: agregar al collector para inyección en - $this->criticalCollector->add('hero', $css); - return $html; // Solo HTML, CSS se inyecta en - } - - // CSS no crítico: incluir inline con el componente + // Siempre incluir CSS inline con el componente + // Nota: is_critical se reserva para futura implementación con output buffering return sprintf("\n%s", $css, $html); } diff --git a/Public/Navbar/Infrastructure/Ui/NavbarRenderer.php b/Public/Navbar/Infrastructure/Ui/NavbarRenderer.php index 3fe298c1..e9b709cf 100644 --- a/Public/Navbar/Infrastructure/Ui/NavbarRenderer.php +++ b/Public/Navbar/Infrastructure/Ui/NavbarRenderer.php @@ -49,17 +49,8 @@ final class NavbarRenderer implements RendererInterface $css = $this->generateCSS($data); $html = $this->buildMenu($data); - // Verificar si el CSS debe ser crítico (inyectado en ) - $isCritical = isset($data['visibility']['is_critical']) && - $data['visibility']['is_critical'] === true; - - if ($isCritical) { - // CSS crítico: agregar al collector para inyección en - $this->criticalCollector->add('navbar', $css); - return $html; // Solo HTML, CSS se inyecta en - } - - // CSS no crítico: incluir inline con el componente + // Siempre incluir CSS inline con el componente + // Nota: is_critical se reserva para futura implementación con output buffering return sprintf( "\n%s", $css, diff --git a/Public/TopNotificationBar/Infrastructure/Ui/TopNotificationBarRenderer.php b/Public/TopNotificationBar/Infrastructure/Ui/TopNotificationBarRenderer.php index 31b7915f..3aba6014 100644 --- a/Public/TopNotificationBar/Infrastructure/Ui/TopNotificationBarRenderer.php +++ b/Public/TopNotificationBar/Infrastructure/Ui/TopNotificationBarRenderer.php @@ -67,17 +67,8 @@ final class TopNotificationBarRenderer implements RendererInterface // Generar HTML $html = $this->buildHTML($data); - // Verificar si el CSS debe ser crítico (inyectado en ) - $isCritical = isset($data['visibility']['is_critical']) && - $data['visibility']['is_critical'] === true; - - if ($isCritical) { - // CSS crítico: agregar al collector para inyección en - $this->criticalCollector->add('top-notification-bar', $css); - return $html; // Solo HTML, CSS se inyecta en - } - - // CSS no crítico: incluir inline con el componente + // Siempre incluir CSS inline con el componente + // Nota: is_critical se reserva para futura implementación con output buffering return sprintf( "\n%s", $css,