From d0220ff31b64abb1d2b6594ffbb38d3e0f05968f Mon Sep 17 00:00:00 2001
From: github-automation-metabase
 <166700802+github-automation-metabase@users.noreply.github.com>
Date: Wed, 18 Dec 2024 09:03:26 -0500
Subject: [PATCH] fix(sdk): update define function names in Next.js compat
 (#51071) (#51453)

Co-authored-by: Phoomparin Mano <poom@metabase.com>
---
 .../frontend/src/embedding-sdk/bin/.eslintrc  |  6 ++++++
 .../bin/generate-nextjs-compat.ts             | 20 ++++++++-----------
 2 files changed, 14 insertions(+), 12 deletions(-)
 create mode 100644 enterprise/frontend/src/embedding-sdk/bin/.eslintrc

diff --git a/enterprise/frontend/src/embedding-sdk/bin/.eslintrc b/enterprise/frontend/src/embedding-sdk/bin/.eslintrc
new file mode 100644
index 00000000000..0a3180e4eda
--- /dev/null
+++ b/enterprise/frontend/src/embedding-sdk/bin/.eslintrc
@@ -0,0 +1,6 @@
+{
+  "rules": {
+    "no-literal-metabase-strings": "off",
+    "no-console": "off",
+  },
+}
diff --git a/enterprise/frontend/src/embedding-sdk/bin/generate-nextjs-compat.ts b/enterprise/frontend/src/embedding-sdk/bin/generate-nextjs-compat.ts
index 107d9aeeff5..4c2c2fb8c7a 100644
--- a/enterprise/frontend/src/embedding-sdk/bin/generate-nextjs-compat.ts
+++ b/enterprise/frontend/src/embedding-sdk/bin/generate-nextjs-compat.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-console */
 import fs from "fs";
 
 import path from "path";
@@ -51,11 +50,10 @@ const COMPONENTS_TO_EXPORT: ComponentDefinition[] = [
 
 // END OF CONFIGURATION
 
-// eslint-disable-next-line no-literal-metabase-strings -- it's code
 const MetabaseProviderCode = `
 const MetabaseProvider = ({
-  config,
   children,
+  ...providerProps,
 }) => {
   const Provider = dynamic(
     () =>
@@ -70,7 +68,7 @@ const MetabaseProvider = ({
     }
   );
 
-  return React.createElement(Provider, { config }, children);
+  return React.createElement(Provider, providerProps, children);
 };
 `;
 
@@ -148,24 +146,23 @@ const generateAllComponents = (type: "cjs" | "js") => {
 // nextjs-no-ssr.{cjs,js} => file marked as "use client" that re-exports the components wrapped in dynamic import with no ssr
 
 // we need to re-export these helpers so they can be used without importing the entire bundle, that will make next crash because window is undefined
-const defineEmbeddingSdkConfig = "config => config";
-const defineEmbeddingSdkTheme = "theme => theme";
+const defineMetabaseAuthConfig = "authConfig => authConfig";
+const defineMetabaseTheme = "theme => theme";
 
 const nextjs_cjs = `
-module.exports.defineEmbeddingSdkConfig = ${defineEmbeddingSdkConfig};
-module.exports.defineEmbeddingSdkTheme = ${defineEmbeddingSdkTheme};
+module.exports.defineMetabaseAuthConfig = ${defineMetabaseAuthConfig};
+module.exports.defineMetabaseTheme = ${defineMetabaseTheme};
 
 module.exports = { ...module.exports, ...require("./nextjs-no-ssr.cjs") };
 `;
 
 const nextjs_js = `
-export const defineEmbeddingSdkConfig = ${defineEmbeddingSdkConfig};
-export const defineEmbeddingSdkTheme = ${defineEmbeddingSdkTheme};
+export const defineMetabaseAuthConfig = ${defineMetabaseAuthConfig};
+export const defineMetabaseTheme = ${defineMetabaseTheme};
 
 export * from "./nextjs-no-ssr.js";
 `;
 
-// eslint-disable-next-line no-literal-metabase-strings -- it's code
 const nextjs_no_ssr_cjs = `"use client";
 
 const React = require("react");
@@ -179,7 +176,6 @@ module.exports.MetabaseProvider = MetabaseProvider;
 ${generateAllComponents("cjs")}
 `;
 
-// eslint-disable-next-line no-literal-metabase-strings -- it's code
 const nextjs_no_ssr_js = `"use client";
 
 import dynamic from "next/dynamic";
-- 
GitLab