diff --git a/bindings/csharp/FusionFramework/Swagger.cs b/bindings/csharp/FusionFramework/Swagger.cs index 349a98f..51f9bd4 100644 --- a/bindings/csharp/FusionFramework/Swagger.cs +++ b/bindings/csharp/FusionFramework/Swagger.cs @@ -392,18 +392,22 @@ static string UiHtml(SwaggerConfig swagger, string openapiUrl, string? primaryNa : "null"; var title = JsonSerializer.Serialize(swagger.PageTitle).Trim('"'); var navbarEnabled = swagger.NavbarEnabled; + var versionUrls = swagger.Urls?.Count > 0; + var needsStandalone = navbarEnabled || versionUrls; var hideUrlCss = navbarEnabled && !swagger.ShowUrlInput ? """ """ : ""; - var standalone = navbarEnabled + var standalone = needsStandalone && File.Exists(Path.Combine(AssetsDirectory(), "swagger-ui-standalone-preset.js")) ? $"""""" : ""; - var navbarJs = navbarEnabled ? "true" : "false"; + var navbarJs = needsStandalone ? "true" : "false"; return $$""" diff --git a/crates/fusion-node/index.js b/crates/fusion-node/index.js index 96f4652..3bc0512 100644 --- a/crates/fusion-node/index.js +++ b/crates/fusion-node/index.js @@ -956,6 +956,8 @@ function swaggerUiHtml(swagger, openapiUrl, primaryName = null) { const navbarEnabled = !!swagger.navbar?.enabled const showUrlInput = swagger.navbar?.showUrlInput !== false + const versionUrls = swagger.navbar?.urls?.length > 0 + const needsStandalone = navbarEnabled || versionUrls const hideUrlCss = navbarEnabled && !showUrlInput ? `` : '' - const standaloneScript = navbarEnabled - ? `` - : '' + const standaloneScript = + needsStandalone && SWAGGER_ASSETS['swagger-ui-standalone-preset.js'] + ? `` + : '' return ` @@ -987,7 +990,7 @@ function swaggerUiHtml(swagger, openapiUrl, primaryName = null) { var opts = ${uiJson}; opts.presets = [SwaggerUIBundle.presets.apis]; opts.plugins = [SwaggerUIBundle.plugins.DownloadUrl]; - if (${navbarEnabled ? 'true' : 'false'} && typeof SwaggerUIStandalonePreset !== 'undefined') { + if (${needsStandalone ? 'true' : 'false'} && typeof SwaggerUIStandalonePreset !== 'undefined') { opts.presets.push(SwaggerUIStandalonePreset); opts.layout = 'StandaloneLayout'; } else { diff --git a/crates/fusion-py/python/fusion_framework/app.py b/crates/fusion-py/python/fusion_framework/app.py index 222d676..b649ed7 100644 --- a/crates/fusion-py/python/fusion_framework/app.py +++ b/crates/fusion-py/python/fusion_framework/app.py @@ -257,17 +257,21 @@ def _swagger_ui_html(swagger: dict[str, Any], openapi_url: str, primary_name: st navbar_enabled = bool(navbar.get("enabled")) show_url_input = bool(navbar.get("showUrlInput", True)) + version_urls = navbar.get("urls") or [] + needs_standalone = navbar_enabled or bool(version_urls) hide_url_css = "" if navbar_enabled and not show_url_input: # Keep the version