From f53d29826b8ebb21c9ca512b9551e72cea274c2d Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Tue, 30 Apr 2024 11:55:45 +0200 Subject: [PATCH] fix(swagger-ui-react): call onComplete hook with system instance Refs #9876 --- flavors/swagger-ui-react/index.jsx | 78 +++++++++++++++--------------- 1 file changed, 38 insertions(+), 40 deletions(-) diff --git a/flavors/swagger-ui-react/index.jsx b/flavors/swagger-ui-react/index.jsx index fe611c39541..38dc974bdc5 100644 --- a/flavors/swagger-ui-react/index.jsx +++ b/flavors/swagger-ui-react/index.jsx @@ -3,7 +3,7 @@ */ "use client" -import React, { useEffect, useCallback, useState } from "react" +import React, { useEffect, useState } from "react" import PropTypes from "prop-types" import SwaggerUIConstructor from "#swagger-ui" @@ -41,46 +41,44 @@ const SwaggerUI = ({ const [system, setSystem] = useState(null) const SwaggerUIComponent = system?.getComponent("App", "root") - const handleComplete = useCallback(() => { - if (typeof onComplete === "function") { - onComplete() - } - }, [onComplete]) - useEffect(() => { - setSystem( - SwaggerUIConstructor({ - plugins, - spec, - url, - layout, - defaultModelsExpandDepth, - defaultModelRendering, - presets: [SwaggerUIConstructor.presets.apis, ...presets], - requestInterceptor, - responseInterceptor, - onComplete: handleComplete, - docExpansion, - supportedSubmitMethods, - queryConfigEnabled, - defaultModelExpandDepth, - displayOperationId, - tryItOutEnabled, - displayRequestDuration, - requestSnippetsEnabled, - requestSnippets, - showMutatedRequest, - deepLinking, - showExtensions, - showCommonExtensions, - filter, - persistAuthorization, - withCredentials, - ...(typeof oauth2RedirectUrl === "string" - ? { oauth2RedirectUrl: oauth2RedirectUrl } - : {}), - }) - ) + const systemInstance = SwaggerUIConstructor({ + plugins, + spec, + url, + layout, + defaultModelsExpandDepth, + defaultModelRendering, + presets: [SwaggerUIConstructor.presets.apis, ...presets], + requestInterceptor, + responseInterceptor, + onComplete: () => { + if (typeof onComplete === "function") { + onComplete(systemInstance) + } + }, + docExpansion, + supportedSubmitMethods, + queryConfigEnabled, + defaultModelExpandDepth, + displayOperationId, + tryItOutEnabled, + displayRequestDuration, + requestSnippetsEnabled, + requestSnippets, + showMutatedRequest, + deepLinking, + showExtensions, + showCommonExtensions, + filter, + persistAuthorization, + withCredentials, + ...(typeof oauth2RedirectUrl === "string" + ? { oauth2RedirectUrl: oauth2RedirectUrl } + : {}), + }) + + setSystem(systemInstance) }, []) useEffect(() => {