From d3273b0cad88294d348a7afdcb56d11fff23a5bc Mon Sep 17 00:00:00 2001 From: Ecio Date: Sat, 20 Jun 2026 17:41:39 -0300 Subject: [PATCH] fix: adapt topbar logo for swagger-ui-dist 5.32.6 v5.x renders logo as inline SVG (not ); topbar link no longer has .link class. Hide SVG via CSS, inject img element via JS fixLogo(). Co-Authored-By: Claude Sonnet 4.6 --- src/routes.js | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/routes.js b/src/routes.js index f49b3b8..1b50255 100644 --- a/src/routes.js +++ b/src/routes.js @@ -88,22 +88,25 @@ if (enableSwagger) { .swagger-ui .btn-group .btn { color: inherit; } .swagger-ui .info .title small { display: none; } - /* Logo customizada da Neuralsys no topbar (substitui a logo do Swagger) */ - .swagger-ui .topbar .topbar-wrapper .link { + /* Logo customizada — swagger-ui-dist 5.x usa SVG inline, não . + Ocultamos o SVG e o botão DarkMode e injetamos nosso img via JS. */ + .swagger-ui .topbar .topbar-wrapper a svg { display: none !important; } + .swagger-ui .topbar .topbar-wrapper button { display: none !important; } + .swagger-ui .topbar .topbar-wrapper a { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; + text-decoration: none; } - .swagger-ui .topbar .topbar-wrapper .link img { + .swagger-ui .topbar .topbar-wrapper a img { height: 56px; width: auto; grid-column: 1; grid-row: 1 / span 2; } - .swagger-ui .topbar .topbar-wrapper .link span { display: none; } - .swagger-ui .topbar .topbar-wrapper .link::before { + .swagger-ui .topbar .topbar-wrapper a::before { content: "CoreGuard"; grid-column: 2; grid-row: 1; @@ -115,7 +118,7 @@ if (enableSwagger) { line-height: 1; letter-spacing: 0.3px; } - .swagger-ui .topbar .topbar-wrapper .link::after { + .swagger-ui .topbar .topbar-wrapper a::after { content: "WhatsAPI Oficial"; grid-column: 2; grid-row: 2; @@ -319,8 +322,8 @@ if (enableSwagger) { } var observer = new MutationObserver(function () { - var img = document.querySelector('.swagger-ui .topbar-wrapper .link img') - if (img && img.src.indexOf('custom-logo') === -1) fixLogo() + var link = document.querySelector('.swagger-ui .topbar-wrapper a') + if (link && !link.querySelector('img[src*="custom-logo"]')) fixLogo() if (!document.querySelector('.neuralsys-filter-container') && document.querySelector('.opblock-tag-section')) { installFilter() @@ -398,11 +401,14 @@ if (enableSwagger) { } function fixLogo() { - var img = document.querySelector('.swagger-ui .topbar-wrapper .link img') - if (!img) { return setTimeout(fixLogo, 100) } - if (img.src.indexOf('custom-logo') === -1) { - img.src = '/api-docs/custom-logo.png' - } + var link = document.querySelector('.swagger-ui .topbar-wrapper a') + if (!link) { return setTimeout(fixLogo, 100) } + if (link.querySelector('img[src*="custom-logo"]')) return + var svg = link.querySelector('svg') + if (svg) svg.remove() + var img = document.createElement('img') + img.src = '/api-docs/custom-logo.png' + link.insertBefore(img, link.firstChild) } function boot() {