Skip to content
Snippets Groups Projects
Unverified Commit 816e1b0d authored by Nicolò Pretto's avatar Nicolò Pretto Committed by GitHub
Browse files

refactor public/embed reducers and related code (#43495)

* move parameters and dashboard reducers to the common ones as they're used everywhere

* convert reducers-{common,main,public}.js to typescript, done with --no-verify

* convert reducers to named exports
parent 3305c815
No related branches found
No related tags found
No related merge requests found
......@@ -8,13 +8,13 @@ import type { TypedUseSelectorHook } from "react-redux";
import { useSelector, useDispatch } from "react-redux";
import type { SdkStoreState } from "embedding-sdk/store/types";
import reducers from "metabase/reducers-main";
import { mainReducers } from "metabase/reducers-main";
import { getStore } from "metabase/store";
import { sdk } from "./reducer";
export const sdkReducers = {
...reducers,
...mainReducers,
sdk,
} as unknown as Record<string, Reducer>;
......
......@@ -6,10 +6,10 @@
import { isWithinIframe } from "metabase/lib/dom";
import { init } from "./app";
import reducers from "./reducers-public";
import { publicReducers } from "./reducers-public";
import { getRoutes } from "./routes-embed";
init(reducers, getRoutes, () => {
init(publicReducers, getRoutes, () => {
if (isWithinIframe()) {
document.body.style.backgroundColor = "transparent";
}
......
......@@ -7,7 +7,7 @@ import _ from "underscore";
import { init } from "metabase/app";
import api from "metabase/lib/api";
import reducers from "metabase/reducers-main";
import { mainReducers } from "metabase/reducers-main";
import { setErrorPage } from "metabase/redux/app";
import { clearCurrentUser } from "metabase/redux/user";
import { getRoutes } from "metabase/routes";
......@@ -21,7 +21,7 @@ const NOT_AUTHORIZED_TRIGGERS = [
/\/api\/dataset$/,
];
init(reducers, getRoutes, store => {
init(mainReducers, getRoutes, store => {
// received a 401 response
api.on("401", url => {
if (url.indexOf("/api/user/current") >= 0) {
......
import { init } from "./app";
import reducers from "./reducers-public";
import { publicReducers } from "./reducers-public";
import { getRoutes } from "./routes-public";
init(reducers, getRoutes, () => {});
init(publicReducers, getRoutes, () => {});
......@@ -10,7 +10,7 @@ import {
} from "__support__/server-mocks";
import { Api } from "metabase/api";
import { checkNotNull } from "metabase/lib/types";
import mainReducers from "metabase/reducers-main";
import { mainReducers } from "metabase/reducers-main";
import { CardApi } from "metabase/services";
import type {
CardId,
......
// Reducers shared between "main" and "public" apps
import { combineReducers } from "@reduxjs/toolkit";
import { Api } from "metabase/api";
import { dashboardReducers as dashboard } from "metabase/dashboard/reducers";
import * as parameters from "metabase/parameters/reducers";
import app from "metabase/redux/app";
import { reducer as auth } from "metabase/redux/auth";
import embed from "metabase/redux/embed";
......@@ -12,7 +16,7 @@ import undo from "metabase/redux/undo";
import upload from "metabase/redux/uploads";
import { currentUser } from "metabase/redux/user";
export default {
export const commonReducers = {
// global reducers
app,
embed,
......@@ -26,4 +30,6 @@ export default {
auth,
[Api.reducerPath]: Api.reducer,
modal,
dashboard,
parameters: combineReducers(parameters),
};
......@@ -4,9 +4,7 @@ import { combineReducers } from "@reduxjs/toolkit";
import admin from "metabase/admin/admin";
import alert from "metabase/alert/alert";
import { dashboardReducers as dashboard } from "metabase/dashboard/reducers";
import * as metabot from "metabase/metabot/reducers";
import * as parameters from "metabase/parameters/reducers";
import { PLUGIN_REDUCERS } from "metabase/plugins";
import * as pulse from "metabase/pulse/reducers";
import * as qb from "metabase/query_builder/reducers";
......@@ -14,15 +12,13 @@ import revisions from "metabase/redux/revisions";
import reference from "metabase/reference/reference";
import { reducer as setup } from "metabase/setup/reducers";
import commonReducers from "./reducers-common";
import { commonReducers } from "./reducers-common";
export default {
export const mainReducers = {
...commonReducers,
// main app reducers
alert,
dashboard,
parameters: combineReducers(parameters),
metabot: combineReducers(metabot),
pulse: combineReducers(pulse),
qb: combineReducers(qb),
......
// Reducers needed for public questions and dashboards
import { combineReducers } from "@reduxjs/toolkit";
import { dashboardReducers as dashboard } from "metabase/dashboard/reducers";
import * as parameters from "metabase/parameters/reducers";
import commonReducers from "./reducers-common";
export default {
...commonReducers,
dashboard,
parameters: combineReducers(parameters),
};
// Reducers needed for public questions and dashboards
import { commonReducers } from "./reducers-common";
export const publicReducers = {
...commonReducers,
};
......@@ -3,7 +3,7 @@ import { Provider } from "react-redux";
import type { MetabaseTheme } from "embedding-sdk";
import { SdkThemeProvider } from "embedding-sdk/components/private/SdkThemeProvider";
import mainReducers from "metabase/reducers-main";
import { mainReducers } from "metabase/reducers-main";
import type { MantineThemeOverride } from "metabase/ui";
import { createMockSettingsState } from "metabase-types/store/mocks";
......
......@@ -22,8 +22,8 @@ import { createMockSdkState } from "embedding-sdk/test/mocks/state";
import type { SDKConfig } from "embedding-sdk/types";
import { Api } from "metabase/api";
import { UndoListing } from "metabase/containers/UndoListing";
import mainReducers from "metabase/reducers-main";
import publicReducers from "metabase/reducers-public";
import { mainReducers } from "metabase/reducers-main";
import { publicReducers } from "metabase/reducers-public";
import { EmotionCacheProvider } from "metabase/styled-components/components/EmotionCacheProvider";
import { ThemeProvider } from "metabase/ui";
import type { State } from "metabase-types/store";
......
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