fix: adapt topbar logo for swagger-ui-dist 5.32.6

v5.x renders logo as inline SVG (not <img>); topbar link no longer
has .link class. Hide SVG via CSS, inject img element via JS fixLogo().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 17:41:39 -03:00
parent 7be7822d92
commit d3273b0cad
+18 -12
View File
@@ -88,22 +88,25 @@ if (enableSwagger) {
.swagger-ui .btn-group .btn { color: inherit; } .swagger-ui .btn-group .btn { color: inherit; }
.swagger-ui .info .title small { display: none; } .swagger-ui .info .title small { display: none; }
/* Logo customizada da Neuralsys no topbar (substitui a logo do Swagger) */ /* Logo customizada — swagger-ui-dist 5.x usa SVG inline, não <img>.
.swagger-ui .topbar .topbar-wrapper .link { 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; display: grid;
grid-template-columns: auto 1fr; grid-template-columns: auto 1fr;
grid-template-rows: auto auto; grid-template-rows: auto auto;
column-gap: 14px; column-gap: 14px;
align-items: center; align-items: center;
text-decoration: none;
} }
.swagger-ui .topbar .topbar-wrapper .link img { .swagger-ui .topbar .topbar-wrapper a img {
height: 56px; height: 56px;
width: auto; width: auto;
grid-column: 1; grid-column: 1;
grid-row: 1 / span 2; grid-row: 1 / span 2;
} }
.swagger-ui .topbar .topbar-wrapper .link span { display: none; } .swagger-ui .topbar .topbar-wrapper a::before {
.swagger-ui .topbar .topbar-wrapper .link::before {
content: "CoreGuard"; content: "CoreGuard";
grid-column: 2; grid-column: 2;
grid-row: 1; grid-row: 1;
@@ -115,7 +118,7 @@ if (enableSwagger) {
line-height: 1; line-height: 1;
letter-spacing: 0.3px; letter-spacing: 0.3px;
} }
.swagger-ui .topbar .topbar-wrapper .link::after { .swagger-ui .topbar .topbar-wrapper a::after {
content: "WhatsAPI Oficial"; content: "WhatsAPI Oficial";
grid-column: 2; grid-column: 2;
grid-row: 2; grid-row: 2;
@@ -319,8 +322,8 @@ if (enableSwagger) {
} }
var observer = new MutationObserver(function () { var observer = new MutationObserver(function () {
var img = document.querySelector('.swagger-ui .topbar-wrapper .link img') var link = document.querySelector('.swagger-ui .topbar-wrapper a')
if (img && img.src.indexOf('custom-logo') === -1) fixLogo() if (link && !link.querySelector('img[src*="custom-logo"]')) fixLogo()
if (!document.querySelector('.neuralsys-filter-container') && if (!document.querySelector('.neuralsys-filter-container') &&
document.querySelector('.opblock-tag-section')) { document.querySelector('.opblock-tag-section')) {
installFilter() installFilter()
@@ -398,11 +401,14 @@ if (enableSwagger) {
} }
function fixLogo() { function fixLogo() {
var img = document.querySelector('.swagger-ui .topbar-wrapper .link img') var link = document.querySelector('.swagger-ui .topbar-wrapper a')
if (!img) { return setTimeout(fixLogo, 100) } if (!link) { return setTimeout(fixLogo, 100) }
if (img.src.indexOf('custom-logo') === -1) { 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' img.src = '/api-docs/custom-logo.png'
} link.insertBefore(img, link.firstChild)
} }
function boot() { function boot() {