Skip to content
Snippets Groups Projects
Unverified Commit d0220ff3 authored by github-automation-metabase's avatar github-automation-metabase Committed by GitHub
Browse files

fix(sdk): update define function names in Next.js compat (#51071) (#51453)

parent 3bb077b9
No related branches found
No related tags found
No related merge requests found
{
"rules": {
"no-literal-metabase-strings": "off",
"no-console": "off",
},
}
/* eslint-disable no-console */
import fs from "fs"; import fs from "fs";
import path from "path"; import path from "path";
...@@ -51,11 +50,10 @@ const COMPONENTS_TO_EXPORT: ComponentDefinition[] = [ ...@@ -51,11 +50,10 @@ const COMPONENTS_TO_EXPORT: ComponentDefinition[] = [
// END OF CONFIGURATION // END OF CONFIGURATION
// eslint-disable-next-line no-literal-metabase-strings -- it's code
const MetabaseProviderCode = ` const MetabaseProviderCode = `
const MetabaseProvider = ({ const MetabaseProvider = ({
config,
children, children,
...providerProps,
}) => { }) => {
const Provider = dynamic( const Provider = dynamic(
() => () =>
...@@ -70,7 +68,7 @@ const MetabaseProvider = ({ ...@@ -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") => { ...@@ -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 // 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 // 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 defineMetabaseAuthConfig = "authConfig => authConfig";
const defineEmbeddingSdkTheme = "theme => theme"; const defineMetabaseTheme = "theme => theme";
const nextjs_cjs = ` const nextjs_cjs = `
module.exports.defineEmbeddingSdkConfig = ${defineEmbeddingSdkConfig}; module.exports.defineMetabaseAuthConfig = ${defineMetabaseAuthConfig};
module.exports.defineEmbeddingSdkTheme = ${defineEmbeddingSdkTheme}; module.exports.defineMetabaseTheme = ${defineMetabaseTheme};
module.exports = { ...module.exports, ...require("./nextjs-no-ssr.cjs") }; module.exports = { ...module.exports, ...require("./nextjs-no-ssr.cjs") };
`; `;
const nextjs_js = ` const nextjs_js = `
export const defineEmbeddingSdkConfig = ${defineEmbeddingSdkConfig}; export const defineMetabaseAuthConfig = ${defineMetabaseAuthConfig};
export const defineEmbeddingSdkTheme = ${defineEmbeddingSdkTheme}; export const defineMetabaseTheme = ${defineMetabaseTheme};
export * from "./nextjs-no-ssr.js"; 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 nextjs_no_ssr_cjs = `"use client";
const React = require("react"); const React = require("react");
...@@ -179,7 +176,6 @@ module.exports.MetabaseProvider = MetabaseProvider; ...@@ -179,7 +176,6 @@ module.exports.MetabaseProvider = MetabaseProvider;
${generateAllComponents("cjs")} ${generateAllComponents("cjs")}
`; `;
// eslint-disable-next-line no-literal-metabase-strings -- it's code
const nextjs_no_ssr_js = `"use client"; const nextjs_no_ssr_js = `"use client";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment