1
0
Эх сурвалжийг харах

not using Helmet for script

namnguyen 4 сар өмнө
parent
commit
c5fda73863

+ 15 - 6
frontend/taipy-gui/src/components/pages/TaipyRendered.tsx

@@ -110,7 +110,7 @@ const TaipyRendered = (props: TaipyRenderedProps) => {
                     if (!fromBlock) {
                     if (!fromBlock) {
                         setStyle(
                         setStyle(
                             path == "/TaiPy_root_page" ? "Taipy_root_style" : "Taipy_style",
                             path == "/TaiPy_root_page" ? "Taipy_root_style" : "Taipy_style",
-                            result.data.style || ""
+                            result.data.style || "",
                         );
                         );
                         Array.isArray(result.data.head) && setHead(result.data.head);
                         Array.isArray(result.data.head) && setHead(result.data.head);
                         Array.isArray(result.data.scriptPaths) && setScript("Taipy_script", result.data.scriptPaths);
                         Array.isArray(result.data.scriptPaths) && setScript("Taipy_script", result.data.scriptPaths);
@@ -131,11 +131,20 @@ const TaipyRendered = (props: TaipyRenderedProps) => {
 
 
     return (
     return (
         <ErrorBoundary FallbackComponent={ErrorFallback}>
         <ErrorBoundary FallbackComponent={ErrorFallback}>
-            {head.length ? (
-                <Helmet>
-                    {head.map((v, i) => React.createElement(v.tag, { key: `head${i}`, ...v.props }, v.content))}
-                </Helmet>
-            ) : null}
+            {head.length ? head.map((v, i) => {
+                if (v.tag === "script") {
+                    const element = document.createElement(v.tag);
+                    Object.entries(v.props).forEach(([key, value]) => element.setAttribute(key, value));
+                    element.innerHTML = v.content;
+                    document.head.appendChild(element);
+                    return null;
+                }
+                return (
+                    <Helmet key={`head${i}`}>
+                        {React.createElement(v.tag, { ...v.props }, v.content)}
+                    </Helmet>
+                );
+            }) : null}
             <PageContext.Provider value={pageState}>
             <PageContext.Provider value={pageState}>
                 <JsxParser
                 <JsxParser
                     disableKeyGeneration={true}
                     disableKeyGeneration={true}