From 0f306ca5eb765cd82dd2c6682cdfc34303be2e5a Mon Sep 17 00:00:00 2001
From: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
Date: Fri, 16 Aug 2024 11:42:29 +0300
Subject: [PATCH] fix CSP error in prod (#46890)

---
 frontend/src/metabase/app.js     |  3 +++
 frontend/src/metabase/dev.js     | 12 ------------
 frontend/src/metabase/lib/csp.js | 13 +++++++++++++
 3 files changed, 16 insertions(+), 12 deletions(-)
 create mode 100644 frontend/src/metabase/lib/csp.js

diff --git a/frontend/src/metabase/app.js b/frontend/src/metabase/app.js
index 763025917e8..568b3784245 100644
--- a/frontend/src/metabase/app.js
+++ b/frontend/src/metabase/app.js
@@ -24,6 +24,9 @@ import "metabase/plugins/builtin";
 // If EE isn't enabled, it loads an empty file.
 import "ee-plugins"; // eslint-disable-line import/no-duplicates
 
+// Set nonce for mantine v6 deps
+import "metabase/lib/csp";
+
 import { createHistory } from "history";
 import { DragDropContextProvider } from "react-dnd";
 import HTML5Backend from "react-dnd-html5-backend";
diff --git a/frontend/src/metabase/dev.js b/frontend/src/metabase/dev.js
index 8467b323d1d..0b574c8e9a5 100644
--- a/frontend/src/metabase/dev.js
+++ b/frontend/src/metabase/dev.js
@@ -1,13 +1 @@
 import "cljs/metabase.util.devtools";
-
-/**
- * setNonce is required for react-remove-scroll which adds style and can handle
- * nonce but the method we use to set nonce is not compatible with
- * react-remove-scroll it expects __webpack_nonce__ to be defined, when we
- * generate it at BE and put directly into html file. `get-nonce` is used inside
- * react-remove-scroll to get nonce, so we put it manually here.
- * react-remove-scroll is a dependency of mantine v6
- */
-import { setNonce } from "get-nonce";
-
-setNonce(window.MetabaseNonce);
diff --git a/frontend/src/metabase/lib/csp.js b/frontend/src/metabase/lib/csp.js
new file mode 100644
index 00000000000..aa26382769f
--- /dev/null
+++ b/frontend/src/metabase/lib/csp.js
@@ -0,0 +1,13 @@
+/**
+ * setNonce is required for react-remove-scroll which adds style and can handle
+ * nonce but the method we use to set nonce is not compatible with
+ * react-remove-scroll it expects __webpack_nonce__ to be defined, when we
+ * generate it at BE and put directly into html file. `get-nonce` is used inside
+ * react-remove-scroll to get nonce, so we put it manually here.
+ * react-remove-scroll is a dependency of mantine v6
+ *
+ * TODO: remove it when  we upgrade mantine to v7
+ */
+import { setNonce } from "get-nonce";
+
+setNonce(window.MetabaseNonce);
-- 
GitLab